YAMLファイルの詳細
YAMLファイルの目的
- 設定管理: 環境やトレーニングの設定を管理するために使用します。これにより、トレーニングのパラメータを簡単に調整できます。
YAMLファイルの構造
behaviorsセクション: 各エージェントの振る舞いの設定を含みます。トレーニングの種類やハイパーパラメータ、ネッ トワーク設定などが含まれます。- 例:
behaviors:
MyAgentBehavior:
trainer_type: ppo
hyperparameters:
learning_rate: 3.0e-4
batch_size: 1024
buffer_size: 2048
number_of_epoch: 3
network_settings:
normalize: false
hidden_units: 128
num_layers: 2
reward_signals:
extrinsic:
strength: 1.0
gamma: 0.99
keep_checkpoints: 5
max_steps: 5.0e4
主なパラメータの説明
trainer_type: トレーニングアルゴリズムの種類。例えば、ppo(Proximal Policy Optimization)やsac(Soft Actor-Critic)など。hyperparameters: 学習率やバッチサイズ、バッファサイズなどのハイパーパラメータ。network_settings: ニューラルネットワークの設定。隠れ層のユニット数やレイヤー数を定義します。reward_signals: 報酬信号の設定。報酬の強さや割引率(gamma)などを含みます。keep_checkpoints: 保存するチェックポイントの数。max_steps: 最大ステップ数。エピソードごとにこの数に達するまで実行します。
YAMLファイルの使い方
-
設定の作成: 必要な設定をYAMLファイルに記述します。
-
トレーニングの実行: ML-Agentsのトレーニングコマンドを使用して、YAMLファイルを指定し、トレーニングを開始します。
コマンド
mlagents-learn config/trainer_config.yaml --run-id=MyRun
これで、ML-Agentsのエージェントスクリプト、メソッド、エピソードとステップの違い、ContinuousActions、報酬設定、YAMLファイルの詳細についての理解が深まると思います。質問があれば、さらに深掘りしてお答えします!
Unity ML-Agentsのトレーニングを実行する際に使用するコマンドについて、以下に詳細を説 明します。再実行時やトレーニングの設定変更後にどう対応するかも含めて解説します。
基本的なトレーニングコマンド
1. トレーニングの実行
トレーニングを開始する基本的なコマンドは以下のようになります:
mlagents-learn <config_file> --run-id=<run_id>
<config_file>: トレーニング設定が記述されたYAMLファイルへのパス。<run_id>: トレーニングセッションを識別するための一意のID。新しいトレーニングセッションごとに異なるIDを指定することが推奨されます。
2. サンプルコマンド
mlagents-learn config/trainer_config.yaml --run-id=my_first_run
このコマンドは、config/trainer_config.yamlに基づいてトレーニングを開始し、セッションIDとしてmy_first_runを使用します。
再実行時の注意点
1. 既存のトレーニングを再実行する
-
新しいセッションとして再実行: トレーニングの設定を変更した場合や、別の実験を行いたい場合は、新しい
run-idを指定して再実行します。これにより、前回のトレーニング結果に影響を与えずに新しいトレーニングが開始されます。mlagents-learn config/trainer_config.yaml --run-id=my_second_run -
既存の セッションを再開: 既存のセッションを再開したい場合は、以前に使用した
run-idを指定します。ただし、ML-Agentsでは通常、新しいトレーニングを開始するために新しいrun-idを使用することが推奨されます。
2. 中断したトレーニングの再開
トレーニングが中断された場合は、以下の手順で再開できます。
-
チェックポイントの確認: トレーニングのチェックポイントが保存されていることを確認します。これにより、トレーニングの途中から再開できます。
-
再開コマンド:
--resumeフラグを使用して、既存のセッションを再開します。mlagents-learn config/trainer_config.yaml --run-id=my_first_run --resumeただし、
--resumeフラグは通常、前回のトレーニングで中断があった場合に使用されます。デフォルトでは、トレーニングは最初から開始されます。
その他のオプション
-
--train: トレーニングモードで実行することを指定します(デフォルトではトレーニングモードが使用されます)。 -
--inference: モデルの推論を行うために使用します。このオプションは、トレーニングとは異なり、エージェントの行動をテストするのに適しています。mlagents-learn config/trainer_config.yaml --run-id=my_inference_run --inference -
--base-port: ポート番号のベースを指定するオプションです。複数のエージェントを使用する場合や、複数のトレーニングセッションを同時に実行する場合に役立ちます。mlagents-learn config/trainer_config.yaml --run-id=my_run --base-port=5005
これで、Unity ML-Agentsのトレーニングの実行や再実行についての基本的なbashコマンドとその使い方が理解できると思います。