by Adam Purves (S3ISOR)

1996年に発売された「ポケットモンスター 赤」のクリアをAIで目指すプロジェクト「Pokémon RL Edition」が、DeepSeek-V3よりも約6万分の1となるパラメーター規模のAIエージェントで「ポケモン赤」のクリアに成功したと報告しています。

Learning Pokémon With Reinforcement Learning | Pokémon RL
https://drubinstein.github.io/pokerl/

GitHub – drubinstein/pokemonred_puffer
https://github.com/drubinstein/pokemonred_puffer

強化学習とは、目的として設定された報酬を最大化するための行動を学習する手法で、一般的には将棋や囲碁のAIに用いられています。静的なデータセットに依存するのではなく、動的な環境で試行錯誤しながら収集した経験から学習する方法です。

ポケモンをはじめとするJRPGをプレイするには複雑な推論と意志決定が必要であり、長時間のゲームプレイが必要です。プロジェクトチームは「強化学習でJRPGをクリアすることは、強化学習にとって非常に困難な課題をもたらすと考えており、JRPGがAIを改善するための優れたベンチマークとなることを願っています」と述べています。

プロジェクトチームによれば、JRPGの中でも「ポケモン」は比較的プログラミングが簡単であるとのこと。そこで、プロジェクトチームはポケモンリバースエンジニアリングチーム(PRET)のツールと、Pythonによるゲームボーイエミュレーションを目指すPyBoyを利用し、強化学習エージェントで「ポケモン」のクリアを目指しています。

by case97

強化学習を採用している理由は、「教師あり学習だと適切にラベル付けされた豊富なデータセットと大規模なモデルと予算が必要だから」とのこと。さまざまなアプローチを検討する上で、強化学習が最も魅力的だったとプロジェクトチームは述べています。また、AIが学習する際に何に最適化するかを決定するための報酬関数が明確ではないことも、強化学習が選択された理由となっています。

強化学習であれば、学習したデータはほぼ常に最新であり、複雑なデータ収集システムを構築したり、大規模なデータセットを管理したり、データセットが古くなっているかどうかを心配したりする必要はありません。新しいデータを即座に作成できるシステムを構築できれば、トレーニングを開始できます。


「ポケモン」では、クリアに必要なポケモンをゲットできない、クリアに必要なポケモンを手持ちに入れられない、アイテムを集めすぎてキーアイテム用のスペースが足りなくなる、ダメージを与えない技を持つポケモンだけを手持ちにする、といった「クリア不可能になるような状況」が発生するリスクがあります。

そこで、このプロジェクトではある環境になった時点でエージェントに特定のアクションを実行するようなスクリプトを組み込んでいるとのこと。プロジェクトチームは「私たちはスクリプトを使わずにクリアしたいと考えていましたが、いくつかの場面ではゲームから直接学習できない人間の直感が必要となります」とコメントしています。

プロジェクトチームによれば、特に難しかったのがサファリゾーンの攻略だったそうです。サファリゾーンでは、攻略に必須のアイテムとなる「きんのいれば」と「ひでんマシン03 なみのり」をゲットしなければなりません。入場料を支払えば何度も挑戦はできますが、制限歩数以内に正しいルートを見つけるのは至難の業だったとのこと。そこで、スクリプトを追加した上でサファリゾーンでの残り歩数に比例した報酬をゲットする方法を採用したところ、数千回の試行でようやくクリアすることができたとプロジェクトチームは報告しています。


プロジェクトチームは最終的に一応「ポケモン」をクリアできるエージェントを完成させることができたそうですが、記事作成時点では、すべてのスクリプトを無効にした状態でシステムがゲームをクリアできることを証明できるほど安定してクリアできる状態には至っていないとのこと。各スクリプトを個別に削除した状態でクリアを確認しているものの、一部のバグがあるため、解決するべき課題は残っているそうです。

プロジェクトチームは「JRPGは特別なもので、より強力なAIへの足掛かりになると信じています。しかし、学ぶべきことはたくさんあり、削除すべきスクリプトも多くあります」とコメントしています。

この記事のタイトルとURLをコピーする

WACOCA: People, Life, Style.