强化学习的学习之路(二十五)_2021-01-25:Distributional DQN:Implicit Quantile Networks for Distributional RL

作为一个新手,写这个强化学习-基础知识专栏是想和大家分享一下自己学习强化学习的学习历程,希望对大家能有所帮助。这个系列后面会不断更新,希望自己在2021年能保证平均每日一更的更新速度,主要是介绍强化学习的基础知识,后面也会更新强化学习的论文阅读专栏。本来是想每一篇多更新一点内容的,后面发现大家上CSDN主要是来提问的,就把很多拆分开来了(而且这样每天任务量也小一点哈哈哈哈偷懒大法)。但是我还是希望知识点能成系统,所以我在目录里面都好按章节系统地写的,而且在github上写成了书籍的形式,如果大家觉得有帮助,希望从头看的话欢迎关注我的github啊,谢谢大家!另外我还会分享深度学习-基础知识专栏以及深度学习-论文阅读专栏,很早以前就和小伙伴们花了很多精力写的,如果有对深度学习感兴趣的小伙伴也欢迎大家关注啊。大家一起互相学习啊!可能会有很多错漏,希望大家批评指正!不要高估一年的努力,也不要低估十年的积累,与君共勉!

接下来的几个博客将会分享以下有关DQN算法及其改进,包括DQN(Nature)、Double DQN、 Multi-step DQN、Pirority Replay Buffer、 Dueling DQN、DQN from Demonstrations、Distributional DQN、Noisy DQN、Q-learning with continuous actions、Rainbow、Practical tips for DQN等。

我们在对比value-based和policy-based的方法的时候,都会提到说value-based的方法只能做出确定性的策略,而policy-based的方法可以做出动态的策略,这是因为我们用来评价每一个 s , a s, a s,a 的信息只有 Q ( s , a ) Q(s, a) Q(s,a),也就是 E [ Z ( s , a ) ] , \mathbb{E}[Z(s, a)], E[Z(s,a)], 连方差都没有, 自然也只能做出动态的策略。

而Risk-Sensitive强化学习指的是我们在针对相同的 Z ( s , a ) Z(s, a) Z(s,a) 分布时, 根据不同的偏好, 应该做出不同的动作。我们把对待风险两种不同的态度成为risk-averse和risk-seeking, 接下来,我们用一种正式的数学语言来描述它们。描述这种偏好的公理被成为独立性,它有两个版本。

  • 版本一
    如果有两个随机变量 X , Y X, Y X,Y, 我们相比 Y Y Y 更偏好 X X X, 写作 X ≻ Y X \succ Y XY, 那么这代表对任何随 机变量 Z , X Z, X Z,X Z Z Z 的混合都优于 Y Y Y Z Z Z 的混合, 这种 “优于" 表示为
    α F X + ( 1 − α ) F Z ≥ α F Y + ( 1 − α ) F Z , ∀ α ∈ [ 0 , 1 ] \alpha F_{X}+(1-\alpha) F_{Z} \geq \alpha F_{Y}+(1-\alpha) F_{Z}, \forall \alpha \in[0,1] αFX+(1α)FZαFY+(1α)FZ,α[0,1]
    在这种情况下,我们可以找到一个效用函数 U U U 来描述这种偏好,那么策略可以表示为
    π ( x ) = arg ⁡ max ⁡ a E Z ( x , a ) [ U ( z ) ] \pi(x)=\underset{a}{\arg \max } \underset{Z(x, a)}{\mathbb{E}}[U(z)] π(x)=aargmaxZ(x,a)E[U(z)]

  • 版本二

    如果有两个随机变量 X , Y X, Y X,Y, 我们相比 Y Y Y 更偏好 X X X, 写作 X ≻ Y X \succ Y XY, 那么这代表对任何随 机变量 Z , X Z, X Z,X Z Z Z 的混合都优于 Y Y Y Z Z Z 的混合, 这种 “优于" 表示为
    α F X − 1 + ( 1 − α ) F Z − 1 ≥ α F Y − 1 + ( 1 − α ) F Z − 1 , ∀ α ∈ [ 0 , 1 ] \alpha F_{X}^{-1}+(1-\alpha) F_{Z}^{-1} \geq \alpha F_{Y}^{-1}+(1-\alpha) F_{Z}^{-1}, \forall \alpha \in[0,1] αFX1+(1α)FZ1αFY1+(1α)FZ1,α[0,1]
    在这种情况下,我们可以找到一个distortion risk measure h h h 来描述这种偏好,那么策略可以表示为
    π ( x ) = arg ⁡ max ⁡ a ∫ − ∞ ∞ z ∂ ∂ z ( h ∘ F Z ( x , a ) ) ( z ) d z \pi(x)=\underset{a}{\arg \max } \int_{-\infty}^{\infty} z \frac{\partial}{\partial z}\left(h \circ F_{Z(x, a)}\right)(z) d z π(x)=aargmaxzz(hFZ(x,a))(z)dz

