72°

让强化学习逃离“乏味区域陷阱”,试着加点噪音吧!

全文共5013字,预计学习时长10分钟
在这里插入图片描述
来源:南方公园
如果你去咨询一位投资顾问,肯定首先得问他是如何收费的——是根据投资的回报来收费吗?

“不是的。”他说,“我对你获得的回报预测越精确,你付给我的钱就越多。但我的预测只会在你选择的投资产品上得到验证。”

这听起来似乎有些可疑,你开始咨询其他选择这位投资顾问的人。结果发现,他向客户推荐的都是低回报率、低变化性的政府债券。他甚至告诉所有客户这是最高的平均收益!

于是,人们都相信这位顾问,纷纷买了政府债券。由于政府债券的特殊性,导致他对于回报的估计自然是十分准确的,误差很小。所以人们不得不向他支付高昂的咨询费用。

你是如何看待这位顾问的呢?

事实上,他就是一种“操作型顾问”。

在强化学习中,每个人都在使用这种顾问。

这种例子在强化学习中比比皆是。用于训练强化学习算法的环境出现方差差异时,常常会发生奇怪的事情:价值评估网络往往更偏好低方差区域而忽视奖励,使得它们成为操作型顾问。

那么该如何解决?先告诉你结论:Q-learning算法受困于“乏味区域陷阱”,而且因为低方差而无法逃出。奖励加噪有助于解决这种问题,但一定要谨慎添加。本文是基于论文“Adaptive Symmetric Reward Noising for Reinforcement Learning”进行研究的。

下面,让我们来分析这个问题吧!

操作型顾问
强化学习(RL)主要有两大类算法:Deep Q Networks (DQN) 算法和 Actor Critic算法。二者都使用了顾问函数或“价值评估”函数——一种深度神经网络算法 (DNN) ,用于评估一个状态和/或一个动作的价值。DQN使用Q-network,Actor Critic则使用Critic network。价值评估函数可以学习off-policy,这意味着它们可以通过观看其他人操作学习,即使那人并不十分在行——这大致上是一个不错的决定。它们能够从使用那些已经废止的、过去的策略所收集的经验中学到东西。

然而,这里有一个陷阱:顾问根据准确性来“获得酬劳”:就像用于优化网络的损失函数是基于网络的预测误差。而且网络的运行也是通过其选择的动作来检验的:策略将按照网络的最佳建议行事,这将成为未来唯一的经验来源。

现在,很多人都在抱怨强化学习并不管用,深化也没有什么帮助。确实是这样。强化学习算法的训练非常不稳固:它严重依赖于网络和参数的初始化,所以必须要不断重复同样的实验,每一次初始化的方式都不同。算法不断改进,然后又回归。这令人困惑,因为回归时,损失函数不断显示性能已改进。在这过程中,可以选择最佳的临时网络并结束,但无法通过强化学习来进一步改进结果。

所以,你只是选错了顾问,或者说至少选错了支付方式。他选择了低回报的行动,并且告诉你其他的选择会更糟糕,因为其推荐的行动的回报是十分易于预测的,因此他的预测将非常精准。你永远不会发现他在操纵你,因为你只检验他的选择。

首先来证明这些损失缺口确实存在。以一个简单的游戏为例:两台老虎机(在强化学习中被称为“多臂老虎机”),右边的机器会给一个奖励,但是方差很高,而左边的机器坏了,所以没有奖励也没有方差。我们称之为“断臂老虎机”。
现在要决定在每一轮游戏里使用哪个机器。看起来似乎很简单吧?对于Q-learning来说不是这样的。

请看下图中的两条细线。这两条线显示了当前选择右柄(绿色细线)的智能体的Q-table的更新项,以及当前选择左柄(红色细线)的智能体的Q-table的更新项。在DQN算法中,这更新项为损失函数。从图表中可以看出选择左柄的做得更好,带来的损失也更小。
在这里插入图片描述
每个好的强化学习算法都有其探索方案。这里使用的是epsilon greedy方案,其中epsilon值不断减小。还有肯定的是,通过100%的探索,方案检验到顾问不推荐的东西,并且每一次的损失基本是一致的。但这只是训练的开始。随着epsilon值减小,探索也减少,红色细线不断衰减。如果是在真实的训练中看到这条线,损失在降低,会不会觉得一切都很好?事实上,这是一个从探索的艰辛检验中解放出来的惰性网络。

