こんにちは､ このPythonチュートリアルへようこそ｡
では､ 次に脳の出力信号をAIの本体に伝搬させ､ ベストに到達するために正しい行動を取らせるための前進関数を作ってみましょう｡
しかし､ まだ訓練を受けていないため､ 正しい行動ができない｡
まだ目の訓練はしていませんが､ これこそ､ 深層畳み込み学習を実装するパート2で行うことです｡
ちなみに､ 深層畳み込み学習でAIを訓練する､ と改名する予定です｡
しかし､ 今は脳の出力層から身体へ信号を転送する必要があります｡
それこそ､ この前進機能は､ 私たちの体の最後の機能なのです｡
では､ こうしてみましょう｡
まずはGeoff Fordから｡
そして､ あなたによれば､ それはどのような議論になるのでしょうか？
まあ､ 当然ながら､ 最初の自己がかかるわけですが｡
それから､ もう1つあるのですか？
まあ､ ありますね｡
そして､ それはどうなるのでしょうか？
まあ､ ごく自然に､ 脳の出力信号を体に転送したいわけですから､ 入力は脳の出力信号になるわけです｡
そこで､ これらの出力信号に名前をつける必要があります｡
というわけで､ ここで論点を整理しておく｡
わかりました｡
つまり､ 入力画像が脳の中を伝搬して､ 出力層（ここではX）に到達した後の脳の出力信号が､
脳の順方向関数によって返され､ 今度はこの脳の出力信号が､ 柔らかい次のボディクラスで作るこの新しい順方向関数によって身体に転送されることに対応します｡
では､ こうしてみましょう｡
ここに色をつけてみよう｡
そして､ 今度はご理解いただいたように､ ソフトマックス方式でアクションを再生します｡
つまり､ 脳の出力信号を受けた目の本体は､ ソフトマックスという手法で動作を再生することになる｡
ですから､ 基本的に今やらなければならないことは､ 自動運転車の時と全く同じなのです｡
確率の分布を求めます｡
それが最初のステップで､ この確率の分布に従って行動をサンプリングするのです｡
つまり､ 自走式自動車のファイルを入手して､ 自走式自動車に実装したセレクトアクション機能をコピーペーストすればいいわけです｡
でも､ もう1度やってみましょう｡
練習になりますし､ 実際に私より先に打ってみてください｡
なるほど｡
そこでまず､ 確率を求めます｡
つまり､ これは､ 入力､ 画像､ 各アクションに依存するQ値のそれぞれの確率の分布であることを思い起こさせる｡
つまり､ 6つまたは7つの可能な行動に対して､ それぞれ1つのQ値があるので､ 7つの確率の分布が得られます｡
7つというのは､ 前進､ 左､ 右､ 射撃のほかに､ 走ることもできるので､ 6つではなく7つのアクションがあると思うからです｡
つまり､ 7つの行動が考えられるので､ 各行動に関連するQ値ごとに1つずつ､
7つの確率の分布が得られます｡
だから､ 小道具はイコール｡
そして今､ 私たちがしなければならないことを思い出してください｡
まあ､ 基本的には関数モジュールのset max関数を使うしかないのですが｡
だから､ とてもシンプルなんです｡
まず機能モジュール､ 次にドット､ そしてソフトマックス関数を取り出します｡
これです｡
Enterを押して､ 今度はmax関数の引数を入力します｡ max関数は､
確率分布を作成したい要素です｡
そして､ これはもちろんQ値､ つまりニューラルネットワークの出力であり､
確率の分布を作成するためのものです｡
そして､ Q値が最大のものを直接選ぶのではなく､ さまざまな行動を探索できるように､
この確率分布を作りたいのだと思い起こしました｡
Q値が最大のものを直接選ぶと､ 他のアクションをあまり探索しないので､ 何かを見逃してしまうかもしれません｡
しかし､ セルフマックス法を使えば､ もっと探索できるので､ より良いパターンの中に隠れた解を見つけることができるかもしれません｡
ですから､ 繰り返しになりますが､ 私は自己最大値を強く推奨します｡ したがって､ 今やらなければならないことは､ Q値を入力することです｡
それがここでの私たちのアウトプット､ 脳の出力です｡
だから､ 出力は､ これでいいんです｡
しかし､ この温度パラメーターを使って､ 探索をカスタマイズすることができます｡
温度を高く設定すればするほど､ 他の行動の探索が少なくなることを忘れないでください｡
なぜなら､ 最適な行動が高い確率で選択されるのに対して､ 他の行動は低い確率で選択されるからです｡
つまり､ それはまさに自動運転車のようなもので､ したがって､ ここの出力に温度パラメータであるself
dutyを掛ける必要があるわけです｡
これでよしとしよう｡
完璧です｡
今はまだ小道具を使っていないので少し注意が必要ですが､ これから使うところです｡
そうすると､ 次にやらなければならないことが出てくるわけです｡
この確率をどう使うか？
さて､ この確率分布から､ 最終的にプレイするアクションをサンプリングしてみます｡
したがって､ 今やらなければならないことは､ この確率分布にしたがって行動をサンプリングするために多正規関数を使うことです｡
さて､ これでアクションの準備は整いました｡
ここで新しい変数を作成しています｡ これが､ 目の本体で再生されるアクションになるからです｡
そして､ 確率の分布､ 小道具､ それに点描画､ さらに多倍長数字法を加えてみましょう｡
わかりました｡
そして､ 最後のアクションを演じることになるのです｡
小道具の配布からサンプリングしています｡
よし､ 完璧だ｡
これで､ 欲しいものを返せるようになったわけです｡
それが､ 演じるためのアクションです｡
そしてこれらは､ もちろん行動です｡
そして､ これで警告が消えるはずです｡
欲しいものは全部使う｡
これでよしとしよう｡
完璧です｡
これで順送り機能ができたわけです｡
そして､ おめでとうございます｡
本体も準備万端です｡
それで､ 今､ 私たちの脳があるんです｡
私たちには私たちの身体があります｡ ですから､ それらを組み立てて､ 未来のIを作る準備が整っているのです｡
私は､ 脳と身体以外の何ものでもないだろう｡
そして､ 知能を持ち､ アクションを演じるための肉体を持ち､ その知能のおかげで正しいアクションを演じることができるようになるわけです｡
しかし､ その前に､ その知能を鍛えなければならないことを忘れないでください｡ 第2部で行うのは､ 深層学習､
畳み込み学習でAIを鍛えることなのです｡
よし､ じゃあ次のチュートリアルでAIを作ろう｡
今回も､ 2つの機能を持つクラスになるのではないでしょうか｡
そのため､ 2～3回のチュートリアルが必要になります｡
だから､ 待ち遠しいんです｡
これは楽しみですね｡
そしてそれまで､ お楽しみに｡
I.