经验回放在强化学习中的应用
1. 稀疏二元奖励
近年来,强化学习名声大噪,在某些领域取得的成就令人叹为观止,比如击败围棋世界冠军,以及最近在流行的实时策略游戏《星际争霸2》中击败顶级专业玩家。令人印象深刻的成就之一是最新的围棋竞技型智能体——AlphaZero,它从稀疏二元奖励中不断学习,在比赛中非输即赢。大多数情况下,每场游戏中没有中间奖励会令智能体的学习寸步难行,因为智能体可能永远不会取得完全胜利,这意味着将不存在如何提高性能的反馈。显而易见,像围棋和星际争霸2这样的游戏(至少比赛是这样进行的)有一个独特性质——对称型零和游戏,智能体可以利用这些二元奖励来学习。现在不深究这个问题,但可能会在后续的文章中专门讨论AlphaZero背后的算法。
症结在于大多数要解决问题都是非对称型零和博弈,智能体再次陷入无法获得反馈、不能有效学习的困境。这在经典的强化学习问题山顶车案例中可见一斑。在这个问题上,一辆汽车试图到达山顶插旗子的位置,但由于它的加速度比较小,无法径直驶上山顶,它必须在山谷处来回上下坡以获得速度,最终到达目标位置。
只要这辆车还没到达山顶插旗处,它每走一步就会得到-1的奖励值,直到此幕在固定步数后结束。通常使用的一种切实可行的方法是应用领域知识增强奖励密度,这就是所谓的奖励工程或奖励塑造。在山顶车案例中,众所周知,汽车必须加快速度才能攀爬山坡,一个合理的方法是奖励中考虑汽车的速度因素,鼓励它加快速度。如果一丝不苟地设计奖励值,智能体将会加快速度,最终出其不意地到达目标旗帜处,避免原本会获得的一些负奖励。
这种方法的实现并非轻而易举。在某些情况下,我们可能不知道如何塑造奖励来帮助智能体学习;换句话说,必须知道如何解决问题,才能正确塑造奖励。特别是对于有难度的问题而言,领域知识并不总是触手可及。还有一点困扰是,一旦设计出奖励,不再直接针对真正感兴趣的指标进行优化,转而优化希望可以简化学习过程的近似指标。这可能会导致智能体在行动时偏离相对于真实的目标,有时甚至会导致始料不及的行为,可能需要经常微调设计的奖励来提高正确度。
2. 多目标强化学习
强化学习领域许多赫赫有名的成就还涉及一个与众不同的方面,即这些游戏与非常具体的目标息息相关,例如“在Breakout游戏中尽可能多得分”。上述问题中,智能体观察到环境的一个状态,选择一个动作执行并获得奖励。在这种情况下,策略可以表示为:
其中a是接下来要选择的动作,s是当前的状态。
但现实世界中的许多问题并非如此,只有一个必须完成的全局性任务。在许多情况下,我们希望智能体能够实现多个不同的目标,比如拿红球的同时也拿绿立方体。但并不是意味着智能体需要以某种方式立即执行这些目标,而是希望它能够根据请求执行这些任务中的任意一个。 在此情形下,可以将策略表达为:
其中g表示期望目标。本文将目标视为期望智能体到达的状态,这是一个多目标学习问题。如果给多目标问题增加额外的稀疏二元奖励难度,那就真的身陷囹圄了。
在《“后见之明”经验回放》这篇论文中,OpenAI 的研究人员给出了一个诠释上述问题的简单案例。假设有一个由二进制向量(0-1)组成的状态,旨在训练一个可以到达任何给定的二进制目标向量的智能体。可能的动作是每次改变向量中的一个比特位,未达到目标之前,每一步奖励为 -1。显而易见,如果把状态向量值和目标向量值设置得很大,用常规方法解决这个问题将不可企及。随机交换比特位和想方设法艰难获得期望目标向量的概率微乎其微。即使用专门的探索方法(比如在前面文章中提到的方法),也很可能失败。因为对于这些方法来说,每个目标向量涉及的问题大相径庭,导致目标状态空间过大。论文作者证明,利用DQN算法,最大可解向量大小为13,之后成功率急剧下降到零。
3.“后见之明”经验回放——亡羊补牢
离线策略学习
但人类是如何应对这样的问题呢?有时,当我们不能完成某项任务时,会意识到现在所做的事情也许在另一个环境中或对另一项任务是锦上添花。这篇论文(我最喜欢的强化学习论文之一)的作者正是凭借这种直觉来研究他们的方法。
即使最终折戟沉沙, 反思过去执行的动作并从中推断出有用的信息却至关重要。为了转化上述能力,我们将目光聚焦于一种被称为离线策略学习的学习范式。
在强化学习中,智能体尝试学习一个策略,在给定初始状态分布的情况下,该策略将最大化期望累积回报。智能体通过反复试错后与环境交互学习策略,并利用在此过程中收集的数据改进策略。但在某些强化学习算法中,智能体可以从另一个策略收集的数据中学习崭新的策略。另一个策略记录了与环境交互的数据,强化学习算法可以利用这些数据来推断出潜在的更优策略。从此刻起,将智能体正在努力学习的策略简单地称为“策略”,把记录数据的策略称为“探索策略”。探索策略的主要目标是探索更多的状态—动作空间,以便智能体能够从中推断出在不同的状态下应该采取什么样的动作。离线策略学习算法的经典标杆是深度Q网络(DQN,Deep-Q-Network)和深度确定性策略梯度(DDPG,Deep Deterministic policy Gradient),这些算法通过一个探索策略来学习给定数据集的状态-动作对的值。
相比之下,在线策略学习算法必须仅依赖于所学习的同一策略收集的数据,这意味着其无法利用其他策略收集的历史数据,包括它们自己旧版本中的数据(例如应用随机梯度下降法更新到神经网络之前)。在线策略学习算法的典型标杆是多样化的策略梯度方法,如REINFORCE A3C(Asynchronous Advantage Actor Critic)算法。
4.“后见之明”经验回放
在著名的DQN算法中,对每一批用于更新神经网络的训练样本进行去相关处理,利用历史经验缓冲区的数据稳定训练过程。这个缓冲区记录过去的状态、在这些状态下采取的动作、获得的奖励和观察到的下一个状态。若想将其扩展到多目标环境中,必须保存状态之外的目标,让智能体学习状态-目标-动作三元组的价值。
正如我们所见,经验回放缓冲区中的数据可能源自探索策略,这引发了一种有趣的可能性:如果可以通过想象情况截然不同时会发生什么的方式添加虚拟数据,该如何应对呢?实际上,这正是 “后见之明”经验回放 (HER)所做的工作。
HER中,作者提出了下述方法:假设智能体尝试执行从初始状态 S 到达目标状态 G 的一幕,但以失败告终,在该幕结束时最终处于某个状态S’。将轨迹缓存到回放缓冲区:
其中带有下标 k 的 r 表示在该幕的第 k 步收到的奖励,带有下标 k 的 a 表示在该幕的第 k 步执行的动作。HER的思想是设想目标其实一直都是S’,在这个另类的现实中,智能体成功地到达目标,并因此获得正回报。因此,除了缓存之前看到的真实轨迹外,还缓存以下轨迹:
这是设想的一条轨迹,受人类从失败的尝试中学习经验的能力启迪。还应该注意的是,在设想的轨迹中,在这一幕的最后一步获得的奖励现在是到达设想目标获得的正奖励。
通过在回放缓冲区中引入设想的轨迹,可以确保无论策略有多糟糕,智能体总会获得一些值得学习的正奖励。在这个阶段,我们可能会扪心自问,学习实现不感兴趣的目标有何用意?显然,在训练开始时,那些设想的目标只是糟糕地随机初始化策略可以达到的状态,其实“虚有其表”。然而,神经网络函数逼近的“魔力”将确保策略也能达到与以前类似的状态;这就是泛化属性,它是成功进行深度学习的标志。一开始,智能体能够到达初始状态周围相对较小区域中的状态,但它会逐渐扩展状态空间的可到达区域,直到最终学会到达我们真正感兴趣的目标状态。
这一过程与深度学习中另一种常见的学习方式——课程式学习有异曲同工之妙。在课程式学习中,我们希望神经网络学习一些困难内容,但是一旦让它在实际任务上训练,它很可能会失败。我们所能做的就是让神经网络开始对较小的问题实例进行训练,这些问题要容易得多,然后逐渐增加实例的难度,直到模型对拟解决的任务表现良好。课程式学习通常在实践中效果良好,但需要设计者手动设计课程,生成更简单的任务实例。这并非轻而易举,因为有时可能无法生成一个更简单版本的问题,成功地设计课程可能既困难又耗时。
与此相反,HER方法给出了一个非常相似的结果,却不要求更改问题或设计课程。可以将HER方法视为一个隐式的课程式学习过程,在此过程中,总是向智能体提供可以切实解决的问题,逐渐增加这些问题涵盖的范围。
作者在几种机器人操作任务中对HER算法进行了测试,在这些任务中,智能体必须实现不同于初始状态的目标,例如拾取物体或将其滑动到某个目标位置。如果智能体及时完成这些任务,则它将获得奖励;如果任务尚未及时完成,则智能体不会获得奖励。 作者使用DDPG作为基本算法对HER算法进行了测试,结果表明HER算法成功学习到完成这些任务的方法,而其他算法则无法进行学习。
作者还证明,即使是对于真正关心特定目标的任务,只要可以提供其他目标用于训练智能体,HER算法也会提高性能。
HER算法是一种优美简洁的方法,如果掌握此方法,许多强化学习应用领域的难题和重要课题将迎刃而解。
免责声明:本文表达的观点是作者的观点,并不代表IBM的观点。