AIを用いたマリオカート64の全自動走行がNINTENDO64の実機で成功

AIを用いたマリオカート64の全自動走行がNINTENDO64の実機で成功

  • GIGAZINE
  • 更新日:2021/11/25
No image

Googleが開発した機械学習のためのソフトウェアライブラリ「TensorFlow」を使用し、NINTENDO64でマリオカートの全自動走行を成し遂げた人物が登場しました。

Can an AI learn to drive Mario Kart 64? - YouTube

Let’s-a Go, TensorFlow! - Hackster.io

https://www.hackster.io/news/let-s-a-go-tensorflow-713147d81e18

マリオカートの全自動走行を成し遂げたのは、セキュリティ研究者であるstacksmashing氏。stacksmashing氏は2017年に登場した「TensorFlowを用いて人工知能(AI)がマリオカート64をプレイできるように学習させる」というプロジェクトに感銘を受けたとのことですが、このプロジェクトは実機ではなくエミュレーターを使用して行われていたため、同氏は実際にNINTENDO64を使用した全自動走行が行えるよう、ソフトウェアの改修を試みました。

stacksmashing氏のアイデアは、NINTENDO64から出力された映像をPCに取り込んで機械学習を行い、PCからの出力結果をコントローラー入力としてNINTENDO64に送り返すというもの。NINTENDO64からのAV出力はアダプターを使用してHDMIに変換、PCからのコントローラー信号出力はRaspberry Pi Picoを用いて変換を行いました。

No image

全体像はこんな感じ。間に観測用のモニターも挟まれています。

No image

そして、stacksmashing氏は前述のプロジェクトで作成されたマリオカート64を制御するための機械学習モデルとツールのセット「TensorKart」を借用。PlayStation 4のコントローラーを用い、マリオカート64から出力される映像のフレームとコントローラーの入力信号を関連づける学習をAIに行わせました。この際遅延を減らしたり、コントローラーの入力しきい値を変更したりといった調整を加えたとのこと。

No image

stacksmashing氏は1万ものフレームを用いてトレーニングを行いましたが、最初のモデルではキャラクターが砂に突っ込んだり壁にぶつかったりしてしまいました。

No image

そこからパラメーターの調整を加え続けた結果、ルイージサーキットを全3ラウンド問題なく走行できるようになったとのこと。

No image

stacksmashing氏はトレーニングの際に感じた興味深い点として、AIは「マップ」から学習しているように見えたということを挙げています。AIはマップ表示をオンにするとマップから学習し、マップ表示をオフにするとキャラクターから学習。さらにマップやタイム表示などの余計な情報を全て排除すると、AIのパフォーマンスが大幅に向上したとのこと。

No image

stacksmashing氏は訓練データの学習回数を指すエポック数を増やすとパフォーマンスが向上し、エポック数150で3ラウンドを問題なく走りきったと述べています。なお、パフォーマンスには一貫性があり、ラウンド2とラウンド3の走破タイムの差はわずか0.01秒でした。

No image

ルイージサーキットでのトレーニングを終えたところで、stacksmashing氏は新しいコースとしてカラカラ砂漠を追加して学習を行わせました。その結果、このコースではわずか2ラウンド分の学習で走破に成功したとのこと。stacksmashing氏は「他のコースでも走破することは可能ですが、パフォーマンスはそれほどいいとは言えません。より多くのトレーニングが必要だと思います」と述べました。

No image

なお、stacksmashing氏が改良を加えたモデル「TensorKartRealHW」はGitHubで公開されています。

この記事をお届けした
グノシーの最新ニュース情報を、

でも最新ニュース情報をお届けしています。

外部リンク

  • このエントリーをはてなブックマークに追加