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

相关推荐
To_OC1 小时前
LC 51 N 皇后:我以为难的是回溯,结果栽在了对角线下标
javascript·算法·leetcode
2401_841495642 小时前
【操作系统】进程同步与互斥实验报告
c++·算法·操作系统·进程·并发·同步·互斥
a1117765 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
我的xiaodoujiao6 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
爱刷碗的苏泓舒6 小时前
PPP-AR 中的参考星选取:数学原理、评价指标与切换处理
算法·gnss·模糊度固定·ppp-ar·星间单差·参考星·卫星端偏差
你想知道什么?7 小时前
线性回归-学习笔记
笔记·学习·线性回归
鱼毓屿御7 小时前
从「只会聊」到「边想边做」的跃迁
前端·学习·react.js
AOwhisky9 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
烬羽9 小时前
递归老写崩?一个"退回"公式,把回溯题变成填空题
javascript·深度学习·算法