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

简介: 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



相关文章
|
机器学习/深度学习 存储 算法
I2A、MBMF、MVE、DMVE…你都掌握了吗?一文总结强化学习必备经典模型(三)
I2A、MBMF、MVE、DMVE…你都掌握了吗?一文总结强化学习必备经典模型
992 0
|
9月前
|
机器学习/深度学习 传感器 自动驾驶
从 2D 到 BEV,LSS 技术如何重塑自动驾驶感知?
LSS(Lift-Splat-Shoot)是将多视角图像转换为BEV表示的经典技术,算法虽然老,但应用依然非常广泛
625 23
从 2D 到 BEV,LSS 技术如何重塑自动驾驶感知?
|
9月前
|
机器学习/深度学习 算法 调度
【强化学习】基于深度强化学习的微能源网能量管理与优化策略研究【Python】
本项目基于深度Q网络(DQN)算法,通过学习预测负荷、可再生能源输出及分时电价等信息,实现微能源网的能量管理与优化。程序以能量总线模型为基础,结合强化学习理论,采用Python编写,注释清晰,复现效果佳。内容涵盖微能源网系统组成、Q学习算法原理及其实现,并提供训练奖励曲线、发电单元功率、电网交互功率和蓄电池调度等运行结果图表,便于对照文献学习与应用。
|
机器学习/深度学习 数据采集 数据可视化
使用Python实现深度学习模型:智能舆情监测与分析
【8月更文挑战第16天】 使用Python实现深度学习模型:智能舆情监测与分析
925 1
|
机器学习/深度学习 存储 算法
DQN、A3C、DDPG、IQN…你都掌握了吗?一文总结强化学习必备经典模型(二)
DQN、A3C、DDPG、IQN…你都掌握了吗?一文总结强化学习必备经典模型
996 0
|
XML 资源调度 Dubbo
深度剖析dubbo和zookeeper关系
当网站规模达到了一定的量级的时候,普通的MVC框架已经不能满足我们的需求,于是分布式的服务框架和流动式的架构就凸显出来了。
404 0
|
机器学习/深度学习 人工智能 算法
|
机器学习/深度学习 数据采集 存储
【强化学习】常用算法之一 “A3C”
A3C(Asynchronous Advantage Actor-Critic)算法是一种在强化学习领域中应用广泛的算法,它结合了策略梯度方法和价值函数的学习,用于近似解决马尔可夫决策过程(Markov Decision Process)问题。A3C算法在近年来备受关注,因为它在处理大规模连续动作空间和高维状态空间方面具有出色的性能。A3C算法是一种基于策略梯度的强化学习算法,通过多个并行的智能体异步地与环境交互,并利用Actor和Critic网络实现策略和价值的近似,从而实现快速而稳定的强化学习训练。
2544 0
【强化学习】常用算法之一 “A3C”
|
机器学习/深度学习 自然语言处理 算法
深度学习与CV教程(18) | 深度强化学习 (梯度策略,Actor-Critic,DDPG,A3C)
本文讲解了 Policy Gradient,结合policy-based 和 value-based 的 Actor-Critic 方法,以及在 Actor-Critic 基础上的 DDPG、A3C方法【对应 CS231n Lecture 14】
18378 21
深度学习与CV教程(18) | 深度强化学习 (梯度策略,Actor-Critic,DDPG,A3C)
|
机器学习/深度学习 人工智能 资源调度
深度强化学习技术概述
在本文中详细介绍了深度强化学习技术,将强化学习分成三大类(value-based算法、policy-based算法及结合两者的AC算法)来进行介绍。首先,从数学理论角度介绍了强化学习;接着,从不同适用方向对两类深度强化学习算法进行介绍:基于值函数(Value-based)的深度强化学习算法DQN和基于策略(Policy-based)的深度强化学习算法PG。最后,介绍目前应用广泛的结合前两个算法的结合物AC(Actor-Critic)算法。
2331 2
深度强化学习技术概述