可以证明, 这两种表示是可逆的, 也就是哪个方便按哪个来。
举个例子, 在第一个版本中, 如果 U ( x ) = x , U(x)=x, U(x)=x, 那么策略就会变成
π ( x ) = arg ⁡ max ⁡ a E Z ( x , a ) [ z ] = arg ⁡ max ⁡ a Q ( x , a ) \pi(x)=\underset{a}{\arg \max } \underset{Z(x, a)}{\mathbb{E}}[z]=\underset{a}{\arg \max } Q(x, a) π(x)=aargmaxZ(x,a)E[z]=aargmaxQ(x,a)
在第二个版本中, 如果 h ( x ) = x , h(x)=x , h(x)=x 那么策略就会变成
π ( x ) = arg ⁡ max ⁡ a ∫ − ∞ ∞ z ∂ ∂ z F Z ( x , a ) ( z ) d z = arg ⁡ max ⁡ a ∫ − ∞ ∞ z P Z ( x , a ) ( z ) d z = arg ⁡ max ⁡ a E Z ( x , a ) [ z ] = arg ⁡ max ⁡ a Q ( x , a ) \begin{aligned} \pi(x) &=\underset{a}{\arg \max } \int_{-\infty}^{\infty} z \frac{\partial}{\partial z} F_{Z(x, a)}(z) d z \\ &=\underset{a}{\arg \max } \int_{-\infty}^{\infty} z P_{Z(x, a)}(z) d z \\ &=\underset{a}{\arg \max } \underset{Z(x, a)}{\mathbb{E}}[z] \\ &=\underset{a}{\arg \max } Q(x, a) \end{aligned} π(x)=aargmaxzzFZ(x,a)(z)dz=aargmaxzPZ(x,a)(z)dz=aargmaxZ(x,a)E[z]=aargmaxQ(x,a)
不难证明, ∫ 0 1 F Z − 1 ( τ ) d β ( τ ) = ∫ − ∞ ∞ z ∂ ∂ z ( β ∘ F Z ) ( z ) d z \int_{0}^{1} F_{Z}^{-1}(\tau) d \beta(\tau)=\int_{-\infty}^{\infty} z \frac{\partial}{\partial z}\left(\beta \circ F_{Z}\right)(z) d z 01FZ1(τ)dβ(τ)=zz(βFZ)(z)dz
 令  z = F Z − 1 ( τ ) ∫ 0 1 F Z − 1 ( τ ) d β ( τ ) = z = F Z − 1 ( τ ) ∫ − ∞ ∞ z d β ( F Z ( z ) ) = ∫ − ∞ ∞ z ∂ ∂ z ( β ∘ F Z ) ( z ) d z \begin{array}{l} \text { 令 } z=F_{Z}^{-1}(\tau) \\ \int_{0}^{1} F_{Z}^{-1}(\tau) d \beta(\tau) \stackrel{z=F_{Z}^{-1}(\tau)}{=} \int_{-\infty}^{\infty} z d \beta\left(F_{Z}(z)\right) \\ =\int_{-\infty}^{\infty} z \frac{\partial}{\partial z}\left(\beta \circ F_{Z}\right)(z) d z \end{array}   z=FZ1(τ)01FZ1(τ)dβ(τ)=z=FZ1(τ)zdβ(FZ(z))=zz(βFZ)(z)dz
