深度强化学习实验室
官网:http://www.neurondance.com/
来源:微软研究院AI头条授权转载
编辑:DeepRL
值分布强化学习(Distributional Reinforcement Learning)是一类基于价值的强化学习算法,也是一类新兴的强化学习方法。该方法达到了非分布式强化学习方法上新的基准性能,也与神经科学有着内在联系,因此具有很高的研究价值。本文将带大家一起选读多个近期值分布强化学习相关的研究工作,这些工作的发展脉络清晰、研究动机明确,为后续的进一步研究提供了重要参考。
什么是值分布强化学习
值分布强化学习(Distributional Reinforcement Learning,Distributional RL)是一类基于价值的强化学习算法(value-based Reinforcement Learning,value-based RL)。经典的基于价值的强化学习方法尝试使用期望值对累积回报进行建模,表示为价值函数 V(x) 或动作价值函数 Q(x,a)。而在这个建模过程中,完整的分布信息很大程度上被丢失了,值分布强化学习就是想要解决这个问题,对累积回报这个随机变量的分布 Z(x,a) 进行建模,而非只建模其期望。
目前的值分布强化学习通常使用 Dirac Mixture 对连续分布进行参数化建模。近年来,许多研究人员尝试从以下两个角度开展研究:一是对分布进行更好的参数化,从而更好地拟合实际的连续分布,如 C51、QR-DQN、IQN 和 FQF;二是对分布的不同统计特性进行建模,尝试找出更适合强化学习任务的建模方式,如 QR-DQN 学习分布的分位数值(quantile value)和 Expectile DRL 学习分布的期望分位数值(expectile value),而 MMD-DRL 则避免了对 Dirac Mixture 模型统计意义的人为规定。
值分布强化学习方法是一类新兴的强化学习方法,达到了非分布式强化学习方法上新的基准性能,在 Atari 基准上超过了原有的基于期望的 value-based RL 方法。另外,也有研究人员发现了值分布强化学习与神经科学的内在联系。因此,值分布强化学习方法具有很高的研究价值。接下来,本文将带大家一起选读多个近期值分布强化学习相关的研究工作,这些工作的发展脉络清晰、研究动机明确,为后续的进一步研究提供了重要的参考价值。
A Distributional Perspective
on Reinforcement Learning
“A Distributional Perspective on Reinforcement Learning”是由 DeepMind 的 Bellemare 等人完成的文章,是现代值分布强化学习中比较重要的一篇文章。文章从理论上证明了分布贝尔曼算子(distributional Bellman operator)的一些性质,并提出了一种实现方法,成为了后续研究的一个重要基石。在这篇文章中,作者首先说明传统 DQN 算法希望学习的 Q 是一个数值,其含义是未来奖励和的期望。而在值分布强化学习系列算法中,目标则由数值变为一个分布。在值分布强化学习中,目标也由数值 Q 变为随机变量 Z,这种改变可以使学到的内容是除了数值以外的更多信息,即整个分布。
图1:C51 的贝尔曼更新(Bellman Update)
在这种设定下,作者引入了 distributional Bellman operator,随后在 Wasserstein metric 下证明了 distributional Bellman operator 是一个 γ-contraction 算子。但由于 Wasserstein metric 的梯度在实际采用时是有偏差的。因此,在实际算法上,作者采用了 KL 散度进行计算。作者提出了 C51 算法,将可能的 Z 划分为51个固定区间,然后学习 Z 区到每个区间的概率,在迭代中使用 KL 散度计算损失函数(loss)。然而,在对目标的 Z 值进行一次 distributional Bellman operator 的计算之后,为了再次将其化为同样51个固定区间的概率表示,C51 算法使用了一种投影方法(即图1 d 中 Φ 所示),可以将概率重新投影到原来的固定区间中。随后,再采用 KL 散度的交叉熵为 Loss,对其进行优化即可。
论文链接:https://arxiv.org/abs/1707.06887
Distributional Reinforcement
Learning with Quantile Regression
在 C51 提出约四个月后,2017年10月,C51 的作者 Bellemare 与同在 DeepMind 的 Dabney 等人提出了 QR-DQN 算法,并在 Atari 实验上刷新了 C51 的实验结果。
QR-DQN 与 C51 的最大不同点在于对分布的表述方式。C51 算法固定了 N 个概率的可能取值,然后使用可学习的、与 N 个值相对应的 N 个概率值去描述分布。而 QR-DQN 则使用分位数来描述分布,也就是说,固定 N 个分位数,然后学习这 N 个分位数对应的数值取值。可以说,QR-DQN 使用了与 C51 相对的一种方法去描述分布。
图2:QR-DQN 的分位点投影(quantile projection)
分位数即累积分布函数(CDF)的逆,通过分位数 τ,可以找到与之相对应的一个 z 值。如果当在 CDF 函数上对分布进行建模时,便可以和 Wasserstein metric 更好地结合起来。如图2所示,黑色线为 Z 的 CDF 函数,蓝色线为 QR-DQN 使用的分位数方法对 CDF 的近似表达。红色部分,是近似表达与真实 CDF 函数之间的误差。
学习对应的分位数值时,QR-DQN 使用了分位点回归(Quantile Regression)。对于每个设定的分位数值 τ,使用 Quantile Regression 以及 Huber Loss。通过这种方法,QR-DQN 不会再设置Z取值的上下界,因此相比 C51 而言有更大的灵活程度。
图3:QR-DQN 在 Windy Gridworld 上的实验效果
在实验部分,QR-DQN 首先使用了一个 Toy Case 实验,在 Windy Gridworld 上证明了使用本文提出的方法,的确可以学到状态对应的分布。随后,QR-DQN 又在 Atari 上完成了实验,并且得到了比 C51 更加显著的提升。
论文链接:https://arxiv.org/abs/1710.10044
Implicit Quantile Networks
for Distributional Reinforcement Learning
QR-DQN 在对分布进行建模时,选择了固定且等间隔的概率位置,这个固定位置的限制使得算法难以适应不同的分布,无法进一步降低 Wasserstein 距离。为了解决这个问题,QR-DQN 的作者 Dabney 等人在 QR-DQN 的基础上提出了 IQN 算法,并取得了比 QR-DQN 更好的性能表现。
图4:DQN、C51、QR-DQN、IQN 的网络结构对比
IQN 与 QR-DQN 主要有两点不同。首先,它在估计给定的分位数 τ 对应的取值时,将分位数 τ 也作为神经网络模型的输入,也就是说,使用神经网络来拟合整个连续分布,从而提高对于不同分布的表达能力。通过调整神经网络的容量,理论上能够以任意精度拟合价值函数对应的分布。其次,IQN 中使用从均匀分布中采样的分位数 τ 替代了 QR-DQN 中固定的分位数,通过调整每次采样中的分位数个数,可以提高强化学习在训练过程中的样本效率,更好地利用训练资源。
在 Atari 基准上的测试结果表明,IQN 算法的性能比起上述的 C51 和 QR-DQN 有着明显提升,和集成了各种经验技巧的 Rainbow 相比,IQN 的性能也十分接近。
图5:在 Atari Games 上的性能对比
表1:在 Atari Games 上的性能对比(IQN)
论文链接:https://arxiv.org/abs/1806.06923
Fully Parameterized Quantile Function for Distributional Reinforcement Learning
如果能够使用无穷多个采样点和无穷大的模型容量,IQN 方法就能够近似任意的完整分位数函数(quantile function),但这显然是不可能的。因此在实际中,必须考虑在有限个采样的情况下值分布强化学习算法的表示能力。
从这个角度出发,来自加利福尼亚大学圣迭戈分校的 Derek Yang 和微软亚洲研究院的研究人员合作提出了 FQF 方法。FQF 对分布进行了完全的参数化,而非如 QR-DQN 一般事先固定分位数或 IQN 中随机采样得到的分位数。在 FQF 中,分位数和其对应的值都被进行了参数化,根据不同的分布特点,调整分位数的位置,并使用 Quantile Regression 得到分位数对应的值。
在 FQF 中,算法包含两个模型,一个是分位数提议网络(fraction proposal network),用来针对每个状态动作对应生成合适的分位数位置;二是分位数值网络(quantile value network),将前一个网络输出的分位数τ映射到对应的取值(quantile value)。
FQF 通过最小化真实分布与近似分布之间的 1-Wasserstein 距离来训练分位数提议网络。利用分数提议网络生成的当前提议的分位数,可以通过 Quantile Regression 来训练分位数值网络。与 QR-DQN 和 IQN 相比,通过学习和自我调整的分位数位置可以更好地近似真实分布。
图6:FQF 可以通过调整分位数的位置来最小化拟合误差
论文链接:https://arxiv.org/abs/1911.02140
Non-crossing quantile regression
for deep reinforcement learning
QR-DQN、IQN、FQF 等使用 Quantile Regression 的值分布强化学习方法已经取得了很好的效果,然而实验表明,Quantile Regression 并不能保证得到的分位数值(quantile value)的单调性。但一个有效的、分布的分位数值应该是非减的,这就导致直接通过 Quantile Regression 并不能学习到一个有效的分布。这种交错(crossing)的现象在有限的采样数的情况下十分明显,而缺少单调性的约束,模型的可解释性会大大降低。由于值分布强化学习是基于分布的统计意义进行建模,所以这种方式最终会导致模型的整体性能下降。
针对这个问题,“Non-crossing quantile regression for deep reinforcement learning”文章的作者提出了一种无交错的分位数回归(non-crossing quantile regression)方法。该方法通过在对分位数值进行估计时加入单调性的限制,以保证最终估计得到的分位数值不会出现上述提到的交错现象。作者通过实验证明了在加入分位数的单调性限制的情况下,该方法仍能保证分布在无限次迭代更新之后可以收敛到固定点。
图7:Non-crossing quantile regression 的网络结构
论文链接:https://proceedings.neurips.cc//paper/2020/file/b6f8dc086b2d60c5856e4ff517060392-Paper.pdf
Statistics and Samples
in Distributional Reinforcement Learning
“Statistics and Samples in Distributional Reinforcement Learning”是由 DeepMind 在2019年提出的。文章的作者提出了一种分析值分布强化学习的统一分析框架,并基于这种框架,提出了一种新的分析算法:Expectile Distributional RL(EDRL)。
作者分析认为,此前的值分布强化学习算法,大致可以归为两种类型。其中一类是学习离散类别分布(categorical distribution reinforcement learning,CDRL)的算法,前文中提到的 C51 即为这类算法,另一类是学习概率分布的分位数的算法,QR-DQN 等即属于这类。作者认为,这些值分布强化学习的算法都可以视为:首先找到一系列统计量(statistics)以描述分布,然后在做更新时找到一种 Imputation Strategy 来根据维护的一系列统计量重构分布,并在此基础上计算 Loss。随后,作者与 QR-DQN 进行类比,提出了 EDRL 算法。若对期望分位数不熟悉的话,可以通过以下的例子迅速类比:均值之于0.5 期望分位数,即为中位数之于0.5 分位数。
图8:在 Chain MDP下,CDRL、naïveEDRL 和 EDRL 的对比
作者以 Chain MDP 为例,说明了 EDRL 算法的优势。在 CDRL 算法中,由于投影操作的存在,最后回到 x_0 状态时,更倾向于高估方差(图8中的蓝色分布);而 naïve 的 EDRL 则会低估方差,迅速塌缩到一个冲击函数(橙色);这样在综合考虑 imputation strategy 时,才能更加精确地估计分布(绿色)。随后,作者使用上述框架定义了 Bellman closedness 的概念:在维护一个统计量的集合是否可以通过自身经由 Bellman operator 之后的值来学习自身。通过这种分析,作者对值分布强化学习中何种统计量可以通过 Bellman update 来学到进行了理论上的分析。最终,在 Tabular case 和 Atari 上进行的实验表明,EDRL 算法相比 CDRL、QDRL 等基线算法,有较为明显的优点。
论文链接:https://arxiv.org/abs/1902.08102
Distributional Reinforcement Learning
with Maximum Mean Discrepancy
在值分布强化学习的研究中,如何表述分布,如何衡量分布(随机变量)之间的差异,成为了瓶颈。因为,要完全表示 return 的分布需要无限维的空间,所以,找到一种拥有更强表现能力的方法就至关重要。在之前的工作中,研究者们基本都使用概率分布函数或者分位数等方式,对其 return 的分布进行建模。而在2020年7月的文章“Distributional Reinforcement Learning with Maximum Mean Discrepancy”中,作者提出了 MMD-DQN 算法,使用最大平均差异(Maximum Mean Discrepancy,MMD)对分布进行建模。
如果对 MMD 不太熟悉的话,那么可以考虑一种 MMD 的特例,比如当考虑一阶情况时,MMD 可以理解为 X,Y 两个随机变量的一阶矩的差值。事实上,MMD 的含义类似于衡量某种矩的差异。如下式所表示,MMD 依赖于某一类映射 f∈F,其定义为,两个随机变量 Z,W 经过某一类映射 F 的变换后,随机变量期望之差的上界。这里先后取上界、期望,也是 MMD 中 Maximum 和 Mean 得名的原因。最后,再经过核函数映射等可以进一步化简,得到可以在实际算法中使用的解析解。
作者通过这种方式,巧妙地对 return 的分布进行表示,同时避免了 C51、QR-DQN 中只能选择固定值、分位数,而在近似真实分布上具有较大误差的情形。随后,作者证明了 MMD 的特性以及 Bellman operator 的收敛性,并提出了 MMD-DQN 算法。在计算 MMD 以及选取最佳动作的过程中,还采取了对 Z 进行采样的策略。
表2:在 Atari Games 上的性能对比(MMD-DQN)
最终,作者在 Atari 上进行实验,并将实验结果与 C51、QR-DQN、以及 IQN、FQF 等基线进行对比,从表2中可以看到,性能在整体游戏上有了提升。
论文链接:https://www.researchgate.net/publication/343228735_Distributional_Reinforcement_Learning_with_Maximum_Mean_Discrepancy
值分布强化学习的应用
值分布强化学习可以对强化学习中价值函数对应的完整分布有一个参数化的建模方式,分布中的信息可以带来更多的操作和利用空间,一个典型的应用方向就是风险敏感(risk-sensitive)的应用。
在强化学习中,探索(exploration)和利用(exploitation)的平衡是一个关键的问题,有些场景中需要智能体具有足够的探索能力才能够学习到真正有用的策略,即智能体需要能够理解不同状态的价值的不确定性。使用值分布强化学习可以对状态的价值函数进行更精细的建模,有助于设计更好的探索策略,从而提高智能体在冒险任务中的表现能力。
对这个方向感兴趣的读者还可以参考以下几篇文章:
a. Borislav Mavrin et al. Distributional Reinforcement Learning for Efficient Exploration. ICML 2019.
链接:https://arxiv.org/abs/1905.06125
b. Junyu Zhang et al. Cautious Reinforcement Learning via Distributional Risk in the Dual Domain. 2020.
链接:https://arxiv.org/abs/2002.12475
c. Xiaoteng Ma et al. DSAC: Distributional Soft Actor Critic for Risk-Sensitive Reinforcement Learning. ICML workshop 2019.
链接:https://arxiv.org/abs/2004.14547
总结
值分布强化学习在近几年得到了广泛的关注,在非分布式的强化学习算法中超过了之前已有的算法,刷新了 Atari 等基准测试场景下的最优性能。而随着对于强化学习的马尔可夫过程的随机变量有了更完整的建模,强化学习算法可以更有针对性地处理不同的问题,例如在保证算法较高性能的同时控制算法风险,这是原本的基于期望的价值函数难以做到的。
此外,值分布强化学习还有着很大的发展潜力。首先,对于分布的建模仍然存在着很明显的近似误差,如何对分布进行更好地建模仍然是该领域中十分重要的一个问题。另外,值分布强化学习方法在侧重于探索的任务中还存在着很大的性能缺失,如何利用完整分布的信息以提高算法的探索能力也是一个很关键的问题。希望借由此文,可以有更多的研究人员关注和投入到这个领域中,一起推动值分布强化学习这个领域的发展,为后续的技术和理论完善贡献力量。
实验室官网:http://www.neurondance.com/
实验室社区:http://deeprl.neurondance.com/
完
总结3: 《强化学习导论》代码/习题答案大全
总结6: 万字总结 || 强化学习之路
完
第95篇:如何提高"强化学习算法模型"的泛化能力?
第94篇:多智能体强化学习《星际争霸II》研究
第93篇:MuZero在Atari基准上取得了新SOTA效果
第91篇:详解用TD3算法通关BipedalWalker环境
第88篇:分层强化学习(HRL)全面总结
第85篇:279页总结"基于模型的强化学习方法"
第84篇:阿里强化学习领域研究助理/实习生招聘
第83篇:180篇NIPS2020顶会强化学习论文
第81篇:《综述》多智能体强化学习算法理论研究
第80篇:强化学习《奖励函数设计》详细解读
第79篇: 诺亚方舟开源高性能强化学习库“刑天”
第77篇:深度强化学习工程师/研究员面试指南
第75篇:Distributional Soft Actor-Critic算法
第74篇:【中文公益公开课】RLChina2020
第73篇:Tensorflow2.0实现29种深度强化学习算法
第72篇:【万字长文】解决强化学习"稀疏奖励"
第71篇:【公开课】高级强化学习专题
第70篇:DeepMind发布"离线强化学习基准“
第66篇:分布式强化学习框架Acme,并行性加强
第65篇:DQN系列(3): 优先级经验回放(PER)
第64篇:UC Berkeley开源RAD来改进强化学习算法
第61篇:David Sliver 亲自讲解AlphaGo、Zero
第59篇:Agent57在所有经典Atari 游戏中吊打人类
第58篇:清华开源「天授」强化学习平台
第57篇:Google发布"强化学习"框架"SEED RL"
第53篇:TRPO/PPO提出者John Schulman谈科研
第52篇:《强化学习》可复现性和稳健性,如何解决?
第51篇:强化学习和最优控制的《十个关键点》
第50篇:微软全球深度强化学习开源项目开放申请
第49篇:DeepMind发布强化学习库 RLax
第48篇:AlphaStar过程详解笔记
第47篇:Exploration-Exploitation难题解决方法
第45篇:DQN系列(1): Double Q-learning
第44篇:科研界最全工具汇总
第42篇:深度强化学习入门到精通资料综述
第41篇:顶会征稿 || ICAPS2020: DeepRL
第40篇:实习生招聘 || 华为诺亚方舟实验室
第39篇:滴滴实习生|| 深度强化学习方向
第37篇:Call For Papers# IJCNN2020-DeepRL
第36篇:复现"深度强化学习"论文的经验之谈
第35篇:α-Rank算法之DeepMind及Huawei改进
第34篇:从Paper到Coding, DRL挑战34类游戏
第31篇:强化学习,路在何方?
第30篇:强化学习的三种范例
第29篇:框架ES-MAML:进化策略的元学习方法
第28篇:138页“策略优化”PPT--Pieter Abbeel
第27篇:迁移学习在强化学习中的应用及最新进展
第26篇:深入理解Hindsight Experience Replay
第25篇:10项【深度强化学习】赛事汇总
第24篇:DRL实验中到底需要多少个随机种子?
第23篇:142页"ICML会议"强化学习笔记
第22篇:通过深度强化学习实现通用量子控制
第21篇:《深度强化学习》面试题汇总
第20篇:《深度强化学习》招聘汇总(13家企业)
第19篇:解决反馈稀疏问题之HER原理与代码实现
第17篇:AI Paper | 几个实用工具推荐
第16篇:AI领域:如何做优秀研究并写高水平论文?
第15篇:DeepMind开源三大新框架!
第13篇:OpenSpiel(28种DRL环境+24种DRL算法)
第11篇:DRL在Unity自行车环境中配置与实践
第8篇:ReinforceJS库(动态展示DP、TD、DQN)
第5篇:深度强化学习在阿里巴巴的技术演进
第4篇:深度强化学习十大原则
第2篇:深度强化学习的加速方法