■はじめに

前回は 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 さんありきでの挑戦ですけど…