本专栏由机器之心SOTA!模型资源站出品,每周日于机器之心公众号持续更新。
本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。
本文将分 2 期进行连载,共介绍 13 个在强化学习任务上曾取得 SOTA 的经典模型。
- 第 1 期:DQN、DDQN、DDPG、A3C、PPO、HER、DPPO、IQN
- 第 2 期:I2A、MBMF、MVE、ME-TRPO、DMVE
您正在阅读的是其中的第 1 期。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。
本期收录模型速览
模型 | SOTA!模型资源站收录情况 | 模型来源论文 |
DQN | https://sota.jiqizhixin.com/project/dqn-2 收录实现数量:92 支持框架:PyTorch、TensorFlow等 |
Playing Atari with Deep Reinforcement Learning |
DDQN | https://sota.jiqizhixin.com/project/ddqn-tuned-hs 收录实现数量:80 支持框架:PyTorch、TensorFlow等 |
Deep Reinforcement Learning with Double Q-learning |
DDPG | https://sota.jiqizhixin.com/project/ddpg 收录实现数量:3 支持框架:PyTorch、TensorFlow |
Continuous control with deep reinforcement learning |
A3C | https://sota.jiqizhixin.com/project/a3c-ff-1-day-hs 收录实现数量:60 支持框架:PyTorch、TensorFlow等 |
Asynchronous Methods for Deep Reinforcement Learning |
PPO | https://sota.jiqizhixin.com/project/ppo-3 收录实现数量:3 支持框架:PyTorch、TensorFlow |
Proximal Policy Optimization Algorithms |
HER | https://sota.jiqizhixin.com/project/her 收录实现数量:3 支持框架:PyTorch、TensorFlow |
Hindsight Experience Replay |
DPPO | https://sota.jiqizhixin.com/project/dppo 收录实现数量:3 支持框架:PyTorch、TensorFlow |
Emergence of Locomotion Behaviours in Rich Environments |
IQN | https://sota.jiqizhixin.com/project/iqn 收录实现数量:20 支持框架:PyTorch、TensorFlow等 |
ImplicitQuantile Networks for Distributional Reinforcement Learning |
强化学习(Reinforcement Learning, RL)是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成奖励最大化或实现特定目标的问题。不同于监督学习和非监督学习,强化学习不要求预先给定任何数据,而是通过接收环境对动作的奖励(反馈)获得学习信息并更新模型参数。“强化学习”学习的是从环境状态到行为的映射,使得智能体选择的行为能够获得环境最大的奖励,使得外部环境对学习系统在某种意义下的评价(或整个系统的运行性能)为最佳。因此,强化学习也被称为是和监督学习、非监督学习并列的第三种机器学习方法。强化学习特别是深度强化学习近年来取得了令人瞩目的成就,除了应用于模拟器和游戏领域,在工业领域也正取得长足的进步。
强化学习有四个基本组件:环境(States)、动作(Actions)、奖励(Rewards)、策略(Policy)。其中,前三项为输入,最后一项为输出。
强化学习一种普遍的分类方式是根据询问环境会否响应agent的行为进行分类,即无模型(model-free)和基于模型(model-based)两类。其中,model-free RL算法通过agent反复测试选择最佳策略,这也是研究比较多的领域,这些算法是agent直接和环境互动获得数据,不需要拟合环境模型,agent对环境的认知只能通过和环境大量的交互来实现。这样做的优点是通过无数次与环境的交互可以保证agent得到最优解。往往在游戏这样的没有采样成本的环境中都可以用model-free;model-based RL算法根据环境的学习模型来选择最佳策略,agent通过与环境进行交互获得数据,根据这些数据对环境进行建模拟合出一个模型,然后agent根据模型来生成样本并利用RL算法优化自身。一旦模型拟合出来,agent就可以根据该模型来生成样本,因此agent和环境直接的交互次数会急剧减少,缺点是拟合的模型往往存在偏差,因此model-based的算法通常不保证能收敛到最优解。但是在现实生活中是需要一定的采样成本的,采样效率至关重要,因此,向model-based方法引入model-free是一个提升采样效率的重要方式。在model-based RL中不仅仅有原来model-free中的结构,还多了一个model,原本在model-free中用来训练值函数和策略函数的经验有了第二个用处,那就是model learning,拟合出一个适当的环境模型。
本文对经典的强化学习模型是分别从model-free和model-based这两个类别进行介绍的。除了经典的强化学习问题外,还有多个不同的强化学习分支方法,包括分层强化学习、多任务强化学习、分布式强化学习、可解释的强化学习、安全强化学习、迁移学习强化学习、元学习强化学习、多智能体强化学习,以及强化学习在特定领域中的应用等等,这些方法均不在本文讨论范围内。我们将在后续其它专题中具体探讨。
一、Model-free
1.1 DQN
DQN是第一个可以从高维输入中直接学习到控制策略的深度学习模型。DQN是一个卷积神经网络,基于Q-learning进行训练,其输入是像素点,输出是一个可以预估未来奖励的值函数(value function)。Q-learning是非常有效的强化学习方法,但是它不适宜处理高维数据,奖励函数需要人为的去设定。DQN的思路是用神经网络去拟合一个奖励函数,从而构建一个比较通用的模型去处理不同的问题,以解决Q-learning的通用性的问题。
DQN使用 Q-learning 算法的变体进行训练,使用随机梯度下降更新权重。为了缓解相关数据和非平稳分布的问题,引入一种经验重放机制,它随机采样先前的transitions,从而使过去的许多行为的训练分布变得平滑。
直接处理原始的Atari帧,即210×160像素的图像、有128种颜色的调色板,在计算上要求很高,DQN采用了一个旨在降低输入维度的预处理步骤。DQN首先将原始帧的RGB表示转换为灰度,并将其下采样为110×84的图像。最终的输入表征是通过裁剪一个84×84的图像区域得到的,该区域大致上捕获了游戏区域。最后保留裁剪阶段,这是因为DQN使用了二维卷积的GPU实现,它要求方形的输入。有几种使用神经网络参数化 Q 的可能方法。由于 Q 将历史-动作对( history-action pairs)映射到其 Q 值的估计,因此历史和动作已被某些先前的方法用作神经网络的输入。这种架构的主要缺点是需要单独的前向传播来计算每个动作的 Q 值,导致成本与动作数量成线性比例。作者改为使用一种架构,其中每个可能的动作都有一个单独的输出单元,只有状态表示是神经网络的输入。输出对应于输入状态的单个动作的预测 Q 值。这种架构的主要优点是能够计算给定状态下所有可能动作的 Q 值,只需通过网络进行一次前向传递。
具体的,作者在文章中介绍了用于所有七款 Atari 游戏的具体架构。神经网络的输入是由ϕ 生成的84×84×4 图像。第一个隐藏层将16 个步长为 4 的 8×8 滤波器与输入图像进行卷积,并应用激活函数。第二个隐藏层卷积 32 个 4×4 的滤波器,步长为 2,再次跟随激活函数。最后的隐藏层是全连接层,由256 个神经元组成。输出层是一个全连接层,每个有效动作都有一个输出。在作者考虑的游戏中,有效动作的数量在 4 到18 之间。作者将使用该方法训练的卷积网络称为 Deep Q-Networks (DQN)。
DQN的执行过程如Algorithm 1:
DQN中使用的经验重放(experience replay)方法 ,在每个时间步长将agent的经验 e_t=(s_t,a_t,r_t,s_t+1) 存储在数据集 D=e_1,...,e_N 中。在算法的内部循环期间,将 Q-learning 更新或mini-batch更新应用于从存储样本池中随机抽取的经验样本e∼D。执行经验重放后,agent根据ϵ−greedy 策略选择并执行动作。由于使用任意长度的历史作为神经网络的输入可能很困难,作者的 Q 函数改为使用由函数ϕ 产生的固定长度的历史表示。
当前 SOTA!平台收录 DQN 共 92 个模型实现资源。
项目 | SOTA!平台项目详情页 |
DQN | 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/dqn-2 |