DQN、A3C、DDPG、IQN…你都掌握了吗?一文总结强化学习必备经典模型(一)

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,5000CU*H 3个月
简介: DQN、A3C、DDPG、IQN…你都掌握了吗?一文总结强化学习必备经典模型

本专栏由机器之心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



相关文章
|
机器学习/深度学习 存储 算法
【强化学习】常用算法之一 “DQN”
DQN算法是深度学习领域首次广泛应用于强化学习的算法模型之一。它于2013年由DeepMind公司的研究团队提出,通过将深度神经网络与经典的强化学习算法Q-learning结合,实现了对高维、连续状态空间的处理,具备了学习与规划的能力。本文对DQN算法进行了详细的讲解,包括发展史、算法公式和原理、功能、示例代码以及如何使用。DQN算法通过结合深度学习和Q-learning算法,实现了对高维、连续状态空间的处理,具备了学习和规划的能力。
1606 0
【强化学习】常用算法之一 “DQN”
|
机器学习/深度学习 存储 算法
I2A、MBMF、MVE、DMVE…你都掌握了吗?一文总结强化学习必备经典模型(三)
I2A、MBMF、MVE、DMVE…你都掌握了吗?一文总结强化学习必备经典模型
541 0
|
机器学习/深度学习 存储 算法
【强化学习】常用算法之一 “Q-learning”
Q-learning算法是一种基于强化学习的无模型学习方法,通过学习到目标系统的Q值函数来解决智能体在给定环境下的最优决策策略问题。Q-learning算法是基于后验策略方法,即学习出目标系统的价值函数Q之后,通过使用某种策略来最大化该价值函数,称之为后验策略。Q-learning算法是偏差-方差权衡的算法,在偏差较高的情况下可以在基于模型的强化学习中找到一个接近最优策略的解决方案。同时它也具有较高的收敛速度和广泛的适用性,因为其只需要存储一个值函数,不需要存储模型。
456 0
【强化学习】常用算法之一 “Q-learning”
|
机器学习/深度学习 算法 自动驾驶
【强化学习】常用算法之一 “PPO”
强化学习是一种通过智能体与环境的互动来学习最优行为策略的机器学习方法。相较于监督学习和无监督学习,强化学习的特点在于具有延迟奖赏和试错机制。在强化学习中,智能体通过选择动作来影响环境,并且从环境中获得奖励作为反馈。强化学习的目标是通过与环境的交互,使得智能体能够学会最优的行为策略。PPO算法属于策略优化(Policy Optimization)算法家族,是由OpenAI在2017年提出的。与其他策略优化算法相比,PPO算法具有较高的样本利用率和较好的收敛性能。
1262 1
【强化学习】常用算法之一 “PPO”
|
机器学习/深度学习 算法 安全
基于时态差分法的强化学习:Sarsa和Q-learning
时态差分法(Temporal Difference, TD)是一类在强化学习中广泛应用的算法,用于学习价值函数或策略。Sarsa和Q-learning都是基于时态差分法的重要算法,用于解决马尔可夫决策过程(Markov Decision Process, MDP)中的强化学习问题。
193 1
|
机器学习/深度学习 算法 自动驾驶
强化学习模型
强化学习模型
176 0
|
机器学习/深度学习 人工智能 自然语言处理
【ICLR2020】基于模型的强化学习算法玩Atari【附代码】
【ICLR2020】基于模型的强化学习算法玩Atari【附代码】
178 0
|
机器学习/深度学习 算法
介绍Q-Learning和两种常见的强化学习算法原理
介绍Q-Learning和两种常见的强化学习算法原理
93 0
|
机器学习/深度学习 存储 算法
强化学习之DQN论文介绍
强化学习之DQN论文介绍
202 0
|
机器学习/深度学习 人工智能 算法
利用强化学习Q-Learning实现最短路径算法
如果你是一名计算机专业的学生,有对图论有基本的了解,那么你一定知道一些著名的最优路径解,如Dijkstra算法、Bellman-Ford算法和a*算法(A-Star)等。
286 0
利用强化学习Q-Learning实现最短路径算法