值分布强化学习

参考:
https://zhuanlan.zhihu.com/p/65116688
https://blog.csdn.net/weixin_41168254/article/details/90382466

三篇论文

  • C51
  • QR-DRL
  • IQN

1. 什么是值分布强化学习

  • 首先看看经典强化学习:(X,A,R,P,γ),状态转移矩阵P(·|x, a),策略π(·|x)

(1)折扣累积回报其实是一个随机变量,就是在相同输入的时候,可能会取不同的值。

(2)行为值函数是回报的期望,以及其Bellman方程表达形式:

(3)强化学习的目标是找到最优点的策略π,以最大化行为值函数,就是在所有x,a对,对于所有的π,有:
  • 那什么是值分布强化学习?

(1)折扣累积回报Z是一个随机变量,随机变量是有分布的,包含的信息比常规强化学习求出来的的均值要包含更多更多的信息量,包含更多和环境交互的信息,或许就是传统强化学习收敛难,不鲁棒,样本效率低,训练难的问题原因。

(2)考虑这些分布信息,重新形式化强化学习,首先确认Z确实是一个随机变量。影响因素:①随机性环境(状态转移的随机性、状态表示的混叠效应),②随机性策略,③神经网络的函数逼近将无穷大的状态空间编码成有限的状态特征,那么同一个特征对应不同状态可能会有不同的折扣累计回报,使得Z变成了随机变量(这也是为什么神经网络没有表格型方法那么好收敛,同时也是为什么值分布强化学习在Deep RL里效果明显)。

(3)值分布强化学习领域大神:Marc G. Bellemare,DeepMind写出了C51的那个一作

2. 值分布强化学习经典论文

2.1 C51算法

  • 论文:《A Distributional Perspective on Reinforcement Learning》
  • 地址:https://arxiv.org/abs/1707.06887
  • DeepMind ICML 2017
  • 主题:价值分布方法超越所有传统强化学习

问题:我们要优化的回报期望Z实际上是个有分布的随机变量,经典强化学习优化值分布的均值,忽略了分布的信息。

A. 重要概念

  • Bellman操作符(操作符是一个运算,Bellman操作符实际就是一个迭代更新运算),和Bellman最优操作符:

    有一个命题:固定策略π对应的Bellman操作符和Bellman最优操作符都是收缩映射。意思是最终的行为值函数Q都会收敛都爱一个固定点Q*。

  • Bellman操作符几何解释:状态空间X,动作空间A,行为值函数Q(X,A)是|X|*|A|的向量,是一个超曲面,Bellman算子做的就是把上面的点Q映射到TQ。
  • 值分布Bellman操作符:将一个随机变量映射成另外一个随机变量,即将一个分布映射成另外一个分布。

    同样也有一个引理:值分布Bellman操作符在在Wasserstein度量下是γ收缩的,但并不能保证收敛到固定点。

  • 值分布Bellman操作符的几何解释:先定义转移操作符

    接下来的分别展示①下一个Z(x,a)的概率分布(蓝色),②乘以收缩因子(紫色),③通过Bellman算子计算下一个目标概率分布(绿色,因为有常数R所以有平移),④整体投射步骤(橙色)。

B. C51算法核心

分为两步:
(1)启发式投影
(2)最小化投影后的Bellman更新分布与预测分布之间的KL散度。

  • 参数化分布:因为折扣累积回报Z(x,a)是一个分布,C51表示这个分布的方法是对随机变量空间离散化,并假设这个随机变量的值范围[Vmin, Vmax],均匀离散化为N个点,每个等分的支集(指的是那些使得概率不为0的点)为

    所以可以对概率分布作参数化建模:
    用图形象的表示参数化过程:就是说神经网络的输出对应着相应的随机变量的概率。
  • 投影贝尔曼更新:根据上述值分布Bellman操作算子的几何展示过程,我们可以发现,投影后的分布可能会超出投影前离散化支集的范围?所以我们必须把Bellman操作符更新后的随机变量投影到离散化的支集上。(这里没太懂)。具体计算一下,给一个样本单元(x, a, r, x'),对每个支点(共N个)计算Bellman更新:

    然后将(x', π(x'))处的每个支点zj的值分布概率pj(x', π(x'))分配给Bellman算子TZ相邻的支点,所以每个支点所分得的概率为
    这就是Bellman投影更新。用图来表示投影过程:
    (x',a')对应得支点是z0,所以p0分别投影到Tz0相邻支点z0和z1,z0分得大小是

    经过上面得投影后,我们就会在每个(x,a)得到新得分布,利用新的分布和旧的分布构建KL散度作为损失函数来训练参数化的值分布,即损失函数为

C. C51伪代码

C51

D. C51与DQN对比

  • 相同点
    (1)C51算法的框架依然是DQN算法
    (2)采样过程依然使用 [公式] 策略,这里贪婪是取期望贪婪
    (3)采用单独的目标网络
  • 不同点
    (1)C51算法的卷积神经网络的输出不再是行为值函数,而是支点处的概率
    (2)C51算法的损失函数不再是均方差和而是如上所述的KL散度
  • The End:因为在论文中,作者将随机变量的取值分成了51个支点类的时候效果最好,所以算法叫做C51

2.2 QR-DRL

  • 论文:《Distributional Reinforcemet Learning with Quantile Regression》
  • 地址:https://arxiv.org/abs/1710.10044
  • Deep Mind团队联合剑桥大学在2017年提出
  • 主题:基于分位数回归的分布强化学习(QR-DRL)以学习回报值的概率分布来代替学习回报值的期望值。

A. 重要概念

  • Distributional RL(分布强化学习):Z是表示未来总折扣收益的随机变量,分布式Bellman算子TZ,C51先建立一个离散分布,由logit模型表示,通过一个投影操作将目标TZ投影到有限个支撑位置上,最后通过一个KL最小化步骤进行更新
  • The Wasserstein Metric(瓦瑟斯坦度量):与Kullback-Leibler(KL)散度不同,Wasserstein度量是一个真实的概率度量,它同时考虑各种结果事件的概率和它们之间的距离。C51证明分布式Bellman算子是概率分布之间的Wasserstein度量极大形式的收缩。但Wasserstein度量作为一种损失,是无法由随机梯度下降来进行最小化的。

    FY是Y的累积分布函数(CDF)。两个CDF间的区域即为1-Wasserstein距离:
    但Bellemare等人证明了Wasserstein度量无法由随机梯度下降进行最小化。QR-DQN给出了答案
  • Quantile Regression(分位数回归): 回想一下C51近似分布的做法是给固定位置zi分配不同的概率qi。而Deep Mind将此方法进行了“转置”:位置不同而概率固定,即qi=1/N,i=1,…,N。这种新的近似方法目的在于估计目标分布的quantiles(分位数),因此称之为分位数分布,用ZQ表示固定N的分位数分布。
    参数化模型θ:


    一个分位数模型Zθ∈ZQ将每一个状态动作对(s,a)映射到一个均匀概率分布上,此概率分布由θ支撑:
    好处有三个:
    ①不再受限于预先确定的支撑的界限,当回报值的范围很大时,能够进行更精确的预测
    ②避免了C51中的投影操作
    ③这种再参数化允许我们使用分位数回归来最小化Wasserstein损失,而不受有偏梯度的影响。

分位数回归:先对值分布Z投影到ZQ进行量化

设Y是第一矩有界的分布,U为N个狄拉克函数组成的均匀分布,支撑为{θ1,θ2,...,θN},那么
根据引理2
我们最小化W1(Y,U)的
为了解决有偏梯度问题,使用了分位数回归来进行分位数函数的无偏随机逼近。对于一个分布Z以及一个给定的分位数t,分位数函数Fz^-1的值能够由分位数回归存世的最小化来体现,
得到下面一行的优化目标
image.png
特别是,这种损失给出了无偏样本梯度。因此,我们可以通过随机梯度下降来找到最小化支撑{θ1,θ2,...,θN},进一步的也有平滑版本的Quantile Huber Loss:

QR-DQN 大题思路

  • 利用一个参数化的分位数分布来近似动作值分布,分位数分布由一系列lemma 2定义的分位数中点形成。然后使用分位数回归来训练位置参数。
  • 由此提出quantileregression temporal difference learning (QRTD) 算法
  • 将QRTD应用到DQN上,形成QR-DQN算法,分布贝尔曼算子:

QR-DQN伪代码

  • 相比较DQN修改了三处:
    (1)输出层尺寸改为|A|*|N|,N为分位数目标的数目。
    (2)目标函数改为Quantile Huber Loss。
    (3)使用Adam代替RMSProp


    QR-DQN

    随着N的增加,值分布的估计精度也增加。

2.3 IQN

https://zhuanlan.zhihu.com/p/60949506

如何参数化收益分布是基于分布的强化学习算法(distributional reinforcement learning)的核心问题,现有工作中对分布的拟合往往是在固定的几个点上。

  • 比如,在最早提出的 C51 算法中,计算了总收益为-10到10之间均匀分布的51个值的各自的概率。
  • 而在随后的 QR-DQN 工作中,目标从概率分布函数成为了拟合累积分布函数,计算在0到1之间均匀分布的分位点概率(quantile fraction)所对应的分位点值(quantile value)。这些均匀分布的位置显然对拟合分布是有很大限制的,并没有将分布完全的参数化表示。
  • 因此随后提出的 IQN,对随机采样的分位点概率进行拟合,在网络中建模了从分位点概率到分位点值的映射,效果也十分明显,超越了过去所有的算法。

你可能感兴趣的:(值分布强化学习)