見出し画像

Unity ML-Agents 0.9.0 の模倣学習

「Unity ML-Agents 0.9.0」で機能拡張された「模倣学習」について紹介します。
[情報源]

1. 模倣学習

「模倣学習」は、教師となる人間の一連の行動(「デモ」と呼ぶ)を模倣することでタスクを攻略する学習法です。「デモ」と同じ行動を採ることで「報酬」がもらえる「強化学習」でありますが、「デモ」という「正解データ」がある「教師あり学習」でもあります。

「模倣学習」は、「強化学習」の支援にも役立ちます。特に「報酬」が少ない、または希少な環境には効果的です。

「報酬」が少ない、または希少な環境では、エージェントは「報酬」を見つけることができないため、学習することができません。「IMC」(Intrinsic Curiosity Module)を使って、エージェントに好奇心を持たせ、未知の状態への探索を促す方法もありますが、「模倣学習」を使って、エージェントが報酬にたどり着く行動を、人間が教えてあげる方がより容易になります。

たとえば、サンプル学習環境「Pyramid」では、「Curiosity+RL」(模倣学習なし)と比べ、「BC+GAIL+Curiosity+RL」(模倣学習あり)は1/4のステップ数で学習できています。

画像1

画像4

2. GAILとBC

「ML-Agents」では、「模倣学習」の学習アルゴリズムとして「BC」と「GAIL」を提供しています。これら2つの学習アルゴリズムを組み合わせて使用します。

◎ GAIL(Generative Adversarial Imitation Learning)
「GAIL」は敵対的アプローチを使用して、一連のデモで示された行動と似た行動を採ったことに対し報酬を与える学習アルゴリズムです。「GAIL」は、環境報酬の有無にかかわらず使用でき、デモの数が限られている場合にうまく機能します。

◎ BC(Behavioral Cloning)
「BC」は、一連のデモで示された行動を正確に模倣するようにエージェントを訓練する学習アルゴリズムです。「BC」は、多くのデモがある場合、またはGAILやCuriosityと組み合わせて使用​​する場合、最適に動作する傾向があります。

3. デモの記録

人間の操作のデモを記録するには、エージェントに「Demonstration Recorder」を追加します。

画像3

Record : デモを記録するかどうか。
Demonstration Name : デモファイルの名前。

「Record」をチェックすることで、「Unity Editor」のPlayボタンでの実行時に、デモファイル(*.demo)が保存されます。保存先は「Assets/Demonstrations」になります。

Projectウィンドウでデモファイルを選択すると、Inspectorウィンドウに各種情報が表示されます。

画像4


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