【AI×ポケモン】強化学習したAIにポケモンを自動攻略させてみた「PokemonRedExperiments」

PokemonRedExperiments AI ゲーム ポケモン 攻略

PokemonRedExperimentsは、強化学習を使用してポケモンレッドをAIにプレイさせようというプロジェクトです!

公開されて間もないですが、大注目となっており、このプロジェクトの紹介動画は、YouTubeで100万回以上再生されています。

名前を聞いただけでも面白そうなので、注目されて当然ですね!

今回は、PokemonRedExperimentsや実際に使ってみた感想をお伝えします。

是非最後までご覧ください!

目次

PokemonRedExperimentsの概要

PokemonRedExperimentsは、強化学習を使用してポケットモンスターレッドをプレイするAIを訓練することを目的としているプロジェクトです。

事前に訓練されたモデルが公開されているため、ローカルにダウンロードして実行することもできます。

そんなPokemonRedExperimentsの特徴は、以下の4点です。

  • 強化学習を使用:2万回以上も訓練を行い、強化学習されたAIモデルを使用して、ポケモンレッドというゲームをプレイさせることが目的のプロジェクトです。ただ、設定を変更すればユーザーが操作することもできます。
  • 事前学習モデルの実行:Python 3.10環境で、必要なパッケージのインストールすることで、事前学習されたモデルを実行できます。実行の様子は、エミュレーターで見ることができます。
  • モデルの訓練:ユーザーがモデルの訓練をすることもできますが、デフォルトで最大約100GBのRAMを使用する可能性があります。ただ、それは訓練の初期段階のみで、その後は安定して動作します。
  • 訓練の進捗の追跡:事前に用意されたノートブックを使用して、エミュレーターの現在の状態を表示したり、基本的な統計をプロットしたりして、現在の訓練の進捗状況を確認できます。

自分で訓練をしようと思うと、超高性能なPCが必要になるので、事前学習済みのモデルを配布してくれているのはありがたいですね。

このプロジェクトを紹介した動画に日本語字幕が付けられたものがあったので、こちらもご覧ください。

今回は、モデルの訓練は方法のみ紹介して、実際に実行する際は事前学習済みモデルを使用します。

では早速使い方からご紹介します!

PokemonRedExperimentsの使い方

使い方は、以下の公式GitHubを参考にして紹介していきます。

PokemonRedExperiments

導入を始める前に、Web上で公開されているポケットモンスターレッドのROMをPCに入れておく必要があります。

また、実行環境のPythonバージョンは3.10が推奨されており、その他のバージョンは動作確認されていないそうです。

では、早速導入していきましょう!

まず、上記のGitHubのリポジトリをローカルにダウンロードします。

git clone https://github.com/PWhiddy/PokemonRedExperiments.git

次に、PokemonRedExperimentsディレクトリに移動します。

cd PokemonRedExperiments

移動したら、ポケットモンスターレッドのROM(.gb)をディレクトリにコピーします。

cp 任意のパス/Red.gb .

コピーしたファイルをリネームします。

リネームはしなくても特に影響はありません。自分の分かりやすい名前にしてください。

mv Red.gb PokemonRed.gb

ここまで出来たら、beselinesディレクトリに移動します。

cd baselines

ここで、実行するための仮想環境を作成します。

名前は自分の分かりやすいものをつけ、Pythonバージョンは3.10を指定してください。

conda create --name pokey python=3.10

仮想環境をアクティベートします。

conda activate pokey

ここまで完了したら、以下のコードを実行して必要なライブラリやパッケージをインストールします。

pip install -r requirements.txt

これで実行環境の整備と導入が完了しました!

この後の実行のフェーズは、事前学習済みモデルを使用する場合と、モデル訓練して実行する場合の2通りあるので、ここではモデルを訓練して実行する方法をお伝えして、この後の実際に使ってみたで、事前学習済みモデルを使った方法を解説します。

モデルを訓練して実行

必要なもののインストールが終わったら、同じディレクトリで以下のコードを実行します。

python run_baseline_parallel.py

すると、モデルの訓練が始まるので、完了するまで待ちます。

なお、訓練の進捗状況が見たい場合は、以下のノートブックをJupyter Notebookで起動して実行することで見ることができます。

VisualizeProgress.ipynb

これで、導入は完了です。

それでは実際に使っていきたいと思います!

