始めに
ML-Agentsの訓練設定ファイルをUnityで編集できるエディタ拡張を作成致しました。
※まだ開発途中です!今後更新又は修正していく予定です
TrainingSettingFileEditor
機能
各パラメータを設定して.yamlファイルを生成することが出来ます。
開き方
Winodw/ML-Agents/TrainingSettingFileEditorからエディタを開くことが出来ます。
Curiosityやセルフプレイなどのオプション項目
Curiosityやセルフプレイなどを使って学習したい場合はチェックボックスをチェックすることで設定項目が出てきます。
保存
設定が完了したら一番下の "Generate TrainingSettingFile"を押すと保存先を指定するウィンドウが開きます。
そこでファイル名と保存先をしていすることで、訓練設定ファイルを生成することが出来ます。
ファイル名はデフォルトで "BehaviorName" + ppr or sacとなります。
例として生成されたファイルは次のようになります。
TestBehaivor_ppo.yaml
behaviors:
TestBehavior:
trainer_type: ppo
max_steps: 0
time_horizon: 0
summary_freq: 0
keep_checkpoints: 5
checkpoint_interval: 500000
threaded: true
hyperparameters:
batch_size: 0
buffer_size: 0
learning_rate: 0
learning_rate_schedule: linear
beta: 0
epsilon: 0
lambd: 0
num_epoch: 0
network_settings:
vis_encoder_type: simple
normalize: false
hidden_units: 0
num_layers: 0
reward_signals:
extrinsic:
strength: 0
gamma: 0
curiosity:
gamma: 0
strength: 0
encoding_size: 64
learning_rate: 0.0003
self_play:
save_steps: 0
team_change: 0
swap_steps: 0
window: 0
play_against_latest_model_ratio: 0
initial_elo: 0
これから追加予定の機能
tooltip
今のところすべて "tooltip" と出力されますが、これから各パラメータの説明文を追加する予定です。
複数のbehaviorの設定
公式のML-Agentsサンプルでのサッカーでは2つのbehaviorの設定をしています。 以下にその訓練設定ファイルを載せます。
このようなファイルの生成がまだ出来ないのでこれからその設定項目を作成する予定です。
StrikersVsGoalie.yaml
behaviors:
Goalie:
trainer_type: ppo
hyperparameters:
batch_size: 2048
buffer_size: 20480
learning_rate: 0.0003
beta: 0.005
epsilon: 0.2
lambd: 0.95
num_epoch: 3
learning_rate_schedule: constant
network_settings:
normalize: false
hidden_units: 512
num_layers: 2
vis_encode_type: simple
reward_signals:
extrinsic:
gamma: 0.99
strength: 1.0
keep_checkpoints: 5
max_steps: 50000000
time_horizon: 1000
summary_freq: 10000
threaded: true
self_play:
save_steps: 50000
team_change: 200000
swap_steps: 1000
window: 10
play_against_latest_model_ratio: 0.5
initial_elo: 1200.0
Striker:
trainer_type: ppo
hyperparameters:
batch_size: 2048
buffer_size: 20480
learning_rate: 0.0003
beta: 0.005
epsilon: 0.2
lambd: 0.95
num_epoch: 3
learning_rate_schedule: constant
network_settings:
normalize: false
hidden_units: 512
num_layers: 2
vis_encode_type: simple
reward_signals:
extrinsic:
gamma: 0.99
strength: 1.0
keep_checkpoints: 5
max_steps: 50000000
time_horizon: 1000
summary_freq: 10000
threaded: true
self_play:
save_steps: 50000
team_change: 200000
swap_steps: 4000
window: 10
play_against_latest_model_ratio: 0.5
initial_elo: 1200.0
カリキュラム学習、環境パラメータのランダム化
これらの設定も出来るようにしたかったのですが、ブログを上げるまでに間に合いませんでした。
参考
EditorWindowでもtooltipを表示させる方法を調べた際に参考にさせて頂きました。
ファイルを保存する際に保存先を指定する方法で参考にさせて頂きました。
baba-s.hatenablog.com
訓練設定ファイルの項目については以下の本を参考にさせて頂きました。
Unity ML-Agents 実践ゲームプログラミング v1.1対応版 (Unityではじめる機械学習・強化学習)
- 作者:布留川 英一
- 発売日: 2020/08/14
- メディア: 単行本