DataWhale-深度学习2阶段-打卡1

马尔可夫模型、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+1st)=P(st+1s0,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} Gtrt+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=sSt=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= p11p21pn1p12p22pn2p1np2npnn (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;θ)+α[yiQ(si,ai;θ)](7.4)
Q − l e a n r i n g Q-leanring Qleanring的基础上增加了 网络参数 θ \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(θ)=(yiQ(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 值的发散。

4.伪代码

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值