浏览代码

Improvements to ODD Feature Page

- Cleaned up text
- Renamed file
- Updated ML-Agents-Overview to point to new file
- Updated figure to showcase the new “On Demand Decisions” checkbox text
/develop-generalizationTraining-TrainerController
Marwan Mattar 6 年前
当前提交
4de12c84
共有 4 个文件被更改,包括 205 次插入88 次删除
  1. 2
      docs/ML-Agents-Overview.md
  2. 215
      docs/images/ml-agents-ODD.png
  3. 39
      docs/Feature-On-Demand-Decisions.md
  4. 37
      docs/Feature-On-Demand-Decision.md

2
docs/ML-Agents-Overview.md


must react to events or games where agents can take actions of variable
duration. Switching between decision taking at every step and
on-demand-decision is one button click away. You can learn more about the
on-demand-decision feature [here](Feature-On-Demand-Decision.md).
on-demand-decision feature [here](Feature-On-Demand-Decisions.md).
* **Memory-enhanced Agents** - In some scenarios, agents must learn to
remember the past in order to take the

215
docs/images/ml-agents-ODD.png

之前 之后
宽度: 816  |  高度: 316  |  大小: 48 KiB

39
docs/Feature-On-Demand-Decisions.md


# On Demand Decision Making
## Description
On demand decision making allows agents to request decisions from their
brains only when needed instead of receiving decisions at a fixed
frequency. This is useful when the agents commit to an action for a
variable number of steps or when the agents cannot make decisions
at the same time. This typically the case for turn based games, games
where agents must react to events or games where agents can take
actions of variable duration.
## How to use
To enable or disable on demand decision making, use the checkbox called
`On Demand Decisions` in the Agent Inspector.
<p align="center">
<img src="images/ml-agents-ODD.png"
alt="On Demand Decision"
width="500" border="10" />
</p>
* If `On Demand Decisions` is not checked, the Agent will request a new
decision every `Decision Frequency` steps and
perform an action every step. In the example above,
`CollectObservations()` will be called every 5 steps and
`AgentAction()` will be called at every step. This means that the
Agent will reuse the decision the Brain has given it.
* If `On Demand Decisions` is checked, the Agent controls when to receive
decisions and actions. To do so, the Agent may leverage one or two methods:
* `RequestDecision()` Signals that the Agent is requesting a decision.
This causes the Agent to collect its observations and ask the Brain for a
decision at the next step of the simulation. Note that when an Agent
requests a decision, it also request an action.
This is to ensure that all decisions lead to an action during training.
* `RequestAction()` Signals that the Agent is requesting an action. The
action provided to the Agent in this case is the same action that was
provided the last time it requested a decision.

37
docs/Feature-On-Demand-Decision.md


# On Demand Decision Making
## Description
On demand decision making allows agents to request decisions from their
brains only when needed instead of requesting decisions at a fixed
frequency. This is useful when the agents commit to an action for a
variable number of steps or when the agents cannot make decisions
at the same time. This typically the case for turn based games, games
where agents must react to events or games where agents can take
actions of variable duration.
## How to use
In the agent inspector, there is a checkbox called
`On Demand Decision`
![Brain Inspector](images/ml-agents-ODD.png)
* If `On Demand Decision` is not checked, all the agents will
request a new decision every `Decision Frequency` steps and
perform an action every step. In the example above,
`CollectObservations()` will be called every 5 steps and
`AgentAct()` will be called at every step. This means that the
agent will reuse the decision the brain has given it.
* If `On Demand Decision` is checked, you are in charge of telling
the agent when to request a decision and when to request an action.
To do so, call the following methods on your agent component.
* `RequestDecision()` Call this method to signal the agent that it
must collect its observations and ask the brain for a decision at
the next step of the simulation. Note that when an agent requests
a decision, it will also request an action automatically
(This is to ensure that all decisions lead to an action during training)
* `RequestAction()` Call this method to signal the agent that
it must reuse its previous action at the next step of the
simulation. The Agent will not ask the brain for a new decision,
it will just call `AgentAct()` with the same action.
正在加载...
取消
保存