CS188.1x人工知能の腸からのニュースまたは最終印象

プロローグ



こんにちは!

最初の部分が好意的に受け取られたので、コースを修了した後、すべての印象について書くことにしました。



前のシリーズの要約:LutzとNick Parlanteが基本的なCS コース (残念ながら、常にpythonスタイルとは限りません)にサインアップした後、簡単なコース 「Python for the small」(既に終了しています)でPythonを学ぶことにしました。 まあ、それらの間のどこかで私はCS188.1x AIに関与し、今私はPythonを訓練していると判断しましたので、深刻なことです。

前回のレビューでは、コースの最初の2週間(約30%)を検討しましたが、実際には11月19日に最終試験の厳しい締め切りに合格し、まとめたいと思います。



私たちは、AIの複雑性に精通し続けています



プロジェクト1の実装が失敗した後、学生は制約充足問題(CSP)に関する情報の層を待っていました。 簡単に言えば、特定の数の制限で技術的に問題を解決する方法に関するこのこと-最も典型的なのは、例えば、大学のスケジュールを立てること、教授、教室の雇用を考慮に入れて、利用可能な時間を比較することなどです。 直感的にはすべてが明らかであるように見えますが(常に単純ではない)、状態グラフの走査を高速化するあらゆる種類のトリックがあります。 希望する人はこのインタラクティブhtmlで遊ぶことができます(ここでは色を割り当てる必要があり、隣接する要素は同じ色にできません。ソリューションの選択が最適化と特定のグラフトラバーサル最適化なしでどのように異なるかを明確に見ることができます)。 一般的に、このトピックは複雑に思えませんでした。



次に、ゲームツリーと決定理論を待っていました。 その後、教授は敵からの反対に直面してゲームの問題の解決策を知りました(パクメンの場合は幽霊でした)。 原則として、対戦相手のあらゆる種類の動きを考慮に入れたゲームツリーでの同じ検索も最適ではありません。 アルファベータプルーニングは、個々の保証された見込みのない分岐を切断することにより、大きなツリーを横断するのにかかる時間を大幅に削減する方法として単独で使用できます。



プロジェクト2は私に言った:「男、あなたのpythonにまた来なさい」。 実際には、言葉からコードへの急激な、しかし予期しない移行ではありません。 同じパックマンワールドが残り、敵のエージェントのみが追加されました。



最初にReflexAgentを実装する必要がありましたが、これは何も計画せず、現在のゲーム状況から排他的に機能します。 次に-MinimaxAgentは、敵の最適なアクションから進行し、遠くない(ゆっくり動作する)未来に見えます。 次に、アルファベータを使用していくつかの動きを先に見たときに、時間を桁違いに短縮する方法を明確に理解します。 ExpectimaxAgentは、対戦相手の愚かさに基づいて行動します。これにより、一見致命的なゲーム状況から勝利することができます。 さて、デザートのために-「あなたの極端なゴーストハンティング、ペレットナブ、フードゴブリング、止められない評価機能。」 それについては、ロジックを記述し、それを適切にデバッグすることができなかったため、0/6を得ました。 結論-日曜日の夜であれば、締め切りの直前にプロジェクトに座ってはならず、月曜日に作業する必要があります。



学ぶためのAIの学習、または独特の「爪」



過去2週間は、世界をMDPおよび強化学習(RL)として表現する変種であるマルコフ決定プロセス(MDP)に費やされました。私たちの周りの世界の状況について何も知らず、どうにかしてそれを知る必要があります。 重要なアイデアは、さまざまなアクションに対する報酬、ポジティブまたはネガティブな報酬です。



それからもちろん、最初の会議から、彼は私の心、偉大で恐ろしい爪を手に入れました。



同時に面白いと怖い、彼は彼の前足の愚かな波を作りますが、彼は大学に行くために歩く方法を学ぶ必要があります:)私は講義からビデオの一部を同封しています、それはより理解できるでしょう。 将来を見据えて、最後のプロジェクトで自分のペットに歩き方を教えることができたと言います。

