こんにちは､ AIに関する講座にようこそ｡
前編では､ ディープラーニングのキラー直感についてお話しました｡
そこから始まり､ 実際にこの部分まで来て､ 学習の話をし､ これから実際の演技の部分に移っていくわけです｡
このように､ 私たちが覚えておかなければならないのは､ 2つの部分､ 2つの異なる部分なのです｡
それが学びの部分なんですね｡
しかし､ 今､ 彼は実際にこのすべてをやり遂げたのです｡
それは美しいですね｡
今､ 彼は実際に行動を起こさなければならないのです｡
アクション1､ 2､ 3､ 4のどれをやるかを決めなければならないのです｡
では､ その方法は？
まあ､ 彼のやり方は､ 今､ その同じキュー値を与えられているのですが｡
つまり､ キュー値は､ キュー値と損失計算を比較し､ 誤差を伝播させ､
重みを更新しても､ そのプロセス全体では変化しないのです｡
つまり､ キュー値が確定すれば､ それが何であるかがわかるわけです｡
このように､ ネットワークが更新され､ 今までと同じキーバリューが使われるようになりました｡
これから行うのは､ ソフトマックス関数を通すことです｡
また､ ソフトマックスは付属書2に記載されていると思います｡
また､ ソフトマックスについては､ この後の章でもう少し詳しく説明しますし､ このアクション選択ポリシーについては､
この後の章でさらに詳しく説明します｡
いくつかのチュートリアルでは､ ソフトマックス関数に渡すと説明しています｡
そして基本的には､ 最適なものを選択できるようにし､ 可能な限り最適なアクションを選択するのです｡
そして､ それにはちょっとした注意点があります｡
それは､ 最高の1枚を作るためだけではありません｡
それについては､ アクション選択ポリシーのチュートリアルで説明します｡
でも､ とりあえず､ ここから最適なアクションを選択するということにしておきましょう｡
と書いてあるので､ なるほど､ そうなのか｡
Q1､ 尤度は基本的にQ値がわかっています｡
だから､ Q値を予測したのです｡
つまり､ 単純なQ学習アルゴリズムでやったように､ これらの中から最もQ値の高いものを選んで､
これらすべてを調べて､ 例えば､ 最もQ値の高いものはこれだと言うことができます｡
そして､ そのアクションを選択するのです｡
それをいただく｡
といったところでしょうか｡
そうやって､ 取るべき行動を選択していくのです｡
アクションを起こすのです｡
そして､ このプロセスは､ 追加されたエージェントが次の状態（この例では迷路の次のマス目）になったときにも繰り返されるのです｡
しかし､ 一般的には次の状態です｡
そうそう､ そうなんです｡
このように､ 強化学習の問題を､ 今いる状態を表すベクトルを通してニューラルネットワークに送り込んでいくのです｡
そして､ それを投入すると､ 2つのパートが発生するのです｡
第一部は学習です｡
Q値をターゲットと比較し､ 損失をネットワークに逆伝播して重みを更新することで､
迷路や環境を進むにつれてネットワークが学習していく､ という部分を覚えておいてください｡
Q値をソフトマックス関数に渡したり､
基本的に行動選択ポリシーを作成します｡
そして､ 行いたいアクションを選択し､ そのアクションを実行するだけです｡
そして､ この一連のプロセスが再び始まり､ そして､ エージェントがゲームにパスすることもあれば､
パスしないこともある｡
いずれにせよ､ ゲームが終了し､ もう一度､ 全体の､ 全体のプロセスを繰り返し､ エージェントは再び全体のゲームをプレイし､
そしてそれが停止するのです｡
ですから､ 基本的には､ エージェントがゲームを終えるたびに､ 2月に好意的であろうとなかろうと､ それはひとつの時代の終わりを意味します｡
そして､ また始める､ また始める､ また始めるの繰り返し｡
そうなるんですね｡
そしてこのプロセスは､ エージェントが新しい状態になるたびに発生します｡
つまり､ ここに状態が符号化されているわけです｡
だから､ それが大事なんです｡
だから､ 彼が出場するすべての試合だけでなく､ すべての州に対して｡
だから､ 彼はある状態になって､ このプロセスを経て､ アップデートなどが毎回行われるわけです｡
そうして､ 学習が行われ､ さらに演技も行われるのです｡
それがディープラーニングを支える直感のディープラーニングなんですね｡
まだまだカバーできることはたくさんあります｡
そして､ もちろん実用化も｡
ついでに､ ディープラーニングについて追加で情報を得たい方は､ おすすめの読み物をご紹介しています｡
ということで､ アーサー・ジュリアーニの一連のブログ記事については､ すでにお話ししたとおりです｡
TensorFlowによるシンプルな強化学習 その4」を見ていただくと､ 今日お話したことに関連する部分がありますね｡
なお､ ここではコンボリューションについて述べている｡
このコーナーでは､ レボリューションは扱っていません｡
次回の講座では､ それらについてご紹介します｡
この違いは､ コンボリューションの部分をスキップして､ 次のパートで説明することです｡
しかし､ 畳み込みの場合は､ エージェントが画像を見ているようなものなので､ 画像を処理しなければなりません｡
だから､ 今のところ追加のこじつけ｡
そのために､ 少しずつ､ 少しずつ積み上げているところです｡
とりあえず､ 環境はスルーでエンコードしています｡
このように､ 私たちは環境をエンコードしています｡ あるいは､ このように､
おそらく環境をベクトルとしてエンコードしています｡
ですから､ 私たちの場合は､ 非常にシンプルなものがあります｡
2つの値の画像は､ その中にあっても､ その単純な可能性があります時々､ またはあなたがこのブログの記事から見るように､
時には人々はその状態の1ホットとコード化されたバージョンを好む｡
つまり､ 迷路の各ボックスには､ ベクトルとして12個の値を3×4で表現しているわけです｡
つまり､ どの箱のどの要素にいるかによって､ 1か0かのような環境なのです｡
ですから､ どのような方法で環境や状態をエンコードすることにしても､ それが私たちのエンコード方法なのです｡
つまり､ 基本的にはベクトルなんですね｡
ここで重要なのは､ 畳み込みではないので､ 画像とは違い､ ボルトの畳み込みがないことです｡
だから､ この部分は私たちにとっては後回しなんです｡
ここから始まって､ 徐々に理解を深めていくために､ プロセスを単純化しただけなのです｡
そしてもちろん､ このブログ記事はTensorFlowで書かれており､ チュートリアルではPyTorchを使っていることをお忘れなく｡
深層学習､ 畳み込み学習､ 深層学習､ 畳み込み学習でなく深層学習について簡単に紹介しましたが､ 楽しんでいただけたでしょうか？
というわけで､ 次回もよろしくお願いします｡
そして､ それまでは人工知能を楽しんでください｡