【发布时间】:2020-05-05 20:16:23
【问题描述】:
我正在学习使用 Unity 和 Mlagents。我准备了一个培训环境,在该环境中,我的代理人必须按材料类型(金属、塑料等)回收物品。
例如: 当智能体碰撞一个塑料瓶并检测到它有一个塑料标签时,如果它与人类(人类标签)碰撞,物体会物理移动到一个塑料和金属的空间(并获得 +1 奖励)受到-2的惩罚。
到目前为止,一切运行良好,经过训练(强化学习)的代理正确地实现了他的目的。
问题是内部代码仅包含以下行: 如果代理与人类发生碰撞,他将受到惩罚 (-2) 如果代理撞到墙,他会受到惩罚(-1) 如果代理与塑料物体碰撞,物体将移动到塑料的特定空间(+1) 如果代理与金属物体发生碰撞,物体将移动到金属的特定空间(+1)
问题: 你怎么能给智能体一个“机会”,让他在错误分类对象时犯错误,然后再从中学习呢? 目前它只是按照“如果”行事
我认为可能使用一些随机参数,当代理与对象碰撞时,它会随机将其分配给一个回收点,如果这导致不正确的回收点,它将受到惩罚,但是......代理可以学习吗从那?这意味着智能体在学习和训练期间可以“控制”随机参数。
如果有任何想法或建议,我将不胜感激。
【问题讨论】:
-
这个问题是关于c#,而不是unityscript。
标签: c# unity3d machine-learning ml-agent