深度强化学习(Deep reinforcement learning)在许多任务中都能获得成功。标准深度强化学习算法的目标是掌握一种解决给定任务的单一方法。因此,训练对环境中的随机性、策略的初始化和算法的实现都很敏感。图1展示了这一现象,它显示了两种优化回报函数(reward function)的策略,这些策略鼓励向前运动:虽然两种策略都趋向于一种高绩效的步态,但它们的步态却截然不同。
图1:训练模拟的行走机器人。图出处:Patrick Coady和Patrick Coady(OpenAI Gym)
为什么只发现单一的解决方案是不可取的呢? 因为只知道一种行为方式会使agent(指能自主活动的软件或者硬件实体)容易受到现实中常见的环境变化的影响。例如,想让一个机器人(图2)在一个简单的迷宫中导航到它的目标(蓝色X)。在训练时间(图2a)中,有两段通向目标的通道。该agent可能会通过上面的通道来解决这个问题,因为它看起来稍短一些。但是,如果我们通过阻塞上面的通道来改变环境(图2b),那么agent的解决方案就变得不可行的了。
由于在学习过程中,agent完全专注于上面的通道从而忽视了下面的通道。因此,要适应图2b中的新情况,需要agent重新从头开始重新学习整个任务。
2a
2b
图2:一个机器人在迷宫中导航
我们定义Q函数Q(s,a),作为一种状态s下的期望累积回报。让我们再次看一下图2a中这个机器人。当机器人处于初始状态时,Q函数可能看起来像图3a(灰色曲线)中描述的那样,有两种截然不同的模式。传统的强化学习方法是指定一个单向的策略分布,以最大Q值为中心,并扩展到邻近的行动,以提供探测(红色分布)的噪声。由于探测偏向上面的通道,所以agent在那里改良了策略,并且完全忽略了下面的通道。
3a
3b
图3:一个多峰的(multimodal)Q函数
在高层次上,一个明显的解决方案是,确保agent对所有有希望的状态进行探测,同时优先考虑更有希望的状态。形式化这个想法的一种方法是直接用指数化的Q值来定义策略(图3b,绿色的分布):
这个密度有一种“玻尔兹曼分布”形式,在这里,Q函数作为负能量,它为所有的行动分配了一个非零的可能性。因此,agent将会意识到所有引导解决任务的行动,这些行动可以帮助agent适应不断变化的情况,其中一些解决方案可能会变得不可行。但是,事实上,我们可以证明通过能量形式定义的策略是最大熵强化学习目标的最优方案。
这仅仅是通过策略的熵来增加传统的强化学习目标(Ziebart 2010)。
学习这种最大熵模型的概念在统计模型中有它的起源,其目标是找到具有最高熵的概率分布,同时还能满足观测到的统计数据。例如,如果分布在欧氏空间中,观察的统计量是均值和协方差,那么最大熵分布是一个高斯分布,对应均值和协方差。在实践中,我们更喜欢最大熵模型,因为它们在与观测到的信息相匹配时,对未知量的估计最少。
其中
柔性贝尔曼方程可以被证明为熵增回报函数的最佳Q函数(例,Ziebart 2010)。但是,请注意与传统的贝尔曼方程的相似之处,它使用的是Q函数的硬性最大值,而不是柔性最大值。就像硬性的版本一样,柔性贝尔曼方程式是一个收缩,它在动作空间中可以用动态编程或无模型的时序差分学习方式来解决问题(例,Ziebart, 2008; Rawlik, 2012; Fox, 2016)。
然而,在连续域中,有两个主要的挑战。首先,精确的动态编程是不可行的,因为柔性贝尔曼的等式方程需要对每个状态和行为进行控制,并且softmax涉及到整个行动空间的集成。其次,最优策略是由难以处理的基于能源的分配所决定的。为了解决第一个挑战,我们可以使用具有表达能力的神经网络函数近似者,可以用随机梯度下降法对采样状态和动作进行训练,然后有效地推广到新的状态动作元组。为了解决第二个挑战,我们可以采用近似的推理技术,比如Markov chain Monte Carlo,在之前的基于能源的策略(Heess,2012)中已经讨论过。为了加速推理,我们使用了摊销的Stein变分梯度下降法(Wang and Liu, 2016)训练一个推论网络来生成近似样本。该算法被称为“柔性Q学习(soft Q-learning)”,结合了深度Q学习和摊销的Stein变分梯度下降法。
图4:接受柔性Q学习训练的策略可以在训练过程中探测这两个通道
5a
5b
图5:在新的环境中,最大熵预训练使agent能够更快地学习。与其他目标任务相同的预先训练过的策略的视频:https://www.youtube.com/watch?v=7Nm1N6sUoVs&feature=youtu.be
图6:将两个技能合并成一个新的技能
由于最大熵公式鼓励agent尝试所有可能的解决方案,所以这些agent会去探索很大一部分的状态空间。因此,它们学会了在各种情况下采取行动,并更有力地应对环境中的干扰。为了说明这一点,我们训练了一个Sawyer机器人,通过指定一个目标末端执行器的姿势,把乐高积木堆在一起。图7显示了训练期间的一些快照。
图7:用柔性Q学习来堆叠乐高积木的训练。图出处:Aurick Zhou
图8:经过训练的策略对干扰有鲁棒性