Unity ML-Agentsの学習シナリオ(1)

Unity ML-Agentsでは「Agemt」「Brain」「Reward」の組み合わせによっていろいろな学習シナリオを実現することができます。

  • Single-Agent
    1つのAgentに1つのBrainがリンクされている学習シナリオです。
    一番シンプルなシナリオで、シングルプレイヤーゲームがこれにあたります。
  • Simultaneous(同時) Sigle-Agent
    「独立報酬」をもらう複数のAgentが1つのBrainにリンクされている学習シナリオです。
    Single-Agentの並列化バージョンで、スピードアップと安定化ができるようになります。
    ナルトが多重影分身で修行しているような感じです。
  • Adversarial(敵対) Self-Play
    「逆報酬」をもらう敵対した2つのAgentが1つのBrainにリンクされている学習シナリオです。
    2人プレイのゲームでAgent同士を対戦させることで学習を行うようなケースがこれに適応します。
    (例)テニスのプレイヤー

ドロップアウト

ドロップアウトは層の中のニューロンのうちいくつかをランダムに無効にして学習を行い、パラメータが多く表現の高いネットワークの自由度を抑えることで、モデルの頑健性を高めます。

最適化

機械学習や深層学習において、「学習」とは予測の誤差を最小化・最適化することを意味します。
最適化とは、与えられた関数を最小または最大にするようなパラメータを見つけることです。

機械学習とは、予測の誤差を最小にするパラメータを見つけることと言い換えることもできます。
TensorFlowでは勾配法という手法を使って関数を最小化します。

深層強化学習

深層強化学習とは深層学習と強化学習の2つを組み合わせた方法です。

  • 深層学習
    答えのある問題を学習して分類する問題(画像認識や自動作文)などに用いられます。
  • 強化学習
    よい状態と悪い状態だけを決めておいてその過程を自動的に学習してよりよい動作を獲得する問題(ロボットのコントロールやゲームの操作)などに用いられます。

超解像度

超解像度(Super Resolution)とは、解像度の低い画像や動画を受け取り、解像度の高い画像や動画を生成する技術のことです。

TensorBoard(3)

TesnorBoardはTesorFlowのデータを可視化するツールです。
学習状況をより詳細に観察することができるようになります。

7.Value Estimates

予測する将来の報酬です。
学習成功時には増加し、継続して増加することが期待されます。

Value Estimates

8.Value Loss

予測する将来の報酬と実際の報酬がどれだけ離れているかを示す値です。
報酬が安定したら、減少することが期待されます。

Value Loss

TensorBoard(2)

TesnorBoardはTesorFlowのデータを可視化するツールです。
学習状況をより詳細に観察することができるようになります。

4.Episode Length

エピソードの平均の長さです。評価する環境によって望まれる結果は異なります。
ボールを落ちないようにする環境では、増加することが期待されます。
迷路を解くようなゲームでは、減少することが期待されます。

Episode Length

5.Learning Rate

学習率です。今回の行動評価を過去の行動評価と比べてどの程度信じるかという割合になります。
時間とともに継続して減少します。

Learning Rate

6.Policy Loss

Brainが行動を決定する「方策がどれだけ変化しているか」を示す値となります。
学習成功時には減少し、継続的に減少することが期待されます。

Policy Loss

TensorBoard(1)

TesnorBoardはTesorFlowのデータを可視化するツールです。
学習状況をより詳細に観察することができるようになります。

1.Lesson

カリキュラム学習のレッスンの進捗です。カリキュラム学習でない場合は、Lesson 0のままとなります。

Lesson

2.Cumulative Reward

エージェントの平均累積報酬です。継続して増加し、上下の振れ幅が小さいことが期待されます。
タスクの複雑さによってはなかなか増加しないこともあります。

Cumulative Reward

3.Entropy

Brainが決定する「Actionがどれだけランダムであるか」を示す値です。
継続的に減少することが期待されます。

Actionのデータ型が離散(Discrete)の場合、次のような対応が有効となります。

  • エントロピーの減少が早すぎる。
    → ハイバーパラメータのbetaを増やす。
  • エントロピーの減少が遅すぎる。
    → ハイバーパラメータのbetaを減らす。

Entropy

Unity ML-AgentsのBrain

Agentが観測した状態に応じて、行動を決定するオブジェクトとなります。
1つのBrainで複数のAgentsの行動を決定することもできます。
Brainには下記の4種類があります。

1.External

外部の自作MLライブラリ(Tensorflowなど)を使用します。
学習時に設定されます。

2.Internal

プロジェクトに埋め込まれた推論モデルを使用します。
推論時に設定されます。

3.Player

プレイヤー(人間)の入力に従って行動します。
学習環境の動作確認時などに利用します。

4.Heuristic

ルールベース(プログラム)に従って行動します。

Unity ML-Agentsのプロセス

Unity ML-Agentsは、Unityで機械学習の学習環境を構築するためのフレームワークです。
Unity ML-Agentsでの2プロセスに関して説明します。

学習プロセス

学習用Pythonスクリプトが学習環境となるUnityで強化学習を行います。
学習結果は推論モデルとして保存されます。

推論プロセス

学習結果となる推論モデルをつかってUnityで動作します。
推論モデルは与えられたデータから推論結果を導き出すものです。