Unity ML-Agents Release 4 の変更点
「Unity ML-Agents Release 4」がリリースされました。「カリキュラム学習」と「環境パラメータのランダム化」の「訓練設定ファイル」の書式が変更になりました。
1. パッケージのバージョン
「Unity ML-Agents Release 4」のパッケージのバージョンは、次のとおり。
2. 主な改善
◎ ml-agents (Python)
・「環境パラメータのランダム化」がリファクタリングされ、「カリキュラム学習」と統合されました。これにより、エピソードごとに新しいパラメータをサンプリングして、堅牢性を向上させることができます。
「resampling-interval」パラメータが削除され、「訓練設定ファイル」の書式が変更されました。
・「カリキュラム学習」がリファクタリングされ、ビヘイビア単位ではなく環境パラメータ単位で指定するようになりました。 カリキュラム学習のレッスンでサンプラーを利用することも可能になりました。
3. 重大な変更
◎ ml-agents (Python)
・「訓練設定ファイル」の書式が変更されました。「カリキュラム学習」または「環境パラメータのランダム化」を使用するには、新しいセクション「environment_parameters」を使う必要があります。
この移行に役立つ更新スクリプトを提供しています。 スクリプトの使用状況を確認するには、最新バージョンで「python -m mlagents.trainers.upgrade_config -h」を実行してください。
4. バグ修正と小さな変更
◎ com.unity.ml-agents (C#)
・「SideChannelsManager」が「SideChannelManager」に名前変更しました。古い名前は引き続きサポートしていますが、非推奨です。
・RayPerceptionSensor.Perceive()に、レイでヒットしたGameObjectが追加で格納されるようになりました。
・タグのリストが空の場合、またはリスト内のタグが無効(不明、null、または空の文字列)の場合、RayPerceptionSensorが例外を発生させる問題を修正しました。
・Barracudaの依存関係が1.0.1になりました。
◎ ml-agents-envs (Python)
UnityEnvironmentの使用方法を示す新しいGoogle Colabノートブックを追加しました。
◎ ml-agents (Python)
・訓練設定ファイルのinitialize_fromをnullに設定する時のエラーを修正しました。
・スレッドトレーナーを使用しているときにStatsReporterでまれに発生するクラッシュを修正しました。
◎ Example Environments (C#)
・キーボードでプレイするときのFoodCollector、Soccer、WallJumpの問題を修正しました。
5. 既知の問題点
◎ com.unity.ml-agents (C#)
macOS 10.15で、ML-AgentsパッケージがWebサイトのダウンロードからインストールする場合、ML-Agentsを使用するシーンを実行すると、「ファイルを開くことができない」という問題が発生する場合があります。 回避策には、Unity Package Managerを使用したパッケージのインストール、またはこの記事の指示に従うことが含まれます。
【おまけ】 カリキュラム学習の訓練設定ファイルの変更点
「Release 3」までは「ビヘイビア単位」でカリキュラム学習の環境パラメータを設定しましたが、「Release 4」では「環境パラメータ単位」で設定するようになりました。
【 Release 3 】
:
curriculum:
CurriculumEx:
measure: reward
thresholds:
- 0.7
- 0.9
min_lesson_length: 10
signal_smoothing: true
parameters:
checkpoint_reward:
- 0.3
- 0.0
- 0.0
episode_reward:
- 0.0
- 1.0
- 2.0
step_reward:
- 0.0
- 0.0
- -0.001
【 Release 4 】
:
environment_parameters:
checkpoint_reward: # 環境パラメータの名前
curriculum:
- Lesson0: # レッスンの名前
completion_criteria: # 次のレッスンに進む条件
measure: reward
behavior: CurriculumEx
signal_smoothing: true
min_lesson_length: 10
threshold: 0.7
value: 0.3 # 環境パラメータの値
- Lesson1: # レッスンの名前
completion_criteria: # 次のレッスンに進む条件
measure: reward
behavior: CurriculumEx
signal_smoothing: true
min_lesson_length: 10
threshold: 0.9
value: 0.0 # 環境パラメータの値
- Lesson2: # レッスンの名前
value: 0.0
episode_reward: # 環境パラメータの名前
curriculum:
- Lesson0: # レッスンの名前
completion_criteria: # 次のレッスンに進む条件
measure: reward
behavior: CurriculumEx
signal_smoothing: true
min_lesson_length: 10
threshold: 0.7
value: 0.0 # 環境パラメータの値
- Lesson1: # レッスンの名前
completion_criteria: # 次のレッスンに進む条件
measure: reward
behavior: CurriculumEx
signal_smoothing: true
min_lesson_length: 10
threshold: 0.9
value: 1.0 # 環境パラメータの値
- Lesson2: # レッスンの名前
value: 2.0
step_reward: # 環境パラメータの名前
curriculum:
- Lesson0: # レッスンの名前
completion_criteria: # 次のレッスンに進む条件
measure: reward
behavior: CurriculumEx
signal_smoothing: true
min_lesson_length: 10
threshold: 0.7
value: 0.0 # 環境パラメータの値
- Lesson1: # レッスンの名前
completion_criteria: # 次のレッスンに進む条件
measure: reward
behavior: CurriculumEx
signal_smoothing: true
min_lesson_length: 10
threshold: 0.9
value: 0.0 # 環境パラメータの値
- Lesson2: # レッスンの名前
value: -0.001 # 環境パラメータの値
◎ environment_parameters:
「カリキュラム学習」を有効にするには、訓練設定ファイルに「environment_parameters:」を追加します。「environment_parameters:」の子に「環境パラメータの名前:」を追加します。
今回は「環境パラメータの名前:」として、「checkpoint_reward」「episode_reward」「step_reward」を追加しています。
environment_parameters:
checkpoint_reward: # 環境パラメータの名前
:
episode_reward: # 環境パラメータの名前
:
step_reward: # 環境パラメータの名前
:
◎ curriculum:
「環境パラメータ名:」の子に「curriculum:」を追加します。「environment_parameters:」の子に「レッスンの名前:」を追加します。「レッスンの名前:」の子には、「completion_criteria:」と「value:」を追加します。
今回は「レッスンの名前:」として、「Lesson0」「Lesson1」「Lesson2」を追加しています。
environment_parameters:
checkpoint_reward: # 環境パラメータの名前
curriculum:
- Lesson0: # レッスンの名前
completion_criteria:
measure: reward
behavior: CurriculumEx
signal_smoothing: true
min_lesson_length: 10
threshold: 0.7
value: 0.3 # 環境パラメータの値
- Lesson1: # # レッスンの名前
:
- Lesson2: # # レッスンの名前
:
設定項目の意味は、次のとおりです。
「completion_criteria」の子には、以下を設定します。
【おまけ】 環境パラメータのランダム化の訓練設定ファイルの変更点
「Release 3」までは「parameter_randomization」で「環境パラメータのランダム化」を設定しましたが、「Release 4」では「environment_parameters」で設定するようになりました。
【 Release 3 】
:
parameter_randomization:
mass:
sampler_type: uniform
sampler_parameters:
min_value: 0.5
max_value: 10
scale:
sampler_type: uniform
sampler_parameters:
min_value: 0.75
max_value: 3
【 Release 4 】
environment_parameters:
mass:
sampler_type: uniform
sampler_parameters:
min_value: 0.5
max_value: 10
scale:
sampler_type: uniform
sampler_parameters:
min_value: 0.75
max_value: 3
この記事が気に入ったらサポートをしてみませんか?