【笔记整理】强化学习>>Policy Gradient方法

本文深入探讨了强化学习的基本概念,包括智能体与环境的交互、奖励机制及策略优化。重点介绍了策略梯度算法,详细解析了其目标函数、梯度计算及参数更新过程,为理解强化学习提供了清晰的路径。

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

强化学习

机器通过“试错”的方式进行学习,类似于动物训练的模式:
智能体Agent与环境Env进行交互,根据Env反馈的reward来进行动作action的优化,逐步形成对reward的预期,最终产生能获得最大利益的习惯性行为,即策略

目标: 最大化长期回报

下图来自:https://blog.youkuaiyun.com/aliceyangxi1987/article/details/73327378
在这里插入图片描述


基本实现过程

  • 如果agent的某个行为【a】策略导致环境Env反馈一个正向奖赏(强化信号r),则agent以后产生此行为策略的趋势加强,反之则减弱。
  • agent根据强化信号【r】和环境当前状态【s】再选择下一个动作【a】,选择的原则是使受到正向奖赏的概率增大。
  • 选择的动作不仅影响立即强化值,且影响环境下一个状态的r和最终的r

与监督学习的区别:

  • 没有标记样本。强化信号是对agent动作的好坏做出评价,而非告诉agent如何产生正确的动作——就像直接测试而不上课的老师。

  • 监督学习相当于直接为各状态进行标记:x=状态,y=应采取的正确动作
    若已知r/A的梯度信息,则可以直接使用监督学习算法,但有时候强化信号r与产生的动作A没有明确的函数形式描述,所以梯度信息无法得到。

  • 因此在强化学习中,需要某种随机单元,使agent在可能动作空间中进行搜索并发现正确的动作。


简要术语&符号

基本概念

Agent - 智能体。学习者、决策者。
Environment/Env - 环境。agent外部的一切。
s s s - 状态(state)。一个表示环境的数据。
a a a - 行动(action)。agent可以做的动作。
A ( s ) \mathcal{A(s)} A(s) - 状态s的行动集合。agent在状态s下,可以做的所有动作。
r / R r/R r/R - 奖赏(reward)。agent在一个行动后,获得的奖赏。
R \mathcal{R} R - 所有奖赏集合。本体可以获得的所有奖赏。

s t s_t st - 第t步的状态(state)。t from 0
a t a_t at - 第t步的行动(select action)。t from 0
r t r_t rt - 第t步的奖赏(reward)。t from 1
G t G_t Gt - 第t步的长期回报(return)。t from 0

π π π : 策略(policy)。

策略规定了状态s时,应该选择的行动a。
π = [ π ( s 1 ) , ⋯ , π ( s n ) ] π=[π(s1),⋯,π(sn)] π=[π(s1),,π(sn)]
π ( s ) \pi(s) π(s) - 策略π在状态s下,选择的行动。
π ∗ \pi^∗ π - 最优策略(optimal policy)。
π ( a ∣ s ) \pi(a|s) π(as) - 随机策略π在状态s下,选择的行动a的概率。

r ( s , a ) r(s,a) r(s,a) - 在状态s下,选择行动a的奖赏。
r ( s , a , s ′ ) r(s,a,s′) r(s,as) - 在状态s下,选择行动a,变成(状态s’)的奖赏。
p ( s ′ , r ∣ s , a ) p(s',r|s,a) p(s,rs,a) - (状态s、行动a)的前提下,变成(状态s’、奖赏r)的概率。
p ( s ′ ∣ s , a ) p(s'|s,a) p(ss,a)- (状态s、行动a)的前提下,变成(状态s’)的概率。

以下只出现于值函数方法
v π ( s ) v_π(s) vπ(s)- 状态价值。使用策略π,(状态s的)长期奖赏 G t G_t Gt
q π ( s , a ) q_π(s,a) qπ(s,a) - 行动价值。使用策略π,(状态s,行动a的)长期奖赏 G t G_t Gt
v ∗ ( s ) v^∗(s) v(s)- 最佳状态价值。
q ∗ ( s , a ) q^∗(s,a) q(s,a) - 最佳行动价值。
V ( s ) V(s) V(s)- v π ( s ) v_π(s) vπ(s)的集合。
Q ( s , a ) Q(s,a) Q(s,a) - q π ( s , a ) q_π(s,a) qπ(s,a)的集合。


Returns的计算

Returns即 r r r——采取相应动作所能得到的奖励(rewards)。

  • 计算式1:把未来发生的奖励和现在将要得到的奖励放在了同等重要的地位上。从当前时刻的状态到最终结束状态被称作一个片段(episode),每个时刻的状态被称作一个task(episodic task):
    公式1
  • 计算式2:往往不会将将来的reward和当前reward放在同等重要的地位上,因此我们需要加入discount这个元素。公式如下:

G t ≐ ∑ k = 0 ∞ γ k R t + k + 1 w h e r e k  - the sequence number of an action. γ  - discount rate,  0 ⩽ γ ⩽ 1 G_t \doteq \sum_{k=0}^{\infty} \gamma^k R_{t+k+1} \\ where \\ k \text{ - the sequence number of an action.} \\ \gamma \text{ - discount rate,} \ 0 \leqslant \gamma \leqslant 1 Gtk=0γkRt+k+1wherek - the sequence number of an action.γ - discount rate, 0γ1

即:
在这里插入图片描述
γ \gamma γ是个衰减系数,这样离当前状态越远的reward考虑的程度越弱, γ = 1 \gamma=1 γ=1时退化为公式1


Policy Gradient 方法

目标函数
U ( θ ) = E ( ∑ t = 0 T R ( s t , a t ) ; π θ ) = ∑ τ P ( τ ; θ ) R ( τ ) U( \theta ) =E\left(\sum\limits ^{T}_{t=0} R( s_{t} ,a_{t}) ;\pi _{\theta }\right) =\sum\limits _{\tau } P( \tau ;\theta ) R( \tau ) U(θ)=E(t=0TR(st,at);πθ)=τP(τ;θ)R(τ)

τ = { s 0 , a 0 , . . . , s T , a T } \tau=\{s_0,a_0,...,s_T,a_T\} τ={s0,a0,...,sT,aT}
R ( τ ) = ∑ t = 0 T r ( s t , a t ) R( \tau ) =\sum\limits ^{T}_{t=0} r( s_{t} ,a_{t}) R(τ)=t=0Tr(st,at),序列 τ \tau τ的reward之和
P ( τ ; θ ) = p ( s 0 ) ∏ t = 0 T π θ ( a t ∣ s t ) p ( s t + 1 ∣ s t , a t ) P( \tau ;\theta)=p(s_{0})\prod_{t=0}^{T}\pi_\theta( a_{t} | s_{t})p(s_{t+1}|s_{t},a_{t}) P(τ;θ)=p(s0)t=0Tπθ(atst)p(st+1st,at) 代表序列 τ \tau τ出现的概率

表示在参数 θ \theta θ控制的策略 π \pi π下,序列 τ \tau τ的reward之和的期望

目的:找到最优参数 θ \theta θ,使
m a x U ( θ ) = m a x ∑ τ P ( τ ; θ ) R ( τ ) maxU( \theta ) =max\sum\limits _{\tau } P( \tau ;\theta ) R( \tau ) maxU(θ)=maxτP(τ;θ)R(τ)

在PG里,用梯度下降法解决,即
θ n e w = θ o l d + α ∇ θ U ( θ ) \theta _{new} =\theta _{old} +\alpha \nabla _{\theta } U( \theta ) θnew=θold+αθU(θ)

如何计算目标函数的梯度?下面一个变换给出:
∇ θ U ( θ ) = ∇ θ ∑ τ P ( τ ; θ ) R ( τ ) = ∑ τ P ( τ ; θ ) ∇ θ P ( τ ; θ ) R ( τ ) P ( τ ; θ ) = ∑ τ P ( τ ; θ ) R ( τ ) ∇ θ l o g P ( τ ; θ ) \nabla _{\theta } U( \theta )=\nabla _{\theta }\sum\limits _{\tau } P( \tau ;\theta ) R( \tau ) =\sum\limits _{\tau } P( \tau ;\theta )\frac{\nabla _{\theta } P( \tau ;\theta ) R( \tau )}{P( \tau ;\theta )}=\sum\limits _{\tau } P( \tau ;\theta ) R( \tau ) \nabla _{\theta } logP( \tau ;\theta ) θU(θ)=θτP(τ;θ)R(τ)=τP(τ;θ)P(τ;θ)θP(τ;θ)R(τ)=τP(τ;θ)R(τ)θlogP(τ;θ)
从而梯度的计算转换为“求解 R ( τ ) ∇ θ l o g P ( τ ; θ ) R( \tau ) \nabla _{\theta } logP( \tau ;\theta ) R(τ)θlogP(τ;θ)的期望

利用【蒙特卡洛法】近似估计,根据当前的策略 π \pi π采样得到m条轨迹:
∇ θ U ( θ ) ≈ 1 m ∑ i = 0 m R ( τ ) ∇ θ log ⁡ [ P ( τ ; θ ) ] \nabla _{\theta } U( \theta ) \approx \frac{1}{m}\sum\limits ^{m}_{i=0} R( \tau ) \nabla _{\theta } \log[P( \tau ;\theta )] θU(θ)m1i=0mR(τ)θlog[P(τ;θ)]

接下来需要求解:
∇ θ log ⁡ [ P ( τ ; θ ) ] = ∇ θ log ⁡ [ p ( s 0 ) ∏ t = 0 T π θ ( a t ∣ s t ) p ( s t + 1 ∣ s t , a t ) ] \nabla_{\theta}\log[P( \tau ;\theta )] = \nabla_{\theta}\log[p(s_{0})\prod_{t=0}^{T}\pi_\theta( a_{t} | s_{t})p(s_{t+1}|s_{t},a_{t})] θlog[P(τ;θ)]=θlog[p(s0)t=0Tπθ(atst)p(st+1st,at)]
= ∇ θ [ log ⁡ p ( s 0 ) + ∑ t = 0 T log ⁡ [ π θ ( a t ∣ s t ) ] + ∑ t = 0 T log ⁡ p ( s t + 1 ∣ s t , a t ) ] = \nabla_{\theta}[\log p(s_{0}) + \sum_{t=0}^{T}\log[\pi_\theta( a_{t} | s_{t})] + \sum_{t=0}^{T}\log p(s_{t+1}|s_{t},a_{t})] =θ[logp(s0)+t=0Tlog[πθ(atst)]+t=0Tlogp(st+1st,at)]
= ∑ t = 0 T ∇ θ log ⁡ [ π θ ( a t ∣ s t ) ] = \sum_{t=0}^{T}\nabla_{\theta}\log[\pi_\theta( a_{t} | s_{t})] =t=0Tθlog[πθ(atst)]
将结果带回原式:
∇ θ U ( θ ) ≈ 1 m ∑ i = 0 m R ( τ ) ∇ θ log ⁡ [ P ( τ ; θ ) ] = 1 m ∑ i = 0 m [ [ ∑ t = 0 T r ( s i , t , a i , t ) ] ∑ t = 0 T ∇ θ log ⁡ [ π θ ( a t ∣ s t ) ] \nabla _{\theta } U( \theta ) \approx \frac{1}{m}\sum\limits ^{m}_{i=0} R( \tau ) \nabla _{\theta } \log[P( \tau ;\theta )]=\frac{1}{m}\sum\limits ^{m}_{i=0} [[ \sum\limits ^{T}_{t=0} r( s_{i,t} ,a_{i,t}) ]\sum_{t=0}^{T}\nabla_{\theta}\log[\pi_\theta( a_{t} | s_{t})] θU(θ)m1i=0mR(τ)θlog[P(τ;θ)]=m1i=0m[[t=0Tr(si,t,ai,t)]t=0Tθlog[πθ(atst)]
从而得到更新的参数:
θ n e w = θ o l d + α ∇ θ U ( θ ) \theta _{new} =\theta _{old} +\alpha \nabla _{\theta } U( \theta ) θnew=θold+αθU(θ)

12/06 尚未整理 DPG 和 DDPG


附:RL方法分类

在这里插入图片描述


[1] 强化学习基本概念
[2] 增强学习–策略梯度算法(Policy Gradient)
[3] 浅谈强化学习中的策略梯度算法
[4] 强化学习读书笔记 - 00 - 术语和数学符号

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值