ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

RL-赵-(九)-Policy函数拟合算法-Policy Gradient算法03:REINFORCE算法【梯度提升法更新π参数θ时通过MC算法计算qₜ(sₜ,aₜ)来近似q_π(sₜ,aₜ)】

2026/9/27 23:33:51 拓冰建站 浏览量
RL-赵-(九)-Policy函数拟合算法-Policy Gradient算法03:REINFORCE算法【梯度提升法更新π参数θ时通过MC算法计算qₜ(sₜ,aₜ)来近似q_π(sₜ,aₜ)】 RL-赵-(九)-Policy-Based03:REINFORCE算法【在线】【第一个Policy Gradient算法】【梯度上升法更新π的参数θ时通过“MC采样”估计的方法计算q_t来近似q_π】现在,给出第一个Policy Gradient Algorithm以发现最优策略。从上一节,我们已经知道梯度的表达式为:∇ θ J ( θ ) = E [ ∇ θ ln ⁡ π ( A ∣ S , θ t ) q π ( S , A ) ] \nabla_\theta J(\theta) = \mathbb{E}\left[\nabla_\theta\ln\pi(A|S,\theta_t)q_\pi(S,A)\right]∇θ​J(θ)=E[∇θ​lnπ(A∣S,θt​)qπ​(S,A)]所以,用于最大化J ( θ ) J(\theta)J(θ)的Gradient-Ascent算法是:θ t + 1 = θ t + α ∇ θ J ( θ ) = θ t + α E [ ∇ θ ln ⁡ π ( A ∣ S , θ t ) q π ( S , A ) ] \begin{aligned} \theta_{t+1} \begin{aligned}=\theta_t+\alpha\nabla_\theta J(\theta)\end{aligned} \\ =\theta_t+\alpha\mathbb{E}\left[\nabla_\theta\ln\pi(A|S,\theta_t)q_\pi(S,A)\right] \end{aligned}θt+1​​=θt​+α∇θ​J(θ)​=θt​+αE[∇θ​lnπ(A∣S,θt​)qπ​(S,A)]​这个在实际当中是不能用的 为什么呢?因为这有一个expectation。这里面就涉及到了状态它的分布,如果我们知道所有的信息的话,其实这个分布我们是能确定下来的,但是很可惜,比如说环境的模型等等我们都是不知道的,那这时候我们是无法计算这个expectation的。所以我们要用随机(Stochastic )的梯度来代替这个真实的梯度,那这样的话我就得到这样一个式子:θ t + 1 = θ t + α ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) q π ( s t , a t ) \theta_{t+1}=\theta_t+\alpha\nabla_\theta\ln\pi(a_t|s_t,\theta_t)\color{red}{q_\pi(s_t,a_t)}θt+1​=θt​+α∇θ​lnπ(at​∣st​,θt​)qπ​(st​,at​)实际上,这个式子其实也是不能用的 为什么呢?因为这里面有一个q π q_πqπ​(是策略π ππ所对应的真实的action value),那怎么办呢?进一步地,因为q π q_\mathrm{\pi}qπ​是不知道的,所以用一个方法来近似或对q π q_\mathrm{\pi}qπ​进行采样,把q π q_\piqπ​换成q t q_tqt​​θ t + 1 = θ t + α ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) q t ( s t , a t ) \theta_{t+1}=\theta_t+\alpha\nabla_\theta\ln\pi(a_t|s_t,\theta_t)\color{red}{q_t(s_t,a_t)}θt+1​=θt​+α∇θ​lnπ(at​∣st​,θt​)qt​(st​,at​)这里有不同的方法去近似q π ( s t , a t ) q_\pi(s_t,a_t)qπ​(st​,at​):第一种方法:基于Monte-Carlo方法: REINFORCE;【这也是最直观的,要估计q π ( s t , a t ) q_\pi(s_t,a_t)qπ​(st​,at​)那我就从( s , a ) (s,a)(s,a)出发我得到一个episode,然后我计算这个episode的return假如说是g gg,那这个g gg实际上就是这个q t ( s , a ) q_t(s,a)qt​(s,a),我就用这个q t ( s , a ) q_t(s,a)qt​(s,a)来近似q π ( s t , a t ) q_\pi(s_t,a_t)qπ​(st​,at​)。基于这个Monte-Carlo方法和policy gradient的算法相结合,得到的这样一个算法有一个名字叫做REINFORCE。】其他方法:基于TD方法等,这就引出了Actor-Critic方法;补充几个非常重要的说明:1、如何采样?E S ∼ d , A ∼ π [ ∇ θ ln ⁡ π ( A ∣ S , θ t ) q π ( S , A ) ] ⟶ ∇ θ ln ⁡ π ( a ∣ s , θ t ) q π ( s , a ) \mathbb{E}_{\color{red}{S}\sim d,\color{red}{A}\sim\pi}\left[\nabla_\theta\ln\pi(A|S,\theta_t)q_\pi(S,A)\right]\longrightarrow\nabla_\theta\ln\pi(a|s,\theta_t)q_\pi(s,a)ES∼d,A∼π​[∇θ​lnπ(A∣S,θt​)qπ​(S,A)]⟶∇θ​lnπ(a∣s,θt​)qπ​(s,a)如何采样S SS呢?S ∼ d S\sim dS∼d,对于S来说它服从的分布是一个d dd,其中 the distributiond dd是一个基于π \piπ的 long-run behavior(它代表了一种长期,就是我跑了很久之后所得到的一种对S的分布。但是在实际当中我们一般来说都不这么做,因为我们有数据就不错了,我们不会说要采很久之后等它达到那种平稳的状态然后再去用这个数据,所以这个我们在实际当中一般是不太考虑S ∼ d S\sim dS∼