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

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

1.7 DPPO


原则上,强化学习范式允许直接从简单的奖励信号中学习复杂的行为。然而,在实践中,通常要专门地设计奖励函数,以鼓励一个特定的解决方案,或从示范数据中推导得出方案。本文探讨了丰富的环境如何能帮助促进复杂行为的学习。DPPO(Distributed Proximal Policy Optimization)简单来说就是多线程并行版的 PPO。不过与上面介绍的A3C情况不同,A3C 也是分布式的方法,副网络与主网络有着相同的网络结构,并用副网络计算出来的梯度更新主网络的参数,更新完后再将主网络的参数同步给副网络。DPPO的副网络不必拥有和主网络相同网络结构,每个副网络只需要有自己独立的环境就好了。副网络在不同的环境中收集数据,然后交给主网络来更新参数。

稳健的策略梯度与PPO。策略梯度算法为连续控制提供了一个有效范式。它们的运作方式是直接将预期的奖励之和最大化:



预期是关于由策略π_θ和系统动态共同引起的轨迹分布τ的:



相对于θ的梯度目标由以下公式给出:



DPPO。数据收集和梯度计算都分布在worker身上。作者对同步和异步更新都进行了实验,发现平均梯度和同步应用梯度在实践中会带来更好的结果。为了方便使用批量更新的RNN,同时也支持可变长度的episodes,遵循一个策略,使用截断的反向传播,通过时间的长度为K的窗口。因此,可以使用K-step returns来估计优势,即在相同的K-step窗口上将return相加,并在K-step之后从值函数中引导。参数存放在参数服务器,worker在每个梯度步骤后同步其参数。

DPPO算法的伪代码在Algorithm 2和Algorithm 3中提供。W为worker数量,D为worker的数量设定了一个阈值,其梯度必须可用于更新参数。M、B是给定一批数据点的策略和基线更新的子迭代的数量。T是在计算参数更新之前每个worker收集的数据点的数量。K是计算K-step返回和截断反推的时间步数(对于RNNs)。




在分布式环境中,我们发现在不同的workers之间分享相关的统计数据进行数据规范化是很重要的。归一化是在数据收集过程中应用的,统计数字在每个环境步骤之后都会在本地更新。当一个迭代完成后,对统计数据的局部改变被应用于全局统计数据(伪代码中未显示)。时变的正则化参数λ也是跨workers共享的,但是更新是根据每个worker在本地计算的平均KL来确定的,并由每个worker分别应用调整后的α˜=1+(α-1)/K。此外,DPPO还采用了一个额外的惩罚项,当KL超过期望的变化一定幅度时(上面伪代码中阈值是2KL_target),该惩罚项就会生效。


当前 SOTA!平台收录DPPO 3 个模型实现资源。

模型 SOTA!平台模型详情页
DPPO 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/dppo


1.8 IQN


IQN是对DQN的扩展,是model-free、off-policy、value-based、discrete的方法,具体是使用量化回归来逼近state-action奖励分布的全部量化函数。通过对样本空间的分布进行重新参数化,生成一个隐式定义的奖励分布,并产生了一大类风险敏感策略。从学习离散的量值集到学习完整的量值函数,这是一个从概率到奖励的连续映射。当与基础分布相结合时,如U([0, 1]),就形成了一个隐性分布,能够在给定足够的网络容量的情况下,近似于returns的任何分布。首先,分布的近似误差不再由网络输出的量值数量控制,而是由网络本身的规模和训练量控制。第二,IQN可以根据需要在每次更新时使用很少或很多的样本,随着每次训练更新的样本数量增加,提供更好的数据效率。第三,奖励分布的隐式表示使我们能够扩大策略的类别,以更充分地利用所学到的分布。具体来说,通过将基础分布视为非均匀分布,将策略类别扩展为任意失真风险措施的贪婪策略。

IQN是一个神经网络,输入为状态 x 和一个采样 τ∼U[0,1] ,输出不同离散动作对应的值函数分布的 τ 分位数Zτ(x,a):=FZ−1(τ|x,a) 。定义与风险倾向有关的值函数如下:



其中,β(⋅):[0,1]→[0,1] 函数是单位映射,这个Q函数和之前定义的一样,是值函数分布的期望。如果该函数为凸函数(或者在图像上都在单位映射下方),那么就等于往较差情况加了较大的权重,这就产生了risk-averse型的风险偏好;如果该函数为凹函数(或者在图像上都在单位映射上方),那么就等于往较好情况加了较大的权重,这就产生了risk-seeking型的风险偏好。

定义在此值函数下的贪心策略:


实际计算中通过采样来得到该策略:



使用梯度下降优化如下损失函数:



其中,ρ(⋅) 为quantile regression的损失函数。

IQN使用与DQN中相同的函数ψ和f,但引入了一个额外的函数φ。把这些结合起来形成近似值Z_τ (x, a) ≈ f(ψ(x)⊙ φ(τ ))a,其中⊙表示element-wise(Hadamard)乘积。由于f的网络不是特别深,使用乘法形式ψ ⊙φ来强制卷积特征和样本嵌入之间的互动。最终的IQN算法如下:



当前 SOTA!平台收录IQN 1 个模型实现资源。

项目 SOTA!平台项目详情页
IQN 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/iqn

前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及API等资源。


网页端访问:在浏览器地址栏输入新版站点地址 sota.jiqizhixin.com ,即可前往「SOTA!模型」平台,查看关注的模型是否有新资源收录。


移动端访问:在微信移动端中搜索服务号名称「机器之心SOTA模型」或 ID 「sotaai」,关注 SOTA!模型服务号,即可通过服务号底部菜单栏使用平台功能,更有最新AI技术、开发资源及社区动态定期推送。

相关文章
|
机器学习/深度学习 存储 算法
【强化学习】常用算法之一 “DQN”
DQN算法是深度学习领域首次广泛应用于强化学习的算法模型之一。它于2013年由DeepMind公司的研究团队提出,通过将深度神经网络与经典的强化学习算法Q-learning结合,实现了对高维、连续状态空间的处理,具备了学习与规划的能力。本文对DQN算法进行了详细的讲解,包括发展史、算法公式和原理、功能、示例代码以及如何使用。DQN算法通过结合深度学习和Q-learning算法,实现了对高维、连续状态空间的处理,具备了学习和规划的能力。
1674 0
【强化学习】常用算法之一 “DQN”
|
机器学习/深度学习 存储 算法
I2A、MBMF、MVE、DMVE…你都掌握了吗?一文总结强化学习必备经典模型(三)
I2A、MBMF、MVE、DMVE…你都掌握了吗?一文总结强化学习必备经典模型
564 0
|
5月前
|
机器学习/深度学习 数据采集 分布式计算
【机器学习】XGBoost: 强化学习与梯度提升的杰作
在机器学习的广阔领域中,集成学习方法因其卓越的预测性能和泛化能力而备受瞩目。其中,XGBoost(Extreme Gradient Boosting)作为梯度提升决策树算法的杰出代表,自其诞生以来,便迅速成为数据科学竞赛和工业界应用中的明星算法。本文旨在深入浅出地介绍XGBoost的核心原理、技术优势、实践应用,并探讨其在模型调优与解释性方面的考量,为读者提供一个全面且深入的理解框架。
177 2
|
机器学习/深度学习 算法 自动驾驶
【强化学习】常用算法之一 “PPO”
强化学习是一种通过智能体与环境的互动来学习最优行为策略的机器学习方法。相较于监督学习和无监督学习,强化学习的特点在于具有延迟奖赏和试错机制。在强化学习中,智能体通过选择动作来影响环境,并且从环境中获得奖励作为反馈。强化学习的目标是通过与环境的交互,使得智能体能够学会最优的行为策略。PPO算法属于策略优化(Policy Optimization)算法家族,是由OpenAI在2017年提出的。与其他策略优化算法相比,PPO算法具有较高的样本利用率和较好的收敛性能。
1310 1
【强化学习】常用算法之一 “PPO”
|
机器学习/深度学习 算法 安全
基于时态差分法的强化学习:Sarsa和Q-learning
时态差分法(Temporal Difference, TD)是一类在强化学习中广泛应用的算法,用于学习价值函数或策略。Sarsa和Q-learning都是基于时态差分法的重要算法,用于解决马尔可夫决策过程(Markov Decision Process, MDP)中的强化学习问题。
217 1
|
机器学习/深度学习 算法 自动驾驶
强化学习模型
强化学习模型
183 0
|
机器学习/深度学习 算法 知识图谱
【强化学习】常用算法之一 “SARSA”
强化学习是一种通过学习与环境交互来最大化累积奖励的方法。在强化学习中,一个智能体在特定环境中根据当前状态选择一个动作,执行该动作后,环境将转移到新的状态,并且智能体将获得奖励。强化学习的目标是通过学习,使智能体能够选择一系列能够获取最大累积奖励的动作序列,即找到最优策略。SARSA算法是一种基于状态-动作值的强化学习算法,用来学习最优策略。本文详细介绍了强化学习中的SARSA算法,包括其发展历程、算法原理、功能以及使用方法,并给出了求解迷宫问题的示例代码。
541 0
【强化学习】常用算法之一 “SARSA”
|
机器学习/深度学习 人工智能 自然语言处理
【ICLR2020】基于模型的强化学习算法玩Atari【附代码】
【ICLR2020】基于模型的强化学习算法玩Atari【附代码】
189 0
|
机器学习/深度学习 存储 算法
DQN、A3C、DDPG、IQN…你都掌握了吗?一文总结强化学习必备经典模型(一)
DQN、A3C、DDPG、IQN…你都掌握了吗?一文总结强化学习必备经典模型
412 0
|
机器学习/深度学习 算法
介绍Q-Learning和两种常见的强化学习算法原理
介绍Q-Learning和两种常见的强化学习算法原理
95 0

热门文章

最新文章