马尔可夫模型、DQN算法回顾(2024-1-15~2024-1-17)
马尔可夫决策
1.流程图
2.马尔可夫性质
P ( s t + 1 ∣ s t ) = P ( s t + 1 ∣ s 0 , s 1 , ⋯ , s t ) (2.2) \tag{2.2} P(s_{t+1}|s_t) = P(s_{t+1}|s_0, s_1,\cdots,s_t) P(st+1∣st)=P(st+1∣s0,s1,⋯,st)(2.2)
在给定的历史状态
s 0 , s 1 , ⋯ , s t s_0, s_1,\cdots,s_t s0,s1,⋯,st
的情况下,某个状态的未来只与当前状态
s t s_t st
有关系,于历史状态无关。因为这允许我们在没有考虑系统完整历史的情况下预测和控制其行为
3.回报(return)
G t = r t + 1 + r t + 2 + ⋯ + r T (2.3) \tag{2.3} G_t = r_{t+1} + r_{t+2} + \cdots + r_T Gt=rt+1+rt+2+⋯+rT(2.3)
T表示最后一个时步。该公式只适合有限步数的情况。有的任务例如人造卫星在太空工作需要直到报废才停止,则为持续性任务。此时
T
=
∞
T=\infty
T=∞
为了解决这种问题,引入一个折扣因子(discount factor)
γ
\gamma
γ,表达式如下
G t = r t + 1 + γ r t + 2 + ⋯ = ∑ k = 0 ∞ γ k r t + k + 1 (2.4) \tag{2.4} G_t = r_{t+1} + \gamma r_{t+2} + \cdots = \sum_{k=0}^{\infty}\gamma^k r_{t+k+1} Gt=rt+1+γrt+2+⋯=k=0∑∞γkrt+k+1(2.4)
其中
0
≤
γ
≤
1
0\leq \gamma \leq 1
0≤γ≤1。
γ
\gamma
γ越大,对未来的奖励越重视,反之越小。
这样做的好处是会让当前时步的回报
G
t
G_t
Gt 跟下一个时步
G
t
+
1
G_{t+1}
Gt+1 的回报是有所关联的,
G t ≐ r t + 1 + γ r t + 2 + γ 2 r t + 3 + γ 3 r t + 4 + ⋯ = r t + 1 + γ ( r t + 2 + γ r t + 3 + γ 2 r t + 4 + ⋯ ) = r t + 1 + γ G t + 1 (2.5) \tag{2.5} \begin{aligned} G_t & \doteq r_{t+1}+\gamma r_{t+2}+\gamma^2 r_{t+3}+\gamma^3 r_{t+4}+\cdots \\ & =r_{t+1}+\gamma\left(r_{t+2}+\gamma r_{t+3}+\gamma^2 r_{t+4}+\cdots\right) \\ & =r_{t+1}+\gamma G_{t+1} \end{aligned} Gt≐rt+1+γrt+2+γ2rt+3+γ3rt+4+⋯=rt+1+γ(rt+2+γrt+3+γ2rt+4+⋯)=rt+1+γGt+1(2.5)
该公式在t<T时成立,当t=T时, G T = r T + 1 = 0 G_T=r_{T+1}=0 GT=rT+1=0,因为没有下一个时步了。
4.状态转移矩阵
P s s ′ = P ( S t + 1 = s ′ ∣ S t = s ) (2.6) \tag{2.6} P_{ss'} = P(S_{t+1}=s'|S_{t}=s) Pss′=P(St+1=s′∣St=s)(2.6)
即当前状态是
s
s
s 时,下一个状态是
s
′
s'
s′的概率,其中大写的
S
S
S 表示所有状态的集合,即
S
=
{
s
1
,
s
2
,
s
3
}
S=\{s_1,s_2,s_3\}
S={s1,s2,s3}
状态数有限,则我们可以列出状态转换矩阵,如下
P s s ′ = ( p 11 p 12 ⋯ p 1 n p 21 p 22 ⋯ p 2 n ⋮ ⋮ ⋱ ⋮ p n 1 p n 2 ⋯ p n n ) (2.7) \tag{2.7} P_{ss'}=\begin{pmatrix} p_{11} & p_{12} & \cdots & p_{1n}\\ p_{21} & p_{22} & \cdots & p_{2n}\\ \vdots & \vdots & \ddots & \vdots \\ p_{n1} & p_{n2} & \cdots & p_{nn} \end{pmatrix} Pss′= p11p21⋮pn1p12p22⋮pn2⋯⋯⋱⋯p1np2n⋮pnn (2.7)
每一行加起来为1。状态矩阵是环境的一部分,它是固定的,不会随着时间变化而变化。
在马尔可夫链的基础上增加奖励则可得到马尔可夫奖励过程(Markov reward process, MRP)。MRP是一个五元组
即用一个五元组
<
S
,
A
,
R
,
P
,
γ
>
<S,A,R,P,\gamma>
<S,A,R,P,γ> 来表示。其中
S
S
S 表示状态空间,即所有状态的集合,
A
A
A 表示动作空间,
R
R
R 表示奖励函数,
P
P
P 表示状态转移矩阵,
γ
\gamma
γ 表示折扣因子。
DQN
1.深度网络
Q表和神经网络的区别:神经网络是一个函数,只需要输入就可以表达Q表中的多个状态。
Q
(
s
i
,
a
i
;
θ
)
←
Q
(
s
i
,
a
i
;
θ
)
+
α
[
y
i
−
Q
(
s
i
,
a
i
;
θ
)
]
(7.4)
\tag{7.4} Q\left(s_{i}, a_{i} ; \theta\right) \leftarrow Q\left(s_{i}, a_{i} ; \theta\right)+\alpha[y_i-Q\left(s_{i}, a_{i} ; \theta\right)]
Q(si,ai;θ)←Q(si,ai;θ)+α[yi−Q(si,ai;θ)](7.4)
在
Q
−
l
e
a
n
r
i
n
g
Q-leanring
Q−leanring的基础上增加了 网络参数
θ
\theta
θ.
以损失函数的形式并用梯度下降的方式来求解
θ
\theta
θ.
L
(
θ
)
=
(
y
i
−
Q
(
s
i
,
a
i
;
θ
)
)
2
θ
i
←
θ
i
−
α
∇
θ
i
L
i
(
θ
i
)
(7.5)
\tag{7.5} \begin{aligned} L(\theta)=\left(y_{i}-Q\left(s_{i}, a_{i} ; \theta\right)\right)^{2} \\ \theta_i \leftarrow \theta_i - \alpha \nabla_{\theta_{i}} L_{i}\left(\theta_{i}\right) \end{aligned}
L(θ)=(yi−Q(si,ai;θ))2θi←θi−α∇θiLi(θi)(7.5)
DQN算法基于TD更新,需要判断是否为终止状态。
2.经验回放
3.目标网络
在实践中每个若干步才把每步更新的当前网络参数复制给目标网络,避免 Q Q Q值的估计发散
这样可以保证收集到足够多的"证据"。如果当前有个小批量样本导致模型对 Q Q Q 值进行了较差的过估计,如果接下来从经验回放中提取到的样本正好连续几个都这样的,很有可能导致 Q Q Q 值的发散。
对 Q Q Q 值进行了较差的过估计,如果接下来从经验回放中提取到的样本正好连续几个都这样的,很有可能导致 Q Q Q 值的发散。