皆さん､ こんにちは！おかえりなさい｡
前回の講義では､ 結局､ 環境構築に着手することになりました｡
ここでは､ 11×11のグリッドを作成し､ ポストマンがそれを繰り返しながら課題を解決していきます｡
これからは､ グリッドを手に入れた後のことを考え始めたいと思います｡
また､ エージェント用のアクションも必要なので､ これらはすぐに削除します｡
この細胞は必要ない｡
ただ､ 間隔を空けるために入れてもらいたかったんです｡
ただ､ 見やすくなっただけです｡
1/2にしてくれ､ これを削除して､ ここに残そう｡
だから
というテキストを残し､ アクションをアップライト・ダウン・アンド・レフトに設定したいのです｡
Pythonの場合､ かなり簡単です｡
リストを作り､ アクションを設定することができるのです｡
私たちの行動はイコールになるのです｡
右上､ 左下と同じように2つ｡
では､ 右下と左下にセットしてみましょう｡
このようなアクションを迷路の中で操作できるような能力を､ 我々のエージェントexcuse meに与える必要があるのです｡
それに加えて､ 報酬の設定も始めなければなりません｡
さて､ ここからが少し厄介なのですが､
環境の状態をいろいろと設定しなければなりません｡
そこで､ エージェントが各州や都市を学習できるように､ 報酬の価値を設定することにしました｡
そうやって､ エージェントは学んでいくんだ｡
つまり､ エージェントはどの白マスから始めても､ その目的は常に同じということだ｡
Qラーニング・ネイティブ・リワードの中で､ その総リワードを最大化したい｡
罰ゲームと言われていることも知っています｡
これらは､ ゴール以外のすべての状態で使用されます｡
その最適なポリシーを確立するために､ その罰則を最小限にすることで､ ゴールへの最短経路を特定するように目を促すというわけです｡
わかりました｡
また､ 累積報酬を最大化するために､ AIエージェントは､ アイテム包装エリア､ 私たちのグリーンスクエア､
覚えている､ 郵便配達員が移動できる街の他の場所との間の最短経路を見つける必要があります｡
白い四角のエージェントは､ どの都市の境界にも衝突しないように学習するつもりです｡
それが､ 「-100」と同じように黒い四角形です｡
近づかないようにしたい｡
もっと罰が当たるんです｡
そのために､ 上で作成したグリッド､ 行のある環境を用意し､ さらにそこに値を割り当てることにします｡
そこで､ そのためには､ NumPyを使って､ 環境行と環境列をNative100に設定することも始められるということを､
どうすれば確立できるかを考えてみようということです｡
つまり､ 環境の行と環境の列があるわけです｡
この報酬をnum pi fullと呼び､ 環境行環境列を渡して､ 値を設定するために､ -100から始めることができます｡
それに加えて､ リワードウィンドウを設定したい｡
0と5のインデックスを使用します｡
100に等しい｡
そして､ これはすぐにでも理解できることです｡
そこで､ 私たちのグリーンスクエアを取り上げます｡
私たちには0と5があります｡
グリーンスクエアの値を100とし､ この場所とこの場所で値を設定します｡
では､ 次のスニペットを貼り付けますので､ それを見ていきましょう｡
だから､ 私が一つひとつのステップを書き出すのを見るのは､ ちょっと繰り返しになるからやめましょう｡
そして今､ 私たちはホワイトスペースを手に入れたのです｡
ポイント還元用のノートを設定しよう｡
このコードでは､ ディクショナリーを使用して､ ディクショナリー内の各値を設定しています｡
だから､ 私たちは通路を確保しているのです｡
これを個々の行として考え､ スライスしてインデックス1～9を設定します｡
そして､ これらの値を設定するために､ forループで反復処理を行いたいと思います｡
そうすることで､ 1から10まで､ 1､ 7､ 9を見ればわかりますが､ これを使うことで､ 実際に我々の環境で作業している1から10までの範囲の行インデックスを設定することができるのです｡
列のインデックスを設定することができる｡
ディクショナリーの行インデックスと列インデックスの通路で､ 負の値を設定することができます｡
つまり､ これは本質的に､ 各特定範囲を見る場合､ 例えば､ この範囲内のIの通路9を例にとると､
環境全体または環境内の各状態でマイナス1セットになっていることになるのです｡
8の場合､ 3と7があります｡
上にスクロールすると､ 3 と 7 はマイナス 1､ 100 はマイナス
100 に設定されており､ この繰り返しで､ これらの報酬を設定したり､
通路の中で定義している各状態をマイナス 1 に設定できます｡
とても簡単にできるようになりました｡
さらにロジックを書いたり､ より詳細な関数やステートメントを書く代わりに､ これらの値を反復して設定することができるのです｡
後で環境を変えたい場合は､ ぜひ一度､ エクスペリエンスを試してみることをお勧めします｡
このソリューションを実行した後､ これらの方針を学び､ 強化するのに役立つと思います｡
しかし､ これは形になりつつあり､ 私たちができるクールなことは､ 実際にそれを視覚化することです｡
では､ リワードで4列をやってみましょう｡
行をプリントして､ これをプリントしてみると､ 実際にセルを再実行しなければならないかもしれないことがわかります｡
申し訳ございませんでした｡
ここを通して作業しているノートパソコンとはつながっていなかった｡
1/2にしてください｡
エラーを投げることになる｡
もう一度､ セルを調べ直す必要がある｡
では､ 早速ですが､ これを実行します｡
NumPyをインポートしたいのですが｡
私は実際にちょうどすることができます｡
あ､ 失礼しました｡
ここを通過して､ 下に降りてきますよ｡
私たちの環境を走らせたい｡
私たちのアクションを実行したい｡
他は文字だけなので､ 必要ないですね｡
でも､ それを入れておくと､ みなさんが参考にすることができますからね｡
報酬ポイントが欲しい､ これをようやく可視化することができました｡
私たちの環境をnumpyで実際に数値で表現し､ 可視化したものを見ることができます｡
本当にかっこいい｡
これで環境は整いました｡
すごい作品ですね｡
皆さんも参考にしてください｡
さて､ ここで一旦終了です｡ 次の講義では､ モデルのトレーニングを開始する予定です｡
つまり､ エージェントの行動を設定し､ 環境を設定し､ 報酬や罰を設定するものだったのです｡
これは､ エージェントがQ学習内で最適なポリシーを確立するのに役立つと思われる｡
全体として､ このような視覚的な表現､ あるいはイメージが構築されており､ この行をプリントアウトすれば､ それを確認することができます｡
驚きです｡
わかりました｡
このままだらだらと続けるのはやめよう｡
次の講義では､ ここで締めくくりましょう｡
では､ モデルのトレーニングを開始しましょう｡
それでは､ 次回の講義でお会いしましょう｡