强化学习入门6—Policy Gradient策略梯度算法

本文是强化学习入门系列的第六篇,将介绍一种有别于前面Q-learning这些基于价值的算法——策略梯度。

Policy Gradient

即策略梯度,是一种Policy-based的方法。不同于Q-Learning等基于value的方法,策略梯度不需要计算value function,直接计算出随机策略,直接输出action。policy gradient 可以在一个连续分布上选取 action。策略梯度除了可以解决连续性问题,也适用于分幕式问题。分幕式可以理解为离散型问题。比如我们玩下棋游戏,棋子的上下左右移动这一动作是离散的,而在自动驾驶场景里面,汽车速度的变化是连续的,这也就对应连续型问题。

而在策略梯度算法中,两种问题考虑的性能指标有所不同:

  • 分幕式问题:当前参数化策略下初始状态的价值函数
  • 连续性问题:平均奖励

分幕式问题

我们知道 π ( a ∣ s ) \pi(a|s) π(as) 表示状态s下选择动作a的概率,不同策略 π \pi π 下不同的状态,其状态价值函数 V π V_{\pi} Vπ 不同;同一状态下不同动作的动作价值函数 Q π Q_{\pi} Qπ 也不同。 G t G_t Gt 表示奖励的总和。
Q π ( s t , a t ) = E [ G t ∣ S t = s t , A t = a t ] V π ( s t , a t ) = E A [ Q π ( s t , A ) ] = ∑ a π ( a ∣ s t ) Q π ( s t , a ) \\ Q_{\pi}(s_t,a_t)=E[G_t|S_t=s_t,A_t=a_t] \\ V_{\pi}(s_t,a_t)=E_A[Q_{\pi}(s_t,A)]=\sum_a\pi(a|s_t)Q_{\pi}(s_t,a) Qπ(st,at)=E[GtSt=st,At=at]Vπ(st,at)=EA[Qπ(st,A)]=aπ(ast)Qπ(st,a)
策略梯度使用神经网络来近似状态价值函数,我们引入神经网络的参数 θ \theta θ θ \theta θ 其实就是决定了策略 π \pi π Q ( s t , a ) Q(s_t,a) Q(st,a) 是考虑所有策略 π \pi π 后的可能的下一状态和动作的奖励的期望。又a在求和过程中被消掉,因此目标函数定义如下:
J ( θ ) = V π ( s ; θ ) = ∑ a π ( a ∣ s ; θ ) Q π ( s , a ) J(\theta) = V_{\pi}(s;\theta)=\sum_a\pi(a|s;\theta)Q_{\pi}(s,a) J(θ)=Vπ(s;θ)=aπ(as;θ)Qπ(s,a)

那么问题就变成如何学习出一个最优的 θ \theta θ 使得目标函数最大?

先对目标函数求梯度:
∇ J ( θ ) = ∑ a ∂ π ( a ∣ s ; θ ) ∂ θ Q π ( s , a ) = ∑ a π ( a ∣ s ; θ ) 1 π ( a ∣ s ; θ ) ∂ π ( a ∣ s ; θ ) ∂ θ Q π ( s , a ) = ∑ a π ( a ∣ s ; θ ) ∂ ln ⁡ π ( a ∣ s ; θ ) ∂ θ Q π ( s , a ) \begin{aligned} \nabla J(\theta)=&\sum_a \dfrac{\partial \pi(a|s;\theta)}{\partial \theta} Q_{\pi}(s,a)\\ =&\sum_a \pi(a|s;\theta) \dfrac{1}{\pi(a|s;\theta)} \dfrac{\partial \pi(a|s;\theta)}{\partial \theta} Q_{\pi}(s,a) \\ =&\sum_a \pi(a|s;\theta) \dfrac{\partial \ln\pi(a|s;\theta)}{\partial \theta}Q_{\pi}(s,a) \\ \end{aligned} J(θ)===aθπ(as;θ)Qπ(s,a)aπ(as;θ)π(as;θ)1θπ(as;

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
答案: 强化学习中的策略梯度算法是一种基于策略函数建模的方法,通过最大化累计奖励的期望值来优化策略。与基于价值的方法不同,策略梯度算法没有实际的损失函数,而是使用梯度上升算法来计算累计奖励的期望值。这种算法的优势在于它的简易性,它可以直接处理问题,而不需要存储额外的动作值数据。此外,策略梯度方法非常适合处理连续动作空间的问题。在策略梯度方法中,可以使用REINFORCE算法来进行训练,它是一种蒙特卡洛策略梯度算法。该算法通过采样轨迹并使用梯度上升来更新策略参数,从而最大化累计奖励的期望值。可以通过添加基线来改进REINFORCE算法的性能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [强化学习(九)- 策略梯度方法 - 梯度上升,黑箱优化,REINFORCE算法及CartPole实例](https://blog.csdn.net/qq_37266917/article/details/109855244)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [【强化学习策略梯度Policy Gradient)](https://blog.csdn.net/Judy18/article/details/121343200)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值