快捷搜索:

全新的强化学习算法:柔性致动/评价(soft actor-critic,SAC)

伯克利和谷歌大脑的研究人员近日发表了全新的强化学习算法:柔性致动/评价(soft actor-critic,SAC)。作者表示,作为目前高效的model-free算法,十分适用于真实世界中的机器人任务学习。在这篇文章中,将详细比较SAC与前沿强化学习算法的性能,并利用多个实际任务作为例子来展示最新算法的能力。这一算法还包含完整详细的源码实现供研究者学习和使用。

适用于真实机器人的深度强化学习

真实世界中理想的强化学习算法应该具有什么样的特性呢?与虚拟和实验室环境相比,真实情况将为算法带来一系列挑战。包括通信和数据流连续中断、低延时的推理、为避免设备机械损伤需要尽可能平滑连续的运动等,这些都为算法本身及其实现带来了更多的要求。研究人员通常希望应用在真实世界中的算法具有以下优点:

·样本效率。在真实世界中学习技能是耗时的任务,对于每一个新任务的学习都需要多次试错,学习一个新技能所需的总时间会十分可观,所以良好的样本复杂度是一个优秀算法的先决条件。

·对超参数不敏感。真实世界中研究人员希望避免参数调整,而最大化交叉熵的强化学习提供了一个鲁棒的学习框架来最小化超参数调节的需求。

·Off-policy学习。解耦策略(off-policy)学习意味着可以使用其他任务场景收集的数据来学习,例如在准备新任务时只需要调整参数和奖励函数,而解耦策略则允许复用已经收集好的数据来训练算法。SAC是一个解耦策略(off-policy)和自由模型(model-free)深度强化学习算法。它不仅涵盖了上述优点,同时其样本效率足够在几小时内解决真实世界的机器人学习问题。此外其超参数十分鲁棒,只需要单一的超参数集就可以在不同的模拟环境中获得良好的表现。更为重要的是这一算法的实现还包含了以下特点,为真实世界的机器人学习提供了重要的作用:

·异步采样;需要足够快的推理来最小化控制环中的延时,同时也希望在执行过程中进行训练。所以在实际情况中数据采样和实际训练应该由独立的线程或进程运行;

· 停止/假设训练;真实硬件中将会面临一系列错误情况,需要考虑数据流连续中断的情况;

·运动平滑.典型的高斯探索(exploration)将会导致致动器产生抖动,这会对硬件造成不利的影响甚至损伤驱动器和机械结构,所以在实际中研究人员使用了探索的时域相关性来有效缓解这一问题。

SAC

SAC基于最大熵强化学习框架,其中的熵增目标如下所示:

全新的强化学习算法:柔性致动/评价(soft actor-critic,SAC)

其中s 和a 是状态和行动,期望则包含了策略和来自真实系统的动力学性能。换句话说,优化策略不仅最大化期望(第一项),同时还最大化期望的熵(第二项)。其中的参数α平衡了这两项对于结果的影响,当α为0时上式就退化为传统的预期回报目标函数。研究人员认为可以将上述目标函数视为熵约束的最大化预期回报,通过自动学习α参数来代替超参数。我们可以从多个角度解释这一目标函数。既可以将熵看作是策略的先验,也可以将其视为正则项,同时也可以看作是探索(最大化熵)和利用(最大化回报)间的平衡。SAC通过神经网络参数化高斯策略和Q函数来最大化这一目标函数,并利用近似动力学编程来进行优化。基于这一目标函数研究人员推导出了更好的强化学习算法,使其性能更加稳定,并且达到足够高的样本效率来应用到真实机器人中。

模拟基准

为了评价新型算法的表现,研究人员首先在仿真环境中利用标准的基准任务来对SAC进行了评测,并与深度确定性策略梯度算法(DDPG),孪生延迟深度确定性策略梯度算法(TD3),邻近策略优化(PPO)等算法进行了比较。几种算法在三种基本的模拟移动任务上进行了性能比较,分别是豹,蚂蚁和人形。

全新的强化学习算法:柔性致动/评价(soft actor-critic,SAC)

三种移动仿真任务

下图描述了几个算法在三个不同任务中的表现,其中实线表示算法的平均回报而阴影则描述了算法表现的范围,包含了最好和最坏的表现。SAC算法在下图中由蓝色表示,可以看到它的效果最好。更重要的是在最坏的情况下,它还可以保持较好的表现(这意味着在某些极端糟糕的情况下还能保持鲁棒性)。

全新的强化学习算法:柔性致动/评价(soft actor-critic,SAC)

真实世界中的深度强化学习

您可能还会对下面的文章感兴趣: