在NetLogo中实现强化学习(在多代理模型中学习)
我正在考虑在我的模型中为不同类型的代理实施一种学习策略。老实说,我仍然不知道我应该先问什么样的问题,或者从哪里开始 我有两种类型的代理人,我希望他们通过经验来学习,他们有一系列的行动,根据可能发生的具体情况,每种行动都有不同的回报。 我不熟悉强化学习方法,因此欢迎对我应该问自己的问题提出任何建议:) 下面是我如何进一步阐述我的问题:在NetLogo中实现强化学习(在多代理模型中学习),netlogo,reinforcement-learning,agent-based-modeling,q-learning,Netlogo,Reinforcement Learning,Agent Based Modeling,Q Learning,我正在考虑在我的模型中为不同类型的代理实施一种学习策略。老实说,我仍然不知道我应该先问什么样的问题,或者从哪里开始 我有两种类型的代理人,我希望他们通过经验来学习,他们有一系列的行动,根据可能发生的具体情况,每种行动都有不同的回报。 我不熟悉强化学习方法,因此欢迎对我应该问自己的问题提出任何建议:) 下面是我如何进一步阐述我的问题: 代理有一个生命周期,他们跟踪一些对他们来说很重要的事情,这些指标对于不同的代理是不同的,例如,一个代理想要增加a,另一个代理想要B多于a 状态是代理生命周期中它们所
当前补丁X内部变量值X存在的其他代理
。在最简单的情况下,代理可以观察构成其状态的所有变量。然而,有些算法并不需要这样做。代理应始终处于某个状态,即使该状态没有奖励值
现在,关于未知奖励。事实上完全没关系。奖励可以是一种奖励。在这种情况下,应用标准RL算法的一个简单方法是在决策时使用变量的大小。如果分布未知,那么该算法可以只使用迄今为止观察到的奖励的平均值
或者,您可以在状态定义中包含决定奖励的变量。这样,如果奖励发生变化,那么它实际上处于不同的状态。例如,假设一个机器人在建筑物的顶部。它需要到达它前面的楼顶。如果它只是向前移动,它就会掉到地上。因此,该州的回报非常低。然而,如果它首先放置一块木板,从一个建筑到另一个建筑,然后向前移动,奖励就会改变。为了表示这一点,我们可以将板放置到位
作为变量,以便将板放置到位实际上会改变机器人的当前状态以及向前移动时的状态。因此,奖励本身没有改变;它只是处于一种不同的状态
希望这有帮助
2018年2月7日更新:最近的一次投票提醒我这个问题的存在。在被问到这一问题后的几年里,我实际上更深入地研究了NetLogo中的RL。特别是,我为NetLogo做了一个标记,主要是为了更容易地将机器学习算法集成到模型中。在模型运行时,扩展训练了一组使用深度Q-学习的代理。非常感谢,因为我说我对状态没有一个明确的定义,我的模拟与社会互惠交换有关,如shari