こんにちは､ 談話室の第3モジュール､ A3 C Asynchronous Act to critique agentへようこそ｡
そして今､ 私は本当に最先端の機械学習へようこそと言うことができるのです｡
まあ､ 当時は1年後､ 2年後に受講する人もいるかもしれないので､ こんなことを言っているんですけどね｡
しかし､ 2017年にこんなことを言っている時点で､ 人工知能で最も強力なモデルの1つに取り組もうとしているのに､
このモジュールだけが特別なわけではないことがもっとあるのです｡
これから最も強力なAIモデルを扱うだけでなく このアルゴリズムの最も強力なバージョンを実装します
それは最も最適化されたバージョンで a3cモデルの実装バージョンです 3Cアルゴリズムの心臓部があることは想像できますが
それからモデル全体を最適化するために使えるツールがたくさんあります｡
そして､ アルゴリズムの心臓部だけでなく､ その周りにあるすべてのツールを実装して､
モデルを超強力なものにするのです｡
そして､ なぜそうしようと思ったのか｡
まあ､ それには2つの理由があります｡
第一の理由は､ この講座が終盤に差し掛かっていることです｡
本講座は､ ML､ DL､ AI・Zの3つの講座のうち､ 最もレベルの高い講座です｡
これで､ 次の段階に進めると思いますね｡
そして2つ目の理由は､ ブレイクアウトを解くのは､ 実は超難易度が高いからです｡
プロモビデオでは､ ブレイクアウトを最初のモジュールにしたのは､ 最も簡単なチャレンジだと思ったからですが､
全く違いました｡
実はこれが一番難しいチャレンジだったんです｡
これを簡単に説明すると､ まあ､ 『Doom』ではモンスターが大きいので発見しやすく､ その分､ 殺したり避けたりしやすいということです｡
しかし､ ブレイクアウトでは､ この小さなボールもAIが検出しなければなりません｡ なぜなら､ AIはここでも目を持つことになるからです｡
まだまだ深い強化学習をやっていきます｡
だから､ 実は超難関で､ だからこそ､ 3つのCのうち最強のバージョンを実装するという選択肢はないんです｡
さて､ なぜこれが最強のバージョンと言えるのか｡
それは､ ある理由があるからです｡
今､ 3つのCの最強バージョンを実装すると言っても､ これじゃないんです｡
なぜこんなことを言うかというと､ 私たちがこれから実装しようとしていたバージョン､
これは私たちがこれから行う非常に特別なことなのですが､ 実は誰かが実装したC言語のバージョンなのですが､
今日機械学習で最も影響力のある人の一人が､ たまたまPyTorchの作者だったので修正したのです｡
彼の名はアダム・パッカー｡
GitHubのPyTorchのメインページで､ 下にスクロールしていくと､
PyTorchのクリエイターとコントリビューターのチームが表示されるでしょう｡
そして､ PyTorchは現在､ Adam Pascalによってメンテナンスされていることがここでわかります｡
ブレイクアウトでうまく機能する3つのキーのバージョンは非常に少ないので､ 本当に感謝すべき人です｡
また､ RCのコードの一つを修正し､ ブレイクアウトが完全に動作するようにしてくれました｡
アダム・パスカルは､ PyTorchのメンテナンスだけでなく､ クリエイティブなPytorchの一人でもあるわけです｡
そして､ 今日申し上げたように､ 彼は機械学習で最も影響力のある人物のトップ10に入っています｡
ですから､ これから実装するバージョンは､ おそらく現在の3つのCの中で最も強力なバージョンであると確信が持てます｡
で､ この実装は何なんだ？
まあ､ もともとはIlia Stoichkovという開発者のものなんですけどね｡
そしてご覧のように､ 彼はa3cのPyTorch実装を行いました｡ これはもともとブレイクアウトではうまく動作しなかったのですが､
誰かがプルリクエストをしました｡
このプルリクエストにアクセスすると､ クローズしたものに､ 卒業問題に対するよりクリーンなソリューションがあることがわかります｡
そして､ このプールリクエストは誰からされたと思いますか？
PyTorchの生みの親であるAdam Pascalから作られたものです｡
そして､ 何日も何日も待つことなく､ BreakoutでHRCが非常によく機能するようになった問題を解決したのです｡
したがって､ この実装に戻ると､ この最強の実装の4つの貢献者が見えてくるわけですが､
その貢献者を紹介します｡
だから､ すべての人に､ 本当にありがとうございます｡
そして､ グラデーションの共有問題を解決してくれたAdam Paschkeには､ 大きな､ そして特別な感謝を捧げることができます｡
彼はまずフォーク（コードのサブブランチ）を行い､ コードにあったこの問題を解決するために開発者にプルリクエストを行いました｡
これは素晴らしい共有問題です｡ こうして彼はこの実装の主要貢献者となり､ 全体を完璧に機能させることができました｡
そして､ 信じて欲しいのは､ 私は3Cモデルで多くの実験をしたことです｡
実際に5つのモデルを導入してみました｡
うまくいかないことに絶望すら覚えたので､ 球が大きいので画像の前処理がしやすいように､
カーブでブレイクアウトを自作したのです｡
その後､ オープンAPIに戻り､ HRCの実装を自作しましたが､ かなり高性能なコンピュータで動作させ､ トレーニングするのに時間がかかりました｡
だから､ もっといい方法を探したいと思って､ このような形になりました｡
この非常に強力なa3cモデルの実装｡
その中でも､ PyTorchの作者は主要な貢献者の一人です｡
このモジュールで行うのは､ RCの実装のための最高レベルのコードの実装です｡
ですから､ 基本的にはこれらのファイルをすべて再実装し､ RCに直接関係する部分については､
ほとんどファイルにこだわっていくことになります｡
その他については､ 一行ずつコードを実装していきます｡
コードだけ説明します｡
だから､ 無理なく取り組めるはずです｡
そうそう､ そうなんです｡
かなり特殊なモジュールです｡
私たちはAIの最新モデルに取り組んでいるだけでなく､ 私が話している時点では､ RCの最も強力なバージョンを実装していることに強い自信を持っています｡
では､ やってみましょう｡
Pythonに戻って､ このすべてを始めましょう｡
始める前に､ このモジュールで行う最も簡単なこと､ 作業ディレクトリ・フォルダーの設定を行います｡
では､ A-Zテンプレートフォルダに移動してみましょう｡
モジュール3､ 一番難しいのを割って､ そこへ｡
これが私たちのファイルのすべてです｡
では､ どれがa3cに直接関係するのか､ だから､ どれを一行ずつ実行してエネルギーを集中させるのかを確認しましょう｡
だから､ 実際には2つのファイルがある｡
まず､ PIでモデル化されているのがこれ｡
そこで､ 一番重要なので､ 一行ずつ再実装していきます｡
そこで､ 3つのキーブレインを作るのです｡
そして､ ここで理解すべき最も重要なことは､ 俳優と評論家の重みの更新が同じになる共有モデルを持つということです｡
つまり､ RCの特別バージョン､ 重みの更新を共有したモデルの部分ですね｡
そして､ もう1つの最も重要なファイルは､ 1行ずつ実装していくのですが､ PIが落ちた列車は､
もちろんRCの頭脳を作った直後です｡
さて､ 彼らを訓練しなければならないのですが､ この列車､ あのPIファイルで訓練するのです｡
これはかなり長いコードですが､ これがa3cモデルの心臓部を含むもので､ 評論家の予測に関連する損失であるバリューロスと､
俳優の予測に関連する最後の損失であるポリシーロスの2つを減らすために持つことになります｡
だから､ これはかなり新しい｡
でもね､ a3tでは､ 基本的に複数のエージェントが､ それぞれ自分の環境のコピーを持って作業しているからです｡
しかし､ V関数の値を出力する完全に接続されたレイヤーもあり､ それは基本的にゲームで何が起こっているかという共通のビジョンを持っているのです｡
だから､ これはかなりチャレンジングなことだと思います｡
だから､ 体調を整え､ 残りのファイルのためにも｡
まあ､ 詳しく説明するだけで､ あまり時間をかけることはないでしょう｡
信じてください､ このためにエネルギーを蓄えておきたいのです｡
これはもう､ たくさんでしょう｡
つまり､ これらのファイルはPIに対するもので､ universeのおかげでジム環境が改善されたわけです｡
つまり､ このファイルはuniverseでジム環境を改善するだけで､
画像の前処理を最適化し､ 色強度や報酬強度など､ 環境のすべての値を正規化することができるようになるのです｡
まあ､ 環境の価値観はすべてそうなんですけどね｡
このファイルでは､ これらの値をすべて正規化し､ また画像の前処理を最適化するようにします｡
そして､ ご覧の通り､ これはuniverse store agentがあるこのopenai GitHubのページから引用しています｡
ですから､ あまり時間をかけることはありません｡
実際にここでストップします｡
ユニバースでスポーツジムの環境を改善し､ 画像の最適な前処理を行うことを理解すればいいのです｡
あとは､ 特に3つのCはそれほど重要ではありません｡
そして､ 全体を実行するコードであるmain APIがあります｡
つまり､ 全体を動かし､ 脳を作り､ 脳を鍛え､ 映像を出力するコードを知っているわけです｡
そして､ ここにあるすべてのコードを実行することになるからです｡
そこで､ その時の様子を見たのがモデルです｡
私の最適πは､ 特別なオプティマイザーです｡
これは基本的にアトム・オプティマイザですが､ 今回実装する共有モデルに適応させます｡
そこで､ このコードを1回のチュートリアルですべて説明します｡
そして､ πをテストするのです｡
実はこれが最後の1枚なんです｡
つまり､ test the piは基本的にテストエージェントを実装するためのファイルです｡
つまり､ それはモデルを更新せずにブレイクアウトを再生するエージェントです｡
だから､ トレーニングとはまったく関係ないんです｡
そして､ このコードの詳細についても説明します｡
さらに､ 良いニュースは､ 2つのコードがあることです｡ 1つのコードは､ チュートリアルで実装したコードになりますが､
コメントはありません｡
そして､ コードの1つは､ すべてのコードのコマンドが入ったコードフォルダの1つです｡ この6つのファイルは､
すべてうまくコマンド化されているので､ チュートリアルで何か見逃したとしても､ コードのコマンドを見て､
何が起こっているかを理解することができます｡
そうそう､ そうなんです｡
ぜひ､ ワクワクしながら実装してほしいですね｡
今､ 本当に頂上にいるのか､ 頂上直下なのか､ まずはこれを理解する必要がありますから｡
酸素をしっかり吸い込むために､ そこまでしているんですね｡
そして､ この超エキサイティングな旅に出るのです｡
それまではお楽しみに｡
I.