强化学习数学基础1---Policy Gradient

本文介绍了强化学习的基础数学概念,包括Actor网络、评估函数及其优化过程。详细解释了如何使用神经网络作为策略模型,并通过梯度上升法更新参数以最大化期望奖励。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

强化学习基础数学基础1

这篇笔记由李宏毅老师的强化学习公开课整理而来

强化学习的基本步骤:

  • Step 1:定义一个Neural Network作为一个Actor
  • Step 2:定义评估函数,有些评估函数可能也是一个策略网络
  • Step 3:选择或者训练出一个最佳的函数作为Actor和评估函数

强化的学习的Actor是一个Neural Network,把环境作为输入,输出的是当前环境下所有选择的概率值。

假设πθ(S)\pi_{\theta}(S)πθ(S) 表示一个Actor,其中SSS是输入,即当前的环境,θ\thetaθ表示神经网络的参数。那么,从当前状态开始,每一次Actor都会采取一个行动aia_iai,使得局面到达Si+1S_{i+1}Si+1,同时获取的奖励是rir_iri

那么总的奖励:
(1)total reward: Rθ=∑t=1Trt total\ reward: \ R_{\theta}=\sum_{t=1}^{T}r_{t} \tag{1} total reward: Rθ=t=1Trt(1)
注意,RθR_{\theta}Rθ每次可能都是不同的,原因是:

  • 选择的过程本身就是随机的。因为Actor的输出是每个选择的一个概率
  • 游戏本身具有随机性,我们不知道环境可能会发生的变化

我们把一次完整的过程称为一个eposide

令符号
τ={s0,(s1,a1,r1),(s2,t2,r2),⋯ ,(st,at,rt)} \tau=\{s_0,(s_1,a_1,r_1),(s_2,t_2,r_2),\cdots,(s_t,a_t,r_t)\} τ={s0,(s1,a1,r1),(s2,t2,r2),,(st,at,rt)}
表示一个完整的游戏过程。上述的意思是,从初始状态s0s_0s0采取行动a1a_1a1,然后到达状态s1s_1s1,获得的奖励是r1r_1r1,一次类推,直到最终状态sts_tst。总的奖励就是累加,见公式(1)(1)(1)

我们知道,从某个给定的局面开始到游戏结束,每次的游戏过程都基本都是不一样的,那么有某个游戏过程τ\tauτ, 则该过程出现的概率是P(τ∣θ)P(\tau | \theta)P(τθ)。所以,如果输入一个局面SSS,它的期望获得的奖励是:
(2)Rˉθ=∑τR(τ)P(τ∣θ)≈1N∑i=1NR(τ(i)) \bar{R}_{\theta} = \sum_{\tau}R(\tau)P(\tau|\theta)\approx\frac{1}{N}\sum_{i=1}^{N}R(\tau^{(i)}) \tag{2} Rˉθ=τR(τ)P(τθ)N1i=1NR(τ(i))(2)
其中NNN表示进行足够多的模拟次数。

因为上述公式中,一般来说,可以认为所有的游戏状态是无穷多个,只能通过足够多的模拟次数来近似求解。

通过Gradient Descent进行Actor的参数优化。优化的方式为:
θ∗=argmaxθRˉθ \theta^{*}=\mathop{argmax}\limits_{\theta}\bar{R}_{\theta} θ=θargmaxRˉθ
那么初始化随机所有的参数为θ(0)\theta^{(0)}θ(0),每次进行如下的迭代:
θ(i)=θ(i−1)+η∇Rˉθ(i−1) \theta^{(i)}=\theta^{(i-1)}+\eta \nabla \bar{R}_{\theta^{(i-1)}} θ(i)=θ(i1)+ηRˉθ(i1)
其中,η\etaη是学习速率。对公式中的∇Rˉθ(i−1)\nabla \bar{R}_{\theta^{(i-1)}}Rˉθ(i1)进行展开,得到:
(3)∇Rˉθ=∇∑τR(τ)P(τ∣θ)=∑τR(τ)∇P(τ∣θ) \nabla \bar{R}_{\theta} =\nabla\sum_{\tau}R(\tau) P(\tau|\theta)=\sum_{\tau}R(\tau)\nabla P(\tau|\theta) \tag{3} Rˉθ=τR(τ)P(τθ)=τR(τ)P(τθ)(3)
注意,R(τ)R(\tau)R(τ)这个是固定的,与Actor的参数θ\thetaθ无关。

因为有
d(log⁡f(x))dx=1f(x)df(x)dx \frac{d(\log f(x))}{dx}=\frac{1}{f(x)}\frac{df(x)}{dx} dxd(logf(x))=f(x)1dxdf(x)
那么,(3)(3)(3)公式可以写成
(4)∇Rˉθ=∑τR(τ)P(τ∣θ)∇P(τ∣θ)P(τ∣θ)=∑τR(τ)P(τ∣θ)∇log⁡P(τ∣θ)≈1N∑i=1NR(τ(i))∇log⁡P(τ(i)∣θ) \nabla{\bar{R}_{\theta}}=\sum_{\tau} R(\tau)P(\tau|\theta)\frac{\nabla P(\tau|\theta)}{P(\tau|\theta)} = \sum_{\tau}R(\tau)P(\tau|\theta)\nabla\log P(\tau|\theta) \approx\frac{1}{N}\sum_{i=1}^{N}R(\tau^{(i)})\nabla\log P(\tau^{(i)}|\theta) \tag{4} Rˉθ=τR(τ)P(τθ)P(τθ)P(τθ)=τR(τ)P(τθ)logP(τθ)N1i=1NR(τ(i))logP(τ(i)θ)(4)
在根据概率论的乘法公式和τ\tauτ过程的意义,又可以得出
P(τ∣θ)=P(s1)P(a1∣s1,θ)P(r1,s2∣s1,a1)P(a2∣s2,a1)P(r2,s3∣s2,a2)⋯ P(\tau|\theta)=P(s_1)P(a_1|s_1,\theta)P(r_1,s_2|s_1,a_1)P(a_2|s_2,a_1)P(r_2,s_3|s_2,a_2)\cdots P(τθ)=P(s1)P(a1s1,θ)P(r1,s2s1,a1)P(a2s2,a1)P(r2,s3s2,a2)
那么上式可以写成
(5)P(τ∣θ)=P(s1)∏t=1TP(at∣st,θ)P(rt,st+1∣st,at) P(\tau|\theta)=P(s_1)\prod_{t=1}^{T}P(a_t|s_t,\theta)P(r_t,s_{t+1}|s_{t},a_t) \tag{5} P(τθ)=P(s1)t=1TP(atst,θ)P(rt,st+1st,at)(5)
符号说明:

  • P(at∣st,θ)P(a_t|s_t,\theta)P(atst,θ):在θ\thetaθ参数、sts_tst环境下,采取ata_tat的概率。这一点取决于Actor。
  • P(rt,st+1∣st,at)P(r_t, s_{t+1}|s_{t},a_t)P(rt,st+1st,at)sts_tst环境下采取行动ata_tat获得奖励rtr_trt的条件下,到达环境st+1s_{t+1}st+1的概率。这一点和Actor无关,只和环境有关系,所以对Actor参数θ\thetaθ 微分的时候结果是0 !!!

又因为
log⁡P(τ∣θ)=log⁡P(s1)+∑t=1T[log⁡P(at∣st,θ)+log⁡P(rt,st+1∣st,at)] \log P(\tau|\theta)=\log P(s_1)+\sum_{t=1}^{T}\left[\log P(a_t|s_t, \theta)+\log P(r_t,s_{t+1}|s_{t},a_t) \right] logP(τθ)=logP(s1)+t=1T[logP(atst,θ)+logP(rt,st+1st,at)]
所以有
(6)∇log⁡P(τ∣θ)=∑t=1Tlog⁡P(at∣st,θ) \nabla \log{P(\tau|\theta)}=\sum_{t=1}^{T}\log{P(a_t|s_t,\theta)} \tag{6} logP(τθ)=t=1TlogP(atst,θ)(6)
结合公式(4)(4)(4)(6)​(6)​(6),能推导出平均奖励的更新梯度公式:
(7)∇Rˉθ≈1N∑i=1NR(τ(i))∇log⁡P(τ(i)∣θ)=1N∑i=1N[R(τ(i))∑t=1Tlog⁡P(at(i)∣st(i),θ)]=1N∑i=1N∑t=1T[R(τ(i))log⁡P(at(i)∣st(i),θ)] \nabla\bar{R}_{\theta}\approx\frac{1}{N}\sum_{i=1}^{N}R(\tau^{(i)})\nabla \log{P(\tau^{(i)}|\theta)}\\=\frac{1}{N}\sum_{i=1}^{N}\left[R(\tau^{(i)})\sum_{t=1}^{T}\log{P(a_{t}^{(i)}|s_{t}^{(i)},\theta)} \right] \\=\frac{1}{N}\sum_{i=1}^{N}\sum_{t=1}^{T}\left[R(\tau^{(i)})\log{P(a_{t}^{(i)}|s_{t}^{(i)},\theta)} \right] \tag{7} RˉθN1i=1NR(τ(i))logP(τ(i)θ)=N1i=1N[R(τ(i))t=1TlogP(at(i)st(i),θ)]=N1i=1Nt=1T[R(τ(i))logP(at(i)st(i),θ)](7)
如果某个行动没有被模拟到,那么进行梯度更新的时候,这个行动在下次模拟过程中没有被sample的概率将减小。因为可以这么理解,所有可能行动的概率和是1,如果某些行动被模拟到了,说明概率比较高,梯度更新的时候,会增加它们的概率值,对于那些没有被模拟到的,概率将越来越小。修正方式也很容易,把奖励减去常数bbb即可,给出公式:
(8)∇Rˉθ=1N∑i=1N∑t=1T[(R(τ(i))−b)log⁡P(at(i)∣st(i),θ)] \nabla \bar{R}_{\theta}=\frac{1}{N}\sum_{i=1}^{N}\sum_{t=1}^{T}\left[\left(R(\tau^{(i)} )-b\right)\log{P(a_{t}^{(i)}|s_{t}^{(i)},\theta)} \right] \tag{8} Rˉθ=N1i=1Nt=1T[(R(τ(i))b)logP(at(i)st(i),θ)](8)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值