你如何将恐惧编程到神经网络中?

人工智能 神经网络 机器学习 强化学习
2021-10-21 00:04:53

如果你曾经被蜘蛛攻击过,很可能你再也不会靠近蜘蛛了。

在神经网络模型中,对蜘蛛有不好的体验会稍微降低你靠近蜘蛛的概率,具体取决于学习率。情况不妙。

您如何将恐惧编程到神经网络中,这样您就不需要数百个被蜘蛛咬伤的例子来忽略蜘蛛(而且它不仅会降低您选择去的概率靠近蜘蛛)?

4个回答

为此,您可以采取很多方法。在动物身上创建一个真实的模拟恐惧的生物可能是可能的,但是真正动物的恐惧反应涉及很多,这不适用于现在可用的更简单的人工智能机器人。例如,进入恐惧状态的动物通常会使用激素来发出全身变化的信号,有利于资源消耗和冒险(“战斗或逃跑”)。

在基本的强化学习中,神经网络不需要直接决定开启“恐惧模式”。相反,您可以利用代理和学习算法中的一些设计来帮助从罕见但重要的事件中学习。这里有一些想法:

  • 体验重播。如果您正在使用 DQN 或类似的东西,您可能已经在 Pacman 场景中执行此操作。存储导致大量正或负奖励的状态转换和奖励,并从中反复学习应该可以消除您的担忧

  • 优先扫地。您可以使用预测奖励和实际奖励之间的较大差异来将回放记忆中的采样偏向于重要事件以及与它们密切相关的事件。

  • 规划。使用预测模型 - 可能基于采样转换(您可以为此重新使用经验重放内存),或者可能是经过训练的状态转换预测网络 - 然后您可以通过模拟提前查看多个步骤。RL 和前瞻规划之间也有很强的关系,它们是非常相似的算法。不同之处在于正在考虑哪些状态和动作,以及它们是被模拟的还是被体验的。经验回放模糊了这里的界限——它可以被定义为从记忆中学习,或者改进对计划的预测。计划通过优化决策来帮助您优化决策,而无需尽可能多地重复经验——计划和学习的结合比单独的任何一个都强大得多。

  • 更智能的探索性动作选择。Epsilon-greedy,您要么采取贪婪行动,要么采取完全随机的行动,完全忽略了您可能已经了解了多少替代行动及其相对优点。您可以将诸如 Upper Confidence Bound 之类的东西与基于值的代理一起使用。

  • 在确定性的世界中,增加学习和规划的批次大小,因为您可以相信,一旦学习了转换,您就会了解它的一切。

您将需要在每种环境中进行试验。您可以让学习代理在探索低奖励区域附近时更加保守。但是,如果环境是为了获得最佳奖励而必须冒险(这在游戏中通常是这种情况),那么就学习时间而言,拥有一个“胆小的”代理可能不是最佳的。例如,在您的吃豆人示例中,有时应该避免鬼魂,有时应该追逐它们。如果代理最初学会了强烈的厌恶,那么可能需要很长时间才能克服这一点并学会在吃完能量后追逐它们。

对于您的蜘蛛示例,作为实验的构造函数,您知道每次咬都是不好的,并且代理必须尽可能避免它。对于大多数 RL 算法来说,除了通过经验获得外,没有这样的知识。一个 MDP 世界模型不需要匹配常识,它可能是蜘蛛咬伤在 90% 的时间里是坏的(-10 奖励),在 10% 的时间里是好的(+1000 奖励)。代理人只有被多次咬伤才能发现这一点。. . RL 通常不会从任何系统开始对这类事情做出假设,而且不可能对所有可能的 MDP 提出一般规则。相反,对于基本的 RL 系统,您可以考虑修改超参数或关注上面建议的关键事件。在基本的 RL 系统之外,复制其他东西可能会有好处,

我认为有两种方法可以实现这一点:1)明确地将恐惧编程为某些逻辑表达式中的约束或参数,或者 2)利用大量训练数据来教授恐惧。

想想一个基本的吃豆人游戏——吃豆人是害怕鬼还是不害怕鬼很难说,但它们是鬼,吃豆人会避开它们,所以我认为我们可以用这个作为“恐惧”的基本例子是安全的。因为,在这个游戏中,恐惧 = 回避,你可以在逻辑上将回避编程为某种距离。我用 Pacman 强化学习试过这个。我尝试将与鬼魂的距离设置为 5 个方格,只要 Pacman 在 5 个方格内看到鬼魂,他就会朝不同的方向移动。我发现虽然吃豆人会尽量避开鬼魂,但他不知道策略(或有智慧)。吃豆人会简单地远离鬼魂,直到他被困住。

我的观点是,您可以对网络进行编程以避免蜘蛛不被咬,但是如果没有训练,您将只是创建一个基本参数,如果有 100 只超级攻击性蜘蛛向您袭来,可能会导致问题!更好的方法是使用一些基本逻辑来避免蜘蛛,然后训练网络获得奖励,从而避免更好的蜘蛛。

现在,有很多恐惧的情况,所以这个 Pacman 的例子不一定适用于所有人......只是想对我在 Pacman 中通过强化学习教授恐惧的经验提供一些见解。

这种恐惧是一种非理性的反应(对小风险的反应是大的负面激励)。模拟恐惧需要模拟与例如蜘蛛相关的“严重”因素,以便发生通常不成比例的反应。“严重”因素可以以许多其他形式表现出来,以放大对以前不愉快但不是特别危险的经历的反应。这种恐惧也可能受到传闻的启发(想想耸人听闻的新闻故事引起的歇斯底里)。NN 通常只会对最低风险做出最低限度的反应。

我建议让代理根据该事件发生的后果的严重性来衡量其从给定事件中的学习。例如。让它开发一个威胁模型,就像那些通常在信息安全领域起草的那样。高风险但低概率是可以考虑和判断的。

试图直接模仿人类的恐惧是愚蠢的,如果你成功得太厉害,你最终可能会得到有恐惧症的 AI。