作为一个新手,写这个强化学习-基础知识专栏是想和大家分享一下自己学习强化学习的学习历程,希望对大家能有所帮助。这个系列后面会不断更新,希望自己在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 X≻Y, 那么这代表对任何随 机变量 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 X≻Y, 那么这代表对任何随 机变量 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] αFX−1+(1−α)FZ−1≥αFY−1+(1−α)FZ−1,∀α∈[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)=aargmax∫−∞∞z∂z∂(h∘FZ(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)=aargmax∫−∞∞z∂z∂FZ(x,a)(z)dz=aargmax∫−∞∞zPZ(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
∫01FZ−1(τ)dβ(τ)=∫−∞∞z∂z∂(β∘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=FZ−1(τ)∫01FZ−1(τ)dβ(τ)=z=FZ−1(τ)∫−∞∞zdβ(FZ(z))=∫−∞∞z∂z∂(β∘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τ:=FZ−1(τ), 显然
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)]=∫01FZ−1(τ)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)=a∈Aargmax∫−∞∞z∂z∂(β∘FZ)(z)dz=a∈Aargmax∫01FZ−1(τ)dβ(τ)=a∈Aargmaxτ∼U([0,1])[Zβ(τ)(x,a)]=a∈AargmaxQβ(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′)=K1∑kKZτ~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)
a∗←argmaxa′K1∑kKZτ~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,τj′∼U([0,1]),1≤i≤N,1≤j≤N′
对于两个单独的
τ
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)=N′1∑i=1N∑j=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