IMPALA强化学习算法的学习和解读

IMPALA是DeepMind于2018年提出的可扩展分布式深度强化学习架构。

全名Importance Weighted Actor-Learner Architecture,让单个智能体能同时学习多个任务。

IMPALA采用分离式Actor-Learner架构和V-trace off-policy,通过高效分布式计算提升训练速度。

这里深入分析探索IMPALA的Actor-Learner架构和V-Trace off-policy修正算法。

所用内容参考自网络资料。

1 解耦Actor与Learner

区别于A3C(Asynchronous Advantage Actor-Critic),IMPALA将行动与学习两个过程分离。

Actor,即行动者,成千上万个游戏玩家Actor,在各自环境中探索,收集经验数据(即<状态、动作、奖励>序列),并将这些经验数据发送给中心学习器,而不是计算梯度然后发送梯度。

Learner,即学习学习器,一个或多个中心化的教练(Learner)负责接收所有Actor传来的经验,利用GPU批量学习,更新模型参数。

Actor和Learner解耦,使得Actor不必再像A3C等待Learner计算梯度,而是一刻不停地生成数据。

2 策略滞后与解决方案V-trace

2.1 策略滞后

解耦Actor和Learner虽然提高了吞吐量,但引入了新的问题,即策略滞后。

Actor本地策略(记作μ)可能已经过时,生成经验时用的是旧版本的参数。

而此时Learner正在更新的目标策略(记作π)已经进化了好几版。

这造成了行为策略和目标策略的不一致,即变成了Off-policy(离策略)学习。

直接用旧策略产生的数据来更新新策略,会导致学习不稳定甚至失败。

2.2 V-trace

IMPALA提出了一个创新---V-trace。V-trace是一种专门设计的off-policy修正方法。它像一个翻译官,能够精准地评估并修正因策略滞后带来的数据偏差,解决行为策略和目标策略不一致的问题。

假设想学习一位大师(目标策略π)的下棋风格,但手头只有一位业余爱好者(行为策略μ)的对局记录。不能直接照搬业余爱好者的走法,因为水平差距太大。V-trace就像一个智能过滤器,它能分析业余爱好者的棋局,从中提取出那些接近大师思路的走法,并剔除那些明显错误的,从而安全有效地学习。

具体为通过重要性采样等技术,确保了Learner即使在使用过时的旧数据时,也能正确、稳定地更新目标策略π,让训练过程既快速又稳健。这是IMPALA能够成功的技术基石。

具体过程参考如下链接

https://blog.csdn.net/liliang199/article/details/158238739

3 实际效果与应用

3.1 性能突破

凭借上述设计,IMPALA在性能上取得了显著突破:

1)惊人吞吐量

在实验中,IMPALA可以达到每秒处理25万帧游戏画面的速度,比单机版的A3C快了30倍以上。

2)卓越的数据效率

在DeepMind的DMLab-30多任务测试集中,IMPALA的数据利用效率是分布式A3C的10倍,最终得分也是后者的2倍。

3.2 典型应用

IMPALA最初就是为了解决多任务学习问题而设计的。

例如让一个智能体学会DMLab-30中的全部30个任务。此外,它在Atari 57款游戏上的表现也证明了其强大的泛化能力和有效性。

IMPALA是分布式强化学习的一个里程碑式,通过解构传统框架,将数据生成和模型学习分离,并创造性地引入V-trace算法解决了由此产生的off-policy问题,在训练速度、数据效率和可扩展性上实现了巨大飞跃。

reference


IMPALA: Scalable Distributed Deep-RL with Importance Weighted Actor-Learner Architectures

https://ar5iv.labs.arxiv.org/html/1802.01561

前沿 | DeepMind提出新型架构IMPALA:帮助实现单智能体的多任务强化学习

https://cloud.tencent.cn/developer/article/1119569?from=15425

从框架到经典方法,全面了解分布式深度强化学习DDRL

https://cloud.tencent.com.cn/developer/article/2391129?from=15425

V-trace的核心公式与计算过程

https://blog.csdn.net/liliang199/article/details/158238739

相关推荐
IronMurphy3 分钟前
【算法四十三】279. 完全平方数
算法
墨染天姬9 分钟前
【AI】Hermes的GEPA算法
人工智能·算法
papership28 分钟前
【入门级-数据结构-3、特殊树:完全二叉树的数组表示法】
数据结构·算法·链表
smj2302_7968265231 分钟前
解决leetcode第3911题.移除子数组元素后第k小偶数
数据结构·python·算法·leetcode
酿情师1 小时前
yihan:一款面向连续网页学习的智能侧边栏插件
学习·学习方法·工具·学习工具
Beginner x_u1 小时前
链表专题:JS 实现原理与高频算法题总结
javascript·算法·链表
瞎某某Blinder2 小时前
DFT学习记录[6]基于 HES06的能带计算+有效质量计算
python·学习·程序人生·数据挖掘·云计算·学习方法
love在水一方3 小时前
VLN 入门学习计划 —— 基于 InternNav
学习
_深海凉_4 小时前
LeetCode热题100-寻找两个正序数组的中位数
算法·leetcode·职场和发展
旖-旎5 小时前
深搜练习(电话号码字母组合)(3)
c++·算法·力扣·深度优先遍历