其中 β \beta β 是一个 [ 0 , 1 ] → [ 0 , 1 ] , [0,1] \rightarrow[0,1], [0,1][0,1], 被称为distortion risk measure, 我们定义基于 β \beta β 的 distorted expectation
Q β ( x , a ) : = E τ ∼ U ( [ 0 , 1 ] ) [ Z β ( τ ) ( x , a ) Q_{\beta}(x, a):=\underset{\tau \sim U([0,1])}{\mathbb{E}}\left[Z_{\beta(\tau)}(x, a)\right. Qβ(x,a):=τU([0,1])E[Zβ(τ)(x,a)
其中 Z τ : = F Z − 1 ( τ ) , Z_{\tau}:=F_{Z}^{-1}(\tau), Zτ:=FZ1(τ), 显然
Q β ( x , a ) : = E τ ∼ U ( [ 0 , 1 ] ) [ Z β ( τ ) ( x , a ) ] = ∫ 0 1 F Z − 1 ( τ ) d β ( τ ) Q_{\beta}(x, a):=\underset{\tau \sim U([0,1])}{\mathbb{E}}\left[Z_{\beta(\tau)}(x, a)\right]=\int_{0}^{1} F_{Z}^{-1}(\tau) d \beta(\tau) Qβ(x,a):=τU([0,1])E[Zβ(τ)(x,a)]=01FZ1(τ)dβ(τ)
这就把 Q β ( x , a ) Q_{\beta}(x, a) Qβ(x,a) 和前面的风险偏好联系起来了。
最后,策略可以表示为:
π β ( x ) = arg ⁡ max ⁡ a ∈ A ∫ − ∞ ∞ z ∂ ∂ z ( β ∘ F Z ) ( z ) d z = arg ⁡ max ⁡ a ∈ A ∫ 0 1 F Z − 1 ( τ ) d β ( τ ) = arg ⁡ max ⁡ a ∈ A τ ∼ U ( [ 0 , 1 ] ) [ Z β ( τ ) ( x , a ) ] = arg ⁡ max ⁡ a ∈ A Q β ( x , a ) \begin{aligned} \pi_{\beta}(x) &=\underset{a \in \mathcal{A}}{\arg \max } \int_{-\infty}^{\infty} z \frac{\partial}{\partial z}\left(\beta \circ F_{Z}\right)(z) d z \\ &=\underset{a \in \mathcal{A}}{\arg \max } \int_{0}^{1} F_{Z}^{-1}(\tau) d \beta(\tau) \\ &=\underset{a \in \mathcal{A}}{\arg \max }_{\tau \sim U([0,1])}\left[Z_{\beta(\tau)}(x, a)\right] \\ &=\underset{a \in \mathcal{A}}{\arg \max } Q_{\beta}(x, a) \end{aligned} πβ(x)=aAargmaxzz(βFZ)(z)dz=aAargmax01FZ1(τ)dβ(τ)=aAargmaxτU([0,1])[Zβ(τ)(x,a)]=aAargmaxQβ(x,a)
接下来再让我们看看不同的 β \beta β 就起到什么不同的效果。
整理而言,当 β \beta β 为凸函数时,偏好是risk-averse的,当 β \beta β 为凹函数时,偏好是risk-seeking 的。
有一些现成的函数可以作为 β \beta β

  • CPW函数:
    CPW ⁡ ( η , τ ) = τ η ( τ η + ( 1 − τ ) η ) 1 η \operatorname{CPW}(\eta, \tau)=\frac{\tau^{\eta}}{\left(\tau^{\eta}+(1-\tau)^{\eta}\right)^{\frac{1}{\eta}}} CPW(η,τ)=(τη+(1τ)η)η1τη

  • Wang函数:

    (其中 Φ \Phi Φ 是标准正态分布的CDF函数)
    Wang ⁡ ( η , τ ) = Φ ( Φ − 1 ( τ ) + η ) \operatorname{Wang}(\eta, \tau)=\Phi\left(\Phi^{-1}(\tau)+\eta\right) Wang(η,τ)=Φ(Φ1(τ)+η)

  • Pow函数:
    Pow ⁡ ( η , τ ) = { τ 1 1 + ∣ η ∣ ,  if  η ≥ 0 1 − ( 1 − τ ) 1 1 + ∣ η ∣ ,  otherwise  \operatorname{Pow}(\eta, \tau)=\left\{\begin{array}{ll}\tau^{\frac{1}{1+|\eta|}}, & \text { if } \eta \geq 0 \\ 1-(1-\tau)^{\frac{1}{1+|\eta|}}, & \text { otherwise }\end{array}\right. Pow(η,τ)={τ1+η1,1(1τ)1+η1, if η0 otherwise 

  • conditional value-at-risk函数:
    C V a R ( η , τ ) = η τ \mathrm{CVaR}(\eta, \tau)=\eta \tau CVaR(η,τ)=ητ

    这些函数的 η \eta η 都可以看作是超参数, 而 τ \tau τ 则是自变量, 例如 β ( τ ) = Wang ⁡ ( . 75 , τ ) \beta(\tau)=\operatorname{Wang}(.75, \tau) β(τ)=Wang(.75,τ)

下面是有关这些函数的图像
在这里插入图片描述

第二列的Neutral是原始的 Z ( s , a ) Z(s, a) Z(s,a) 的分布, 而其他列的图像都是经过加工后的 Z β ( s , a ) Z_{\beta}(s, a) Zβ(s,a) 的图 像。
可以看到, 这些不同的 β \beta β 有些对风险比较积极, 例如 Wang ⁡ ( . 75 ) \operatorname{Wang}(.75) Wang(.75), 而有些则很保守, 只集中 在原分布中值比较大的部分,例如 C P W ( . 71 ) \mathrm{CPW}(.71) CPW(.71)
最后,让我们步入正题, 看看IQN是怎么训练的。
下面的图很好的描绘来DQN, C51,QR-DQN和IQN的区别。

在这里插入图片描述

C51, QR-DQN和IQN都是想去学习一个分布, 但是它们的方式并不一样:

C51和QR-DQN是去找到了一种间接的方式去表示这个分布,也就是用atoms的方式。
而IQN更像是直接的学出了这个分布。

IQN的输入和输出是什么呢?
它是输入是状态 s , s, s, 和采样 τ ∼ U [ 0 , 1 ] , \tau \sim U[0,1], τU[0,1], 而输出和DQN很像, 是一个 ∣ A ∣ |\mathcal{A}| A 维的向量。
区别在于, DQN只能输出每个动作的期望, 而IQN可以根据输入的 τ \tau τ, 输出每个动作的 τ \tau τ 分位数。
这样看来, IQN和C51,QR-DQN的不同之处在于,它不在想办法表示这个分布,它直接就是这个 分布!
那这个前面提到的Risk-Sensitive强化学习有什么关系呢?
试想,如果我们可以学习出 Z τ ( x , a ) Z_{\tau}(x, a) Zτ(x,a), 那么不就可以计算出对于任何 β \beta β Q β ( x , a ) Q_{\beta}(x, a) Qβ(x,a) 了吗? 这样我们就可以在作出决定的时候根据我们的偏好,而不是只能根据期望 Q ( x , a ) Q(x, a) Q(x,a) 去计算。

这个网络怎么训练呢?

首先还是从Buffer中拿到采样 ( s , a , r , s ′ ) \left(s, a, r, s^{\prime}\right) (s,a,r,s)

接下来我们要根据 s ′ s^{\prime} s 选出最好的动作 a ∗ a^{*} a

但是, 这里我们不再用 Z ( x , a ) Z(x, a) Z(x,a) 算出 Q ( x , a ) Q(x, a) Q(x,a) 选择了,而是应该加入偏好 β , \beta, β, 当然, 如果没 有特殊的偏好, 令 β ( x ) = x \beta(x)=x β(x)=x 即可。

我们需要事先设定一个超参数 K K K, 用来决定计算 Q β ( x , a ) Q_{\beta}(x, a) Qβ(x,a) 的采样次数, 于是

Q β ( x ′ , a ′ ) = 1 K ∑ k K Z τ ~ k ( x ′ , a ′ ) Q_{\beta}\left(x^{\prime}, a^{\prime}\right)=\frac{1}{K} \sum_{k}^{K} Z_{\tilde{\tau}_{k}}\left(x^{\prime}, a^{\prime}\right) Qβ(x,a)=K1kKZτ~k(x,a)
其中

τ ~ k ∼ β ( ⋅ ) \tilde{\tau}_{k} \sim \beta(\cdot) τ~kβ()
于是

a ∗ ← arg ⁡ max ⁡ a ′ 1 K ∑ k K Z τ ~ k ( x ′ , a ′ ) , τ ~ k ∼ β ( ⋅ ) a^{*} \leftarrow \arg \max _{a^{\prime}} \frac{1}{K} \sum_{k}^{K} Z_{\tilde{\tau}_{k}}\left(x^{\prime}, a^{\prime}\right), \quad \tilde{\tau}_{k} \sim \beta(\cdot) aargmaxaK1kKZτ~k(x,a),τ~kβ()
接下来我们要缩短 Z ( x , a ) Z(x, a) Z(x,a) r + γ Z ( x ′ , a ∗ ) r+\gamma Z\left(x^{\prime}, a^{*}\right) r+γZ(x,a) 这两个分布之间的距离。

但是我们现在没有某种表示去表示这个分布了,我们的网络就是分布本身。
因此我们需要从网络中采样,来估计这两个分布。我们又引入两个超参数 N , N ′ , N, N^{\prime}, N,N, 分别代表估 计这两个分布所需要的采样次数,于是有
τ i , τ j ′ ∼ U ( [ 0 , 1 ] ) , 1 ≤ i ≤ N , 1 ≤ j ≤ N ′ \tau_{i}, \tau_{j}^{\prime} \sim U([0,1]), \quad 1 \leq i \leq N, 1 \leq j \leq N^{\prime} τi,τjU([0,1]),1iN,1jN
对于两个单独的 τ i , τ j ′ , \tau_{i}, \tau_{j}^{\prime}, τi,τj, 它们之间的差表示为
δ t τ i , τ j ′ = r t + γ Z τ j ′ ( x t + 1 , π β ( x t + 1 ) ) − Z τ i ( x t , a t ) \delta_{t}^{\tau_{i}, \tau_{j}^{\prime}}=r_{t}+\gamma Z_{\tau_{j}^{\prime}}\left(x_{t+1}, \pi_{\beta}\left(x_{t+1}\right)\right)-Z_{\tau_{i}}\left(x_{t}, a_{t}\right) δtτi,τj=rt+γZτj(xt+1,πβ(xt+1))Zτi(xt,at)
那么总的差值就是
L ( x t , a t , r t , x t + 1 ) = 1 N ′ ∑ i = 1 N ∑ j = 1 N ′ ρ τ i κ ( δ t τ i , τ j ′ ) \mathcal{L}\left(x_{t}, a_{t}, r_{t}, x_{t+1}\right)=\frac{1}{N^{\prime}} \sum_{i=1}^{N} \sum_{j=1}^{N^{\prime}} \rho_{\tau_{i}}^{\kappa}\left(\delta_{t}^{\tau_{i}, \tau_{j}^{\prime}}\right) L(xt,at,rt,xt+1)=N1i=1Nj=1Nρτiκ(δtτi,τj)
我们没有用 ( δ t τ i , τ j ′ ) 2 \left(\delta_{t}^{\tau_{i}, \tau_{j}^{\prime}}\right)^{2} (δtτi,τj)2 而是用 ∣ δ t τ i , τ j ′ ∣ \left|\delta_{t}^{\tau_{i}, \tau_{j}^{\prime}}\right| δtτi,τj 这是因为我们本质上还是在做分位数回归, 而不是标准的回归。
最后, ρ τ i κ \quad \rho_{\tau_{i}}^{\kappa} ρτiκ 表示的是绝对值函数的软化, 我们在上一篇博客中提到过:

最终的算法如下

在这里插入图片描述
上一篇:强化学习的学习之路(二十四)_2021-01-24:Distributional DQN:Distributional RL with Quantile Regression
下一篇:强化学习的学习之路(二十六)_2021-01-26: Noisy DQN

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页