なお、テキストプロンプトからゲームを作ってくれるAIについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
Camelすっげぇ!「テトリスゲーム作って」と言ったら本当にできて脱帽した話!

PokemonRedExperimentsを実際に使ってみた

前述した、必要なライブラリとパッケージのインストールが完了したら、同じディレクトリで以下のコードを実行することで、事前学習済みモデルを使用して実行することが可能です。

python run_pretrained_interactive.py

すると、このようにwindowが開き、AIが自動でポケットモンスターレッドをプレイし始めます。

実際に動いている様子を動画でお見せします。

AIが黙々とプレイしていますね笑

ちなみに音声はないようです。

それでは、実際に使えることが分かったので、ここからはどんな機能があるのか見ていきましょう!

なお、全自動でソフトウェアを作ってくれるAIについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
【ChatDev】AI従業員が運営する仮想ソフトウェア開発会社に、シューティグゲームの開発を依頼してみた

PokemonRedExperimentsの機能を検証!

基本的には、AIが自動でゲームをプレイするものなので、我々ユーザーができることは少ないのですが、以下の機能があるそうなので紹介します。

手動操作

マップ視覚化

手動操作

デフォルトでは、AIが操作するようになっている設定をオフにすることで、手動で操作することが可能になっています。

その設定を変更するには、baselinesディレクトリ内のあるagent_enabled.txtを書き換える必要があります。

まず、プロンプト内でエディターを起動します。

今回はvimを使用します。

vim agent_enable.txt

テキストファイルを開くと「yes」と書かれているので、これを「no」に書き換えます。

書き換えたら、保存してもう一度実行します。

python run_pretrained_interactive.py

すると、以下の動画のように手動で操作できるようになっています。

矢印キーで移動し、AキーとSキーで選択するようです。

少し癖のあるキー配置ですが、まあサブ機能なので仕方ないでしょう。

マップ視覚化

マップを可視化するコードも用意されているようなので、紹介します。

まず、先ほどのbaselinesディレクトリから一個戻って、PokemonRedExperimentsディレクトリに移動します。

cd ..

次に、visualizationディレクトリに移動します。

cd visualization

その中には以下のようなファイルが入っています。

この中の、BetterMapVis.ipynbをjupyter notebookで開いて実行すると、以下の全体マップを取得することができます。

ユーザーが触れるのは現状このくらいの機能しかありませんが、実際に使っていて思ったのが、AIが全然バトルに負けないんです!

2万回以上もプレイして、訓練されているので、当然といえば当然なのですが、AIがここまでサクサクゲームを攻略していくのは、見ていて楽しいですね!

このプロジェクトで培われた技術が活かされて、今後さらに複雑なゲームもAIがプレイできるようになれば、AIがゲームの実況プレイをするなんて日もそう遠くないのかもしれません。

PokemonRedExperimentsのこれからに期待!

PokemonRedExperimentsは、、強化学習を使用してポケットモンスターレッドをプレイするAIを訓練することを目的としているプロジェクトです。

このプロジェクトで訓練されたモデルは、事前学習済みモデルとして公開されており、ローカル環境にダウンロードして使用できます。

実際に使ってみた感想は、2万回以上も訓練されているだけあり、サクサクとゲームを攻略している印象で、モデルの性能は十分高いようでした。しかし、ユーザーが触れる機能が少なかったので、もう少し機能があればもっと面白かったと思います。

PokemonRedExperimentsで培われた技術は、今後もっと複雑なゲームをAIにプレイさせることにも活用されることも予想されるので、今後の動向に目が離せません!

サービス紹介資料

生成系AIの業務活用なら!

・生成系AIを活用したPoC開発

・生成系AIのコンサルティング

・システム間API連携

最後に

いかがだったでしょうか?

弊社では

・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
ハルシネーション対策AIツールの開発
自社専用のAIチャットボットの開発

などの開発実績がございます。

まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。

➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。

生成AIを社内で活用していきたい方へ
無料相談

「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。

セミナー内容や料金については、ご相談ください。

また、サービス紹介資料もご用意しておりますので、併せてご確認ください。

投稿者

  • ゆうや

    ロボット工学専攻。 大学時代は、対話ロボットのための画像キャプションの自動生成について研究。 趣味は、サウナとドライブ。

  • URLをコピーしました!
  • URLをコピーしました!
目次