■はじめに
前回は MiniGrid(ドアなし)に挑戦して、PPO でなんとか“ゴール”までこぎつけました。
そして、ChatGPT さんにMiniGrid(ドアあり鍵あり)についてイロイロと聞いて、何とかMiniGrid(ドアあり鍵あり)に挑戦です。
「洞窟から、いよいよ迷路へ!」という感じでビクビクしながら挑戦開始!
(ChatGPTさんに応援されながらゴールを目指すプロンプト・ウサギのイラスト)
■ まず最初の壁:PPO(デフォルト)の限界
これまで散々「PPOマジ優秀」と言ってきましたが、MiniGrid(ドアあり鍵あり)でここが崩れました。
いやぁ、自キャラがまったく動きません。
ChatGPTさんで確認しても、コードは正しいらしく学習方法を変えるしかないみたいです。変え方を聞いたら2案提案してくれました。
>ChatGPTさんのご返事
⚫PPO + 共有CNN の ICM(Intrinsic Curiosity Module) を使う
→最近のトレンド、変化に強い
⚫報酬設計を追加する
・鍵に近づく → 少し報酬
・ドアに近づく → 少し報酬
・壁にぶつかったらペナルティ等
→学習が速くなる、変化に弱い
ICM付き?
新しい概念なので、いつものPPOと何が違うか教えてもらいましょう。
なんか今回、ChatGPTさんがノリノリなので、こんな表まで作ってくれました。
好奇心?AIと最も遠い言葉が出ました。
安定しているという言葉だけで共有CNNを選びました。
■実装はChatGPTさん任せ
⚫ 1. やっぱり学習環境は壊れやすい
最初にこれを実行
!pip install -q minigrid gymnasium moviepy pillow
⚫ 2. MiniGrid のサイズは「決まってる」
MiniGrid-Empty 系と同様、MiniGrid-DoorKey 系も決まってます。
・MiniGrid-DoorKey-5x5-v0
・MiniGrid-DoorKey-6x6-v0
・MiniGrid-DoorKey-8x8-v0
・MiniGrid-DoorKey-16x16-v1(←注意)
サイズ増加と共にむづかしさも指数的に上がっていくので、5×5で実行します。
■ 結果:何とかゴールしてくれましたが…
最終的に、MiniGrid-DoorKey-5×5-v0は、ちゃんとゴールできました!
なんかChatGPTさんも張り切って、ランダム挙動との比較動画を作ってくれました。
挙動比較付きコードはコチラ
ゴールへ一直線に走り込むPPO+ICMとウロウロするランダム挙動の動画かコチラ
やったーーーー!!🎉
でも毎回一直線とはならず、少し迷うことも…
後、このままではサイズアップに耐えられません。
まだまだ、勉強と言うことですかね。
■ 今回の学び
MiniGrid -DoorKeyを選んだ途端、世界が変わる。
AIにも探求心てあるんだ。
PPO にはじめて改造を加えました。これまで設定ほぼデフォルトだったけどここで限界でした
■ まとめ
今回は MiniGrid(ドアあり鍵あり)に挑戦して、 PPO+ICMで一番簡単と言われる
MiniGrid-DoorKey-5×5-v0
を何とかクリア出来ました。
毎回一直線とはならない困ったちゃんのクリアですけど…
次は サイズアップに挑戦したいところなので、ちょっと下調べしようかな?
また ChatGPT さんありきでの挑戦ですけど…

