見出し画像

強化学習で遊ぶ part3 真似して育つAI

UnityのML-agentsを利用し、サッカーAIを強化学習で育てる記事です。
~~~前回の内容はこちら~~~

強化学習で遊ぶシリーズpart3じゃ。サッカー対戦をテーマに強化学習の解説をしてきたが、今回は模倣学習を学んでいくぞ。

模倣学習ですか。何かを真似るということですか?

その通りじゃ助手くん。4対4のサッカーAIを学習するのに1日かかっておったが、基本はキックしてボールをゴールに入れることじゃ。なぜこんな時間がかかるかというと、どのようにして報酬(ゴール)を得るかは手探り状態だからじゃ。これは、例えば麻雀を知らない人がルール説明も受けずに遊んでいることになる。膨大な回数をこなさねば、何が得点に結びついているかを学習することは困難じゃろう。
じゃが、見本をみせてあげることで、見様見真似で早く報酬を得られる方法を身につけられるのが模倣学習という方法じゃな。

お手本をみせるってことですね。たしかにAIくん、最初はボールに見向きもしないですもんね。

学習初期段階のAI(2対2の時)

模倣学習は人間も無意識にやっておるぞ。幼児が大人の真似をしたり、大人は専門家の知識や行動を真似して、それが良い結果となるかを確かめたりするからの。UnityのMl-agentsを使えば、簡単にプレイを記録して、強化学習に組み込むことができる。

人が手本を見せても良いが、今回は折角優秀なサッカーAIがすでにあるので、そのプレイを記録してみるぞ。どれくらい模倣学習の効果があるのか、みてみよう。Unity上で以下の設定をするだけじゃ。

模倣学習用のデモファイル作成
学習パラメータを記載したconfiguration.yamlを変更

24時間学習したAIのプレイを約100ゴール分記録しました!

模倣学習の効果を検証する実験をやってみよう。以下の3つのチームのリーグ戦じゃ。先に100ゴールしたチームの勝利とするぞ。

・Aチーム:24時間学習したAI
・Bチーム:Aチームの100ゴール分のプレイを元に、2時間学習したAI
・Cチーム:2時間学習したAI

わしの予想はA>B>Cじゃな。BとCの学習時間は同じにしておるので、Aチームのデモデータによる模倣学習がどれくらい効果がわかるの。

対照実験ってやつですね!

さっそく、試合の様子と結果じゃ!

Aチーム(赤)vsCチーム(青)
Bチーム(赤)vsCチーム(青)
Aチーム(赤)vsBチーム(青)
試合結果 ○=勝利 ✕=敗北 下の数値は得点

模倣学習したBチームが同じ学習時間のCチームに勝利じゃ。模倣元のAチームには及ばんが、十分な結果が得られたの。

博士の予想通り、A>B>Cの順位になりましたね。模倣学習の効果がはっきり出てます。お手本があればすぐにゴールを覚えてくれますね!

まとめ

今回は模倣学習を試したぞ。お手本となるプレイがあれば、少ない試行回数(学習時間)でAIが育つことがわかったの。難しい問題でなかなかうまくAIが学習できないときは試してみると良いぞ。

博士質問です。人によってプレイスタイルが違うゲームってありますよね?模倣学習も、お手本のプレイスタイルを真似る?

十分あり得るの。自分のプレイスタイルを真似た、オリジナルのAIを作ることも可能じゃ。

みんなでAIを育てたり、対戦させてみると面白いかもしれませんね!

強化学習は他のAIの学習手法と比べてまだまだ普及されていないが、面白いからもっと身近にあるようになってくれると良いのお。
それでは今回はここまでじゃ。またの~。

この記事が気に入ったらサポートをしてみませんか?