The docs show an example for only one environment parameter and it’s not obvious how to work with multiple at a time. Are you supposed to set up multiple parameters, each with their own curriculum/lessons?
The goal would be to change more than one parameter at a time in a given lesson.
Yes your assumption is correct, the environment_parameters: section can contain multiple parameters each with their own custom curriculum.
Something like this -
behaviors:
BehaviorY:
# < Same as above >
# Add this section
environment_parameters:
my_environment_parameter:
curriculum:
- name: MyFirstLesson # The '-' is important as this is a list
completion_criteria:
measure: progress
behavior: my_behavior
signal_smoothing: true
min_lesson_length: 100
threshold: 0.2
value: 0.0
- name: MySecondLesson # This is the start of the second lesson
completion_criteria:
measure: progress
behavior: my_behavior
signal_smoothing: true
min_lesson_length: 100
threshold: 0.6
require_reset: true
value:
sampler_type: uniform
sampler_parameters:
min_value: 4.0
max_value: 7.0
- name: MyLastLesson
value: 8.0
second_parameter:
sampler_type: uniform
sampler_parameters:
min_value: 0.5
max_value: 10
third:
curriculum:
- name: Lesson1 # The '-' is important as this is a list
completion_criteria:
measure: progress
behavior: my_behavior
signal_smoothing: true
min_lesson_length: 100
threshold: 0.2
value: 0.0
- name: Lesson2 # This is the start of the second lesson
completion_criteria:
measure: progress
behavior: my_behavior
signal_smoothing: true
min_lesson_length: 100
threshold: 0.6
require_reset: true
value:
sampler_type: uniform
sampler_parameters:
min_value: 4.0
max_value: 7.0
- name: FinalLesson
value: 8.0
How does the “threshold, signal_smoothing, min_lesson_length” work for multiple parameters? Which one gets used if the values are different and Lesson 0 has these duplicated several times (for different parameters) with different values?
All of them get used. Each parameter has its own curriculum that is run independently of other parameters. In my example those values are copy-pasted and are the same but in a real implementation they could be set to a different value that makes the most sense for that particular environment parameter.
Thanks for the clarification. I do agree that the docs could be improved. After reading them I had made the faulty assumptions that the lessons for all the parameters advanced in lockstep. When one parameter advanced to the next lesson then they all would.
Hey there! Thanks for the feedback. If you have a chance, could you fill out the Documentation Feedback form, which can be found at the bottom of every documentation page - both in the core platform docs & in package docs. This allows us to collate all feedback about a specific page in the same place, and act on all of it at once.
Is there documentation for ML-Agents in the official docs yet? When I search all the docs are on the github site. I don’t see a preview link there. What is the best way to submit feedback on those docs. Submit an issue?