【问题标题】:Decisions with Mlagent in Unity在 Unity 中使用 Mlagent 进行决策
【发布时间】:2020-05-05 20:16:23
【问题描述】:

我正在学习使用 Unity 和 Mlagents。我准备了一个培训环境,在该环境中,我的代理人必须按材料类型(金属、塑料等)回收物品。

例如: 当智能体碰撞一个塑料瓶并检测到它有一个塑料标签时,如果它与人类(人类标签)碰撞,物体会物理移动到一个塑料和金属的空间(并获得 +1 奖励)受到-2的惩罚。

到目前为止,一切运行良好,经过训练(强化学习)的代理正确地实现了他的目的。

问题是内部代码仅包含以下行: 如果代理与人类发生碰撞,他将受到惩罚 (-2) 如果代理撞到墙,他会受到惩罚(-1) 如果代理与塑料物体碰撞,物体将移动到塑料的特定空间(+1) 如果代理与金属物体发生碰撞,物体将移动到金属的特定空间(+1)

问题: 你怎么能给智能体一个“机会”,让他在错误分类对象时犯错误,然后再从中学习呢? 目前它只是按照“如果”行事

我认为可能使用一些随机参数,当代理与对象碰撞时,它会随机将其分配给一个回收点,如果这导致不正确的回收点,它将受到惩罚,但是......代理可以学习吗从那?这意味着智能体在学习和训练期间可以“控制”随机参数。

如果有任何想法或建议,我将不胜感激。

【问题讨论】:

标签: c# unity3d machine-learning ml-agent


【解决方案1】:

拥有一个训练有素的代理会导致它基本上只遵循 if 语句。一个可能的解决方案是尽早中断其训练,并使用该模型。这样它就不会是完美的,但它会对做什么有一个大致的了解。

【讨论】:

    猜你喜欢
    • 2011-09-20
    • 2016-01-24
    • 1970-01-01
    • 2018-06-13
    • 2020-04-07
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    相关资源
    最近更新 更多