こんにちは､ そしてモジュール2ドゥームへ再びようこそ｡
これから､ AIの実装を始める準備をします｡
そして､ いつものように､ まず､ 正しいフォルダを作業ディレクトリとして設定する必要があります｡
だから､ もっと面白いことに移るために､ 今これをやっておこう｡
そこで､ いつものようにデスクトップで起動し､ 人工知能はあれのフォルダ､ モジュール2は今ドゥームと進みます｡
そして､ これが作業ディレクトリとして設定しなければならないフォルダです｡
では､ こうしてみましょう｡
ここでこの2つのボタンをクリックして､ カーネルを再起動し､ そして「はい」をクリックすると､ このようになります｡
これで､ 正しいフォルダを作業ディレクトリにすることができました｡
これで､ ご覧の通り､ 4つのファイルが揃いました｡
この作業ディレクトリのフォルダの中に､ 実際には3001のフォルダがあります｡
では､ まず1つ目から｡
まず1つ目はADPです｡
それはもちろん､ 私たちの人工知能を格納するファイルです｡
そしてそれは､ ここにあるこのファイル以外にはない｡
これがADPファイルで､ APIの構築､ 特に深層畳み込み学習モデルによるAIの構築に関連するすべてを実装することになります｡
だから､ 基本的にはそこで大冒険をすることになる｡
それから､ 他のファイルもあります｡
そこで､ ここに2つ目のファイルとして､ πを体験するリプレイを用意しました｡
それで今回は､ すでに実装しているからということで､ エクスペリエンス・リプレイスを別枠にしました｡
そして､ 今度は新しいことに注目したいと思います｡
そして信じてほしいのは､ この新しい人工知能でやるべきことはたくさんあるということです｡ 私たちはAIを作りたいだけでなく､
『ドゥーム』を倒すAIを作りたいのですから｡
ですから､ かなり高度なコードが必要になることは想像がつくと思います｡
だから心配ない｡
大きなコードが待っていますし､ 新しい技もたくさん学べます｡
だから､ この経験リプレイのトリックは､ あなたがすでに知っていて､ 私は訓練の多くを向上させることを思い出させることです｡
まあ､ 今回の体験では別にしておきましょう｡
そのPIファイルを再生することで､ これから待っている新しいコンセプト､ テクニック､ トリックに集中することができるのです｡
わかりました｡
そして､ piファイルを画像前処理しているところです｡
これはもう一つのPythonファイルで､ 画像の前処理を行います｡ なぜなら､
今回のAIには目があり､ 入力状態がもはやベクトルによってエンコードされるのではなく､
入力状態が画像だからです｡
ですから､ これから作る大きなニューラルネットワークの最初の層は目になり､ それが畳み込みニューラルネットワークの畳み込み層となります｡
しかし､ これらの画像を畳み込みニューラルネットワークの入力として受け入れられるようにするためには､ まあ､
前処理が必要なわけです｡
このファイルでは､ ニューラルネットワークに入れるための画像の前処理を行います｡
それで､ これはAIとは直接関係ないので､ このファイルを分離しました｡
そしてまた､ 私たちの脳と記憶と集中力を最大限に生かして､ AIに関連するすべてのことに取り組みたいと考えています｡
そこで､ これを別に置くことで､ フラッシュライトで画像を前処理して､ 残りのエネルギーを節約できるようにしています｡
よかったら見てみてください｡
また､ ディープラーニングのコースもあれば､ まあ､ 実践的なチュートリアルを見ることができますね｡
画像の前処理の話もありますが､ ここでもやはりAIに注目したいですね｡
信じてください､ やることがたくさんあるんです｡
そして最終的には最後のフォルダ､ そう､ ビデオフォルダです｡
ですから､ 今このフォルダはご覧のように空っぽです｡
しかし､ このコードを実行すると､ AIがドゥームをプレイしている動画がいくつかこのフォルダに追加されます｡
そのため､ AIがどの程度機能しているのかを映像で見ることができるので､ 非常に楽しみです｡
ですから､ 文字通りAIがモンスターを倒し､ ゴールに向かって走り出そうとする姿を見ることができるのです｡
だから､ これはかなりエキサイティングなことだと思うぞ｡
もちろん､ 最初の動画はとてもひどいものになるでしょう｡ なぜなら､ AIはまだあまり訓練されていないので､ すぐに殺されてしまうからです｡
でも､ そうすると､ トレーニングが順調に進んでいるうちに､ AIがどんどん良くなって､ 最終的には今殺されているモンスターもなんとか殺せるようになって､
うまくいけばゴールまで到達させることができる､ ということが見えてきます｡
わかりました｡
では､ 今回のAFLに話を戻しましょう｡
そして､ ご覧の通り､ Doomをプレイするのに必要なライブラリやパッケージはすべてインポートしておきました｡
では､ さっそく一つずつ見ていきましょう｡
もちろん､ 配列を扱うので､ numpyもあります｡
それは仕方がないことです｡
それから､ ピトーチでAIを実装しているので､ もちろん拷問もあります｡
そして､ ニューラルネットワークを実装するためのすべてのツールを含むtorch and inモジュールがあります｡
例えば､ このモジュールには､ 将来のニューラルネットワークの一部となる畳み込み層が含まれるわけです｡
それから､ Fというショートカットを持つ関数パッケージには､ ニューラルネットワークで使用されるすべての関数が含まれています｡
活性化関数としては､ 整流器の活性化関数と､ 畳み込みの最大プーリング関数を使うことになるでしょう｡
神経ネットワークとこれらの機能はすべて関数に含まれています｡
次にOptimですが､ これはもちろんOptimizerのことです｡
アトムオプティマイザーを使うことになると思いますが､ このオプティマイザーはOptimに含まれていて､ さらにPyTorchのベストオブベスト､
他のgradモジュールから変数クラスが含まれています｡
PyTorchにはダイナミックグラフがあり､ 勾配や合成関数の勾配を高速に計算することができるのです｡
だから､ ぜひ使っていきたいと思います｡
自動運転車については､ しかし､ 運命のために私を信じて､ 我々は非常に悪いことを必要とすることになります｡
というわけで､ 必須ライブラリの紹介は以上です｡
次に､ Openai､ gym､ doomに関連するいくつかのパッケージをインポートする必要があります｡
そこで､ もちろんJimをインポートし､ Jimライブラリのラッパーモジュールをいくつかインポートする｡ そのラッパーの一つがKipラッパーである｡
つまり､ 基本的にはJimのツールや環境をすべて取り込むことですね｡
そして最後に､ インポートする必要がある､ doomに直接関連するパッケージがあります｡
これはアクションスペースとdoomラッパーの2つの分離で､ 基本的にdoomの環境､ より具体的には､
これからプレイする特定のDoomゲームに対してプレイできるアクション､ アクション数が含まれています｡
そして､ 6つのアクションがあることを再認識しました｡
左へ移動､ 右へ移動､ 左折､ 右折｡
前方に移動して撮影する
攻撃する｡
わかりました｡
つまり､ doomのためにインポートする必要があるのは､ 基本的にそういうことなんです｡
そして最後に､ もちろん､ ゲームをプレイしているときの画面のイメージに他ならない画像を事前に処理するために､
エクスペリエンス､ リプレイ､ イメージプリプロセシングのパイである2つの内部ファイルをインポートする必要があるのです｡
そして､ これらの画像は前処理され､ numpyの配列に変換され､ あるフォーマットにリシェイプされた後､ ニューラルネットワーク､
畳み込みニューラルネットワークに送られます｡
わかりました｡
さて､ このIの大きな実装を始める準備ができたと思いますが､ それがこのモジュールの非常に重要なポイントにつながるということをお伝えしたいと思います｡
それは､ あれから､ ほら､ 大きな実装が待っていると言ったからです｡
さて､ このように迷子にならないためには､ 良い仕組みが必要です｡
それで､ すでに構造を強調したのです｡
2回に分けて実施する予定です｡
前編では､ AIの構築について説明します｡
そこで､ AIの頭脳を作ることになるわけです｡
そして､ 脳は､ あなたが理解したように､ 神経ネットワークに他なりません｡
この大きなCNNは､ いくつかの畳み込み層と､ やはり手がかりとなる出力を予測するための完全接続層から構成されています｡
そして､ AIの本体を作っていきます｡
そして､ それは私がお届けする新しい表現です｡
そしてそれは､ やはり迷わないことです｡
コードを進めれば進めるほど､ 構造が見えてきて､ 最後にはすべてが意味を成すことがおわかりいただけると思います｡
そして､ その意味を確認するために､ AIの表現が必要なのです｡
そして､ 基本的にこの最初のAIを構築する部分は､ 3つのセクションで構成される予定です｡
最初のセクションでは､ ニューラルネットワークである頭脳を作ることについて説明します｡
第2章では､ ボディを作ることになりますが､ ここはAIにアクションを伝える部分なので､
ボディと呼んでいます｡
つまり､ まず映像を検知してキュー値を予測する脳があるわけですが､ その後にAIがどのようにアクションを演じるべきか､
人間の体がやるように体でやるという指定が必要なんです｡
つまり､ ボディはアクションの再生方法を指定する部分になります｡
ですから､ 例えば私たちの自動運転車では､ 脳は私たちが作ったニューラルネットワークで､ 身体はアクションをどう演じるかでした｡
つまり､ ソフトマックス方式だったのです｡
そして､ ここでもそれは同じです｡
これから脳を作り､ アクションを演じるボディを作ります｡
探させます｡
しかし､ この中で重要なのは､ 一歩下がって何が起こっているかを本当に理解できるだけでなく､
他の目的のためにAIを作りたいときにいつでもフレームワークとして使えるように､ 非常に構造化されたコードを用意することです｡
わかりました｡
そして､ 第1部でAIを構築した後､ 第2部では､ 深層学習､ 畳み込み学習モデルの実装に移ります｡
そして､ そこにもさまざまなセクションがあり､ そのうちの1つは､ もちろん､ AIのトレーニングです｡
だから､ 早く飛び込みたいんです｡
さて､ まずはパート1からですが､ 当然のことながら､ AIの頭脳を作るところから始めます｡
だから待ち遠しいし､ それまではAIを楽しんでください｡