見出し画像

Unityではじめる強化学習 / Unity ML-Agents 0.9.0の新機能

Unity ML-Agents 0.9.0」がリリースされたので新機能をざっくり紹介。
[情報元]

1. 新機能

◎ 模倣学習の学習アルゴリズム「GAIL」が追加
人間が提供するデモを網羅的に必要とする「BC」(Behavior Cloning)とは異なり、「GAIL」(Generative Adversarial Imitation Learning)はわずか5〜10分のデモから模倣学習を可能にします。
詳しくは模倣学習のページを参照。

◎ PPOトレーナーの事前トレーニングが可能に
事前トレーニングは、人間が提供するデモを使用してエージェントの行動をブーストする学習方法です。特に、エージェントがなかなか報酬に到達できない環境や、特定の部分で動けなくなる環境では効果的です。
詳しくは模倣学習のページを参照。

◎ 汎化トレーニングの追加
トレーニングプロセスを通して同じ環境でトレーニングされたエージェントは、その特定の問題の解決には優れた能力を発揮しますが、環境が変化(地形の変化など)すると、失敗してしまいます。
今回のリリースでは、トレーニング中に環境を変化させることができるため、エージェントは環境の変更に対してより堅牢になります。
詳しくは汎化トレーニングのページを参照。

◎ 複数のUnity環境を実行する場合、環境のステッピングが非同期的に行われるように変更
これまでは、MLエージェントはすべての並列環境がステップを完了するのを待っていました。一部のステップ(リセットなど)が他のステップよりもはるかに長くかかる可能性がある環境では、これによってステップ収集時間が最も遅いステップに遅くなっていました。
複数の環境を使用している場合、これによりTensorBoardで報告されるステップの定義が変わります。

◎ Visual Ovservation使用時のNatureおよびResNet CNNアーキテクチャのオプションを追加
これらのより大きなニューラルネットワークは、より複雑な視覚的観察に役立つ可能性があります。

◎ Unity実行環境にmlagents-learnからコマンドライン引数を渡す機能を追加

◎ Pythonでの基本的なプロファイリング機能を追加

2. 修正点と改善点

・Unity推論エンジンを0.2.4にアップグレードし、推論中のメモリ使用量を大幅に削減。
・Curiosity, Extrinsic、GAILの報酬定義を統一。
・Gymラッパーと複数の視覚的観察のサポートを追加。
・韓国語のドキュメントとローカライズを追加。
・SubprocessEnvManagerのカスタムリセットパラメータの修正。
・VisualBananaのサンプル環境における産卵バグの修正。
・Dockerコンテナでの視覚的観察使用時のメモリリークの修正。
・その他のマイナーなバグとドキュメントの修正。

3. ワークフローの変更

・CuriosityとGAILの有効化はreward_signalsパラメータで行う。
・複数の環境を使用してトレーニングを実行する場合、TensorBoardに報告されるステップ数は、全環境ごとに1つではなく、環境ごとに実行されるステップ数に対応。
詳しくは移行のページを参照。

4. 既知の問題点

まれに、WindowsでCtrl+Cによる終了を行った時、モデルが保存されないことがあります。この場合は「mlagents-learn --load」でパラメータをロードし、もう一度保存してください。


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