シェケナベイベー

れっつだんしんぐ!

ML-Agent研究レポート~その1~

Unityで提供されるML-Agentsを利用した機械学習を実際に走らせた結果などをまとめる企画。まず機械学習に向いたモデルと言うものがあるようで、Examplesの中から例をふたつピックアップして概要をまとめると

 

Basicモデルの場合

学習モデルはいたって単純。

  • 小さい球にタッチで+0.1点
  • 大きい球にタッチで+1.0点
  • コースアウトで-0.01点

上記ルールを設けて機械学習を試みると小さい球の方に収束してしまうケースが稀にあった。これは小さい球に触り続ける方がコースアウトするより高得点であるうえに、大きい球にタッチしに行く可能性も収束してしまうので期待した通りの結果を得られない場合もあるというモデルケース。

 

Crawlerモデルの場合

この学習モデルでは先とはうって変わり複雑なケースを想定。球体のボディから有関節の足が4本生えている構造を持ち、また関節には稼働限界角度などがそれぞれ設定されている。すなわち4足歩行を機械学習で最適化するモデルケースである。なお目標へのアプローチは

  • からだ本体が接地したらペナルティ
  • 目標物への移動速度が一致したら報酬(0~1で可変)
  • 目標物への方向へ一致したら報酬(0~1)
  • 目標に達したら報酬&目標物の再配置

レーザーで目標を観測し補足するなどの処理は採用せず、体を落とさずに4足を利用した目標物への移動方法を機械学習する試みと言うことだ。モデルケースとしてはかなり複雑なパターンであり、上限回数も100万回と最適化にかなりの時間が掛かる事が予測される。以下学習ログと画面の挙動を読み取りながら、機械学習がどのように進行するかの例をまとめる。

 

※ゼロ回では流石に生まれたての子ヤギ状態

※約10万回前後で接地しない足の使い方を学んだ気配

※12万回を超えると目標方向を向く意識がやんわりと発生確認

※20万回でようやく目標方向へ進行する歩き方を発見した気配

※25万回超えて初めて目標物に到達

※30万回でよちよち歩きの幼児なみへ

※40万回。目標方向の補足はほぼ完成。方向転換の学習がかなり困難な印象。

※50万回でかなりスムーズになってきたが方向転換がまだぎこちない。特に真逆を向いていると目標方向への転換がかなり遅い。

※60万回。方向転換もかなりスムーズになったが時々まだ迷ってる気配あり

※70万回。猫まっしぐらほぼ完成。180度ターンがやはり苦手な模様

※80万回を超えればターンもお手の物。即目標へ向かって移動を開始する

 

以下に機械学習が完了した場合の動画と学習経過グラフを公開しておく。

 

www.youtube.com

 

 

学習経過グラフ