p
(
s
t
+
1
∣
s
t
,
a
t
)
p(s_{t+1}|s_{t},a_{t})
p(st+1∣st,at)
状态转移函数
见下
Q
π
(
s
t
,
a
t
)
Q_{\pi}(s_{t},a_{t})
Qπ(st,at)
动作价值函数
见下
Q
⋆
(
s
,
a
)
Q_{\star}(s,a)
Q⋆(s,a)
最优动作价值函数
最好的随机策略函数
π
\pi
π对应的动作价值函数
状态转移函数:
条件概率密度函数,在
s
t
s_{t}
st 状态下执行
a
t
a_{t}
at 操作,转移到
s
t
+
1
s_{t+1}
st+1 的概率,对于贪吃蛇来说,随机性来自于可能吃掉了食物,出现新的食物,换言之如果没有吃掉食物,在给定条件下下一个状态是确定的,也就是只有一个
s
t
+
1
s_{t+1}
st+1 的值为
1
1
1,其他都为
0
0
0
动作价值函数:
完成
t
t
t 时刻决策后,我们希望估计局势,也就是接下来回报的期望,显然当我们确定了该时刻的状态和动作后,之后的行为可以唯一确认之后的回报,而之后的行为只与随机策略函数
π
\pi
π有关(我们认为状态转移函数
p
p
p是固定的)
符号说明: 若下文出现花体字符,他们的意义是对应的全体可行集合
策略学习与价值学习
策略学习
直接学习策略函数
π
\pi
π,然后让智能体概率采样地执行。
价值学习
我们越过策略函数直接学习最优价值函数,然后让智能体每一步都执行最优价值函数最高的动作。例如在
s
s
s 状态下
Q
⋆
(
s
t
,
a
t
)
≈
r
t
+
γ
⋅
max
a
∈
A
Q
⋆
(
s
t
+
1
,
a
)
Q_{\star}\left(s_{t}, a_{t}\right) \approx r_{t}+\gamma \cdot \max _{a \in \mathcal{A}} Q_{\star}\left(s_{t+1}, a\right)
Q⋆(st,at)≈rt+γ⋅a∈AmaxQ⋆(st+1,a)
然而等号右边还包含了一个确定的事实值
r
t
r_t
rt,所以等号右边的事实程度要更高一些,于是我们把右侧全体看作一个部分事实输出去做学习,这就是TD算法,这是一种自举算法(自己更新自己)
训练过程
与环境交互得到四元组
(
s
t
,
a
t
,
r
t
,
s
t
+
1
)
(s_t,a_t,r_t,s_{t+1})
(st,at,rt,st+1),每个四元组就是一个样本,也是最优贝尔曼方程中所有与环境相关的值,对于每一个样本就是代入 Q 函数中,(右侧需要枚举多个 Q 函数取最大值),然后执行梯度下降
δ
=
Q
⋆
(
s
t
,
a
t
)
−
[
r
t
+
γ
⋅
max
a
∈
A
Q
⋆
(
s
t
+
1
,
a
)
]
\delta = Q_{\star}\left(s_{t}, a_{t}\right) - [r_{t}+\gamma \cdot \max _{a \in \mathcal{A}} Q_{\star}\left(s_{t+1}, a\right)]
δ=Q⋆(st,at)−[rt+γ⋅a∈AmaxQ⋆(st+1,a)]
y
~
t
⏟
双
Q
学习
≤
y
^
t
−
⏟
用目标网络的
Q
学习
\underbrace{\tilde{y}_{t}}_{\text {双 } \mathrm{Q} \text { 学习 }} \leq \underbrace{\widehat{y}_{t}^{-}}_{\text {用目标网络的 } \mathrm{Q} \text { 学习 }}
双Q学习y~t≤用目标网络的Q学习yt−
而这恰恰就是我们想要的,缓解最大化造成的高估
训练过程
和目标网络是基本一致的,最后仍然是一个加权平均
另外以上方法中,双Q算法是效果最好的
对决网络
以上是学习方法,接下来介绍两种对神经网络结构的改进
对决网络将 DQN 拆分成两部分 最优优势函数
D
⋆
(
s
,
a
)
D_{\star}(s,a)
D⋆(s,a) 和 最优状态价值函数
V
⋆
(
s
)
V_{\star}(s)
V⋆(s)
先给出直观的理解:
最优状态价值函数
V
⋆
(
s
)
V_{\star}(s)
V⋆(s) 描述的是一个状态本身的优劣,它对所有动作取平均
即
V
π
(
s
)
V_{\pi}(s)
Vπ(s) 是
Q
π
(
s
,
a
)
Q_{\pi}(s, a)
Qπ(s,a) 其中当步
a
a
a 按照
π
\pi
π 决策的期望,最优就是选取最优的
π
\pi
π,类似
Q
⋆
Q_{\star}
Q⋆ 和
Q
π
的差别
Q_{\pi} 的差别
Qπ的差别
优势函数则是
a
a
a 动作较期望动作的优势,最优则是最优相对最优的优势
即
D
⋆
(
s
,
a
)
=
Q
⋆
(
s
,
a
)
−
V
⋆
(
s
)
D_{\star}(s,a) = Q_{\star}\left(s, a\right) - V_{\star}(s)
D⋆(s,a)=Q⋆(s,a)−V⋆(s)
容易证明
Q
⋆
(
s
,
a
)
=
V
⋆
(
s
)
+
D
⋆
(
s
,
a
)
−
max
a
∈
A
D
⋆
(
s
,
a
)
⏟
恒等于零
,
∀
s
∈
S
,
a
∈
A
Q_{\star}(s, a)=V_{\star}(s)+D_{\star}(s, a)-\underbrace{\max _{a \in \mathcal{A}} D_{\star}(s, a)}_{\text {恒等于零 }}, \quad \forall s \in \mathcal{S}, a \in \mathcal{A}
Q⋆(s,a)=V⋆(s)+D⋆(s,a)−恒等于零a∈AmaxD⋆(s,a),∀s∈S,a∈A
因为最优的时候,
π
\pi
π 一定能正确地唯一选到期望最大的动作,此时
D
D
D 也必须选到那个
a
a
a 才能让这个“优势”为0,否则就是负数
我们的网络就可以定义为
Q
(
s
,
a
;
w
)
≜
V
(
s
;
w
V
)
+
D
(
s
,
a
;
w
D
)
−
max
a
∈
A
D
(
s
,
a
;
w
D
)
Q(s, a ; \boldsymbol{w}) \triangleq V\left(s ; \boldsymbol{w}^{V}\right)+D\left(s, a ; \boldsymbol{w}^{D}\right)-\max _{a \in \mathcal{A}} D\left(s, a ; \boldsymbol{w}^{D}\right)
Q(s,a;w)≜V(s;wV)+D(s,a;wD)−a∈AmaxD(s,a;wD)
其中我们预期的结果中
max
a
∈
A
D
(
s
,
a
;
w
D
)
\max _{a \in \mathcal{A}} D\left(s, a ; \boldsymbol{w}^{D}\right)
maxa∈AD(s,a;wD) 应该是
0
0
0,所以这个 max 看似可以删除,但其实不可以
直接说结论就是它可以让结果唯一,若去掉这一项,存在这样一种情况,
V
V
V 和
D
D
D 相对应地增大减少,总结果是不变的,结果就是这两个网络很难收敛,比如两个锯齿状的网络,和两个平滑的网络,都可以使得结果正确,没有一个可以稳定收敛的位置
而加上 max 我的理解是它可以过滤掉这种波动,因为 max 的存在,在学习过程中,这种对应性的相消是很难同步的,为了互相迁就,它会趋向某一个由初值决定的固定的偏差,网络就会收敛到一个固定的位置了