オフトピックと夢
ちょうどその時点で、Habréでヘキサポッドに関する優れたDIYビデオを掲載した優れた記事掲載されました。 今、同じものを集めるという考えは私を悩ませています(STMF4DISCOVERYはジャイロスコープと加速度計を持ち、wifi / bluetoothホイッスルが付属しています)、そして彼に歩く方法を教えてください。 昆虫の疑似生活がしわになっている様子を見るためだけに。 え、自分を強制するために...



これらの2つのトピックはかなり複雑に見えました。たとえば、最適な動作の探索と探索のバランスをどのように見つけるかという問題です。十分な学習内容を決定するときは、得られた知識に従って行動するときです。



プロジェクト3では、黄色いパンで迷路から少し注意をそらし、いわゆるGridWorldの問題を解決しました。



「北」を押したときに、同じ時間ステップで「東」にいくぶんの確率で、条件のどこに行くのが最適かを決定する方法は? この世界を探索する過程でどのように振る舞うのですか? 良いこと、悪いことは何ですか? 実装されたアルゴリズムは、Clawでも機能することが判明しました。 少しドピリバニー-ペックマンも勉強する準備ができています。 戻って、私たちのペッカーキラーがゴーストに対する数百のゲームで訓練した方法を比較することは非常に興味深いことが判明しました。 ここでは、アプローチの違い、迷路の中でゲームを解決するExpectiMax Searchの記述、またはペックマンに勝つ方法を教えます。



フィニッシュライン



プロジェクト3の完了と、最終試験の実践での自分自身のトレーニングのために1週間が与えられましたが、成績は考慮されませんでした。 最終試験に合格するために別の1週間が割り当てられ、48時間の廊下を選択することが可能で、その時点で冷静に答えました。 これはプラスとリラックスしたマイナスの両方でした。 別の残忍な発見は、ほとんどの質問に答えようとする1回の試みでした(54回のうち約40回、他は2回の試行を行いました)。 True / Falseシリーズの質問でこれが正当化された場合、4-6のチェックボックスを持つ他のいくつかでは-気になりました。 2回答えようとすると、それが最も簡単でした。 質問はコース全体を非常に厳しくカバーしました。 講師は2〜5時間で試験を評価し、2日間で約1 + 4時間を費やし(ゆっくりと答え、いくつかの場所で講義をレビューしました)、最終結果(176/200)でエラーなく試験に合格できませんでした。



インプレッションを終わらせたり要約したりする代わりに



とても面白い! 講義とテストでは、pythonは匂いがしませんが、特殊なpacmanプロジェクトでは非常に強く匂いがします。 特定の問題を解決するためのツールとして言語を使用することの完全な感覚-私はそれが勉強に非常に良いと思います。 講師による資料のプレゼンテーションは素晴らしく、個人的には講義で問題を解決するのに十分な情報を持っていましたが、多少余分なことはありました。 教材はコースwikiにリストされています。 フォーラムは何度か非常に役に立ちました。 さて、技術的な部分が一番上にあり、ボタン、フラグ、回答がすべて便利です。 締め切り前の日曜日の夕方、オートグレーダーは非常に遅いことに注意してください(コードを最大20〜30分チェックします)。 ビデオ/質問セクションで直接見るとフォーラムの速度は低下しますが、ここでは古いネットブックに罪を犯します。



残念なことに、youtube-dlで遊んだ後、youtubeの自動字幕ではなく、edx字幕で講義を取得する方法を理解できませんでした。誰かがこの問題を解決したら、plzを書きます。



私は講義と宿題に週4時間、各プロジェクトに10時間(またはそれ以上、計算するのが難しい)の時間を費やしました(2週間に1回)。 私は自分のメモを保存しませんでしたが、今は少し後悔しています。



さて、CS188xチームのイースターエッグは、次のような特別な喜びをもたらしました。

if 0 == 1: print 'We are in a world of arithmetic pain'
      
      





ボーナスとして、私はロボAIのさまざまな実世界のアプリケーションに影響を与える講義のビデオのリンクを(時間とともに)収集しました。 コースの学生にとって、プログラムがどのようにプログラムされているかについての秘密のベールは少し開かれています。

コースの第2部では、とにかくサインアップする必要があります!



クライン教授でお会いしましょう。



All Articles