这是损失中的一个缺口,其中乏味的决策取得了胜利。当通过损失最小化来优化深度网络时,有时它会倾向于选择乏味决策来解决这个问题。但是如果不使用DNN呢?如果是使用过去带有Q-table优良的Q-learning呢?

被称作“乏味区域陷阱”的问题仍然存在……

乏味区域陷阱

假如你拥有一台自行车,在离家一英里处有人要送你免费的披萨。你有两种选择:第一是放弃骑车过去,得到方差为0,均差也为0的披萨。第二是决定骑车去,然后就会得到方差很高,均值为1的披萨。但是有非常小的概率你可能会发生事故,六个月的时间里都得打着石膏,忍受痛苦,再额外花钱修自行车,而且一口披萨也吃不到。
在这里插入图片描述
来源:Lego Grad Student

通常情况下,这个决定不难做出:在这之前你从未经历过车祸,估计现在发生车祸的几率十分低,因此倾向于拿到披萨的选择。所以你去了那里并且得到了披萨。

但如果你运气不好,只骑了很少的次数就遇到车祸了呢?那么你对于事故发生几率的估计会比真实的可能性要高得多。从骑车去拿免费披萨中获得的预计平均收益将成为负数,所以你决定待在家里。

这里有一个陷阱:如果再也不骑车,那就永远不会改变对于骑车的看法。你将始终相信骑车会带来负的平均收益,而待在家的经历又会验证对于待在家所带来的平均收益的看法,最终不会发生任何改变。

为什么无论如何都应该出门呢?因为必定会发生辅助性误差。例如,你待在家里,一个架子砸到了头上,又一次遭受了痛苦。而这次不能怪罪任何人,只能怨自己。因此对于待在家的评价也成为负面的了。如果待在家的评价要低于离开家的评价,那你就又会出门去拿披萨。

注意这里并不涉及到优化:Q-table有一个状态——饥饿状态,以及两个动作——去拿披萨或不去拿披萨。对于均值的衡量直接来自于奖励,你无法改变其他事物,但最终却饥肠辘辘困于家中,直到架子把你砸伤,你又选择出门。

上面的断臂老虎机可以模拟出来这个现象,但现在可以尝试通过Q-learning来解决这个问题。

请看这项任务中训练的10个智能体:
在这里插入图片描述
可以看到,所有的智能体都在某一时刻达到获得零奖励的位置,这意味着它们选择拉动失灵的手柄。想象一下,它们站成一排拉下坏掉的机器手柄,完全无视右边那台亮着灯还在运作的机器。它们看起来是不是很愚蠢?但更好笑的是选择它们当顾问的人。

注意:为了加快速度,我们选择了0.1的高学习速度,所以使得通常在几百万次迭代后才发生的事能够更快出现。

现在,以100个智能体为例,看看有多少选择了左边坏掉的机器。红线为以上智能体的选择情况:在这里插入图片描述
虽然多花了一些时间,但它们最终还是都选择了左边的手柄作为最优选项。

为了搞清楚这一切,我们查看其中一个智能体的内部参数——Q-table中Q_left和Q_right的值。解除所有探索以查看实际情况,并将参数初始化为最优,可以得到一个完成良好训练的智能体,至少在开始是这样。右边手柄的方差和先前一样高。而这次我们给了左边手柄一点方差,所以这是一个常规的带有不同方差的双臂老虎机问题:在这里插入图片描述
右边的手柄有较高的方差,所以Q_right也有较高的方差,但因为与过去的奖励相加,所以要低得多。由于一些集中的负向奖励,所以Q_right在episode40时比Q_left要低。

从这时起,智能体就只选择左边的手柄,也因此进入了“乏味区域陷阱”。现在,Q_right因为缺少例子不能变动。Q_left也因为低方差几乎不变。所以,这就是为什么被称之为陷阱的原因。

在episode320时,出现了辅助性误差。Q_left变得比Q_right更低。这时走出了陷阱,开始扳下右柄,对于Q_right的评价不断升高。

是什么方差差异导致了这个问题?看看下方的等级图,其中σ_l 和 σ_r取不同值,显示50个智能体在10000个episodes后,有多少选择了右边的手柄:
在这里插入图片描述
右下角有一块显示所有智能体都失败的深色区域,这是大的方差差异导致的。还有一块在中间的区域,由于方差差异较小,智能体在陷阱内外移动。只有当方差差异较低时,Q_learning才有效。更低的学习速度会使得深色区域向右边移,但更低的学习速度会使得训练过程十分缓慢。

奖励加噪

要解决这个问题,方案来自一个关于人类认知能力的实验。一些科学家进行了一项名为“火星农业”的实验,这个实验和双臂老虎机一样,但每个动作都移动两台机器的均值。他们发现在奖励中添加一些噪音反而可以帮助人们“排除简单的假设”,并且鼓励人们“增加抽样”,这事实上有助于获得更多的奖励!

多臂老虎机也可以使用同样的方法。在奖励中添加对称的噪音,使其不会影响奖励的均值。

但如果在所有的奖励中添加等量的噪音,那还是会有偏向左边机器的损失缺口。增强其适应性意味着只在低方差的行动中添加噪音。

这么做的话就可以得到之前图表中的粗线:在这里插入图片描述
这张图表显示了在所有奖励中添加了许多噪音,但现在两台机器都有大致相同量的噪音。

这就是ASRN(适应性对称奖励加噪)所实现的:它估计哪些状态/行动有低方差,并主要向它们添加噪音。它是如何估计的呢?是利用Q_table的修正。修正得越多,奖励得就越多,也就得到更少的噪音。

当然,ASRN有其自身的训练周期,所以上述例子中,在1000个episodes后才发生改变。

在上述断臂老虎机中检验ASRN时,可以发现ASRN帮助智能体走出乏味区域陷阱。下面是例中的10个智能体:
在这里插入图片描述
其中有一些智能体进入了乏味区域陷阱,但利用添加的噪音成功逃离了出来。

噪音在驾驶中的应用

在见识了噪音在老虎机中发挥作用后,如果将其运用在实际生活中又会怎么样呢?

驾驶就是一个十分合适的例子。就像上述的披萨一样,有一种策略会带来低奖励和低方差,比方说“向左开直到撞车为止”。还有另一个实际驾驶的策略将会给带来高均值的奖励,因为“达到目的”拿到了披萨,但它有着高方差——在路途中有诸多危险。我们使用AirSim Neighborhood模拟驾驶训练了一个智能体。这是一个很棒的现实驾驶模拟器:在这里插入图片描述
这里已经运用了一个DQN智能体。所以剩下要做的就是对比插入ASRN(绿色)后和没有插入ASRN(红色),以及添加统一奖励噪音(蓝绿色)的驾驶时间均值:在这里插入图片描述
是不是变得好多了?

它并不是一个好的驾驶员,但鉴于它只训练了2750轮游戏,已经算是很大的成就了。

总而言之:方差差异会使强化学习产生问题。有些是全局性的,比如乏味区域陷阱,还有一些是针对深度强化学习(DRL)的,比如操作型顾问。奖励加噪可以带来一些改善,特别是当添加的噪音是对称以及适应于实际动作方差时。我们探索了Q-learning和DQN,但它很有可能也适用于Actor Critic和其他算法。

奖励加噪显然不是一个完整的解决方案。许多复杂的探索要求与其他强化学习技巧(如剪裁等)并行完成。操作型顾问和乏味区域陷阱提出的问题不比其解决的问题要少。但在计划强化学习的策略时,记住这些问题是十分重要的。更重要的是要思考:在这环境中有方差差异吗?它们将如何对所选择的算法造成影响?而这也许将会帮助我们稳固强化学习。
在这里插入图片描述
留言 点赞 关注
我们一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”
在这里插入图片描述
添加小编微信:dxsxbb
即可进微信交流群

本文由【读芯术】发布于开源中国,原文链接:https://my.oschina.net/u/4161973/blog/3073831

全部评论: 0

    我有话说: