1

在深度强化学习中,使用连续动作空间,为什么在代理执行之前钳制动作似乎是一种常见的做法?

例子:

OpenAI Gym 山地车 https://github.com/openai/gym/blob/master/gym/envs/classic_control/continuous_mountain_car.py#L57

Unity 3DBall https://github.com/Unity-Technologies/ml-agents/blob/master/unity-environment/Assets/ML-Agents/Examples/3DBall/Scripts/Ball3DAgent.cs#L29

这样做不会丢失信息吗?就像模型为速度(移动)输出 +10,然后将其限制为 +1,动作本身的行为相当离散(仅考虑其执行)。对于细粒度的运动,将输出乘以 0.1 之类的东西不是更有意义吗?

4

1 回答 1

0

这可能只是为了强制限制代理可以做什么。也许代理想要执行一个将速度提高 1,000,000 的动作。但是,如果代理是一辆自动驾驶汽车,其引擎较弱,最多可以加速 1 个单位,我们不关心代理是否会假设加速更多单位。汽车的发动机功能有限。

于 2018-01-01T10:56:19.033 回答