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

简介: 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技术、开发资源及社区动态定期推送。

相关文章
|
人工智能 供应链 算法
创新场景丨从数字化到智能化,中远海科“航运新基建”探路
随着数据治理和 AI 大模型应用深入,船视宝日趋完善,开始发挥航运业数智新底座的作用,距离中远海科的愿景也更近一步。
|
搜索推荐 物联网 PyTorch
Qwen2.5-7B-Instruct Lora 微调
本教程介绍如何基于Transformers和PEFT框架对Qwen2.5-7B-Instruct模型进行LoRA微调。
14748 34
Qwen2.5-7B-Instruct Lora 微调
|
机器学习/深度学习 资源调度 算法
Kaggle金牌方案复现:CGO-Transformer-GRU多模态融合预测实战
本文详细介绍了在2023年Kaggle "Global Multimodal Demand Forecasting Challenge"中夺冠的**CGO-Transformer-GRU**方案。该方案通过融合协方差引导优化(CGO)、注意力机制和时序建模技术,解决了多模态数据预测中的核心挑战,包括异构数据对齐、模态动态变化及长短期依赖建模。方案创新性地提出了动态门控机制、混合架构和梯度平衡算法,并在公开数据集TMU-MDFD上取得了RMSE 7.83的优异成绩,领先亚军12.6%。
736 1
|
人工智能 异构计算
DisPose:清华北大等多所高校联合推出基于人物图像增强视频生成技术,实现对人物动画的准确控制和一致性
DisPose是由北京大学、中国科学技术大学、清华大学和香港科技大学联合推出的增强人物图像控制动画质量的技术。该技术通过从骨骼姿态和参考图像中提取控制信号,生成密集运动场,并保持对不同体型的泛化能力,显著提升了人物图像动画的质量和一致性。
654 14
DisPose:清华北大等多所高校联合推出基于人物图像增强视频生成技术,实现对人物动画的准确控制和一致性
|
人工智能 物联网 C语言
SVDQuant:MIT 推出的扩散模型后训练的量化技术,能够将模型的权重和激活值量化至4位,减少内存占用并加速推理过程
SVDQuant是由MIT研究团队推出的扩散模型后训练量化技术,通过将模型的权重和激活值量化至4位,显著减少了内存占用并加速了推理过程。该技术引入了高精度的低秩分支来吸收量化过程中的异常值,支持多种架构,并能无缝集成低秩适配器(LoRAs),为资源受限设备上的大型扩散模型部署提供了有效的解决方案。
1201 5
SVDQuant:MIT 推出的扩散模型后训练的量化技术,能够将模型的权重和激活值量化至4位,减少内存占用并加速推理过程
|
人工智能 搜索推荐 算法
当AI代做PPT时,教师如何完成自我迭代?——从生成式人工智能(GAI)认证看教育者的未来突围
本文探讨了AI在教育领域的广泛应用及其对教师角色的挑战,强调知识观与教育观的转变。生成式人工智能(GAI)认证为教师提供了提升AI应用能力、促进教育创新的机会。文章建议教师通过转变观念、加强情感交流及参与创新实践完成自我迭代,并呼吁政府、学校和社会共同支持AI时代教育的发展,以培养适应未来的高素质人才。
|
JavaScript Linux 编译器
c++开源协程库libgo介绍及使用
c++开源协程库libgo介绍及使用
|
PyTorch 算法框架/工具 异构计算
PyTorch 2.2 中文官方教程(十三)(4)
PyTorch 2.2 中文官方教程(十三)
1196 1
PyTorch 2.2 中文官方教程(十三)(4)

热门文章

最新文章