策略梯度方法介绍——蒙特卡洛策略梯度方法(REINFORCE)

目录

上一节介绍了 ∇ J ( θ ) \nabla \mathcal J(\theta) J(θ)的求解过程的推导,本节将基于上述推导进行补充,构建更加泛化的表达式,从而引出REINFORCE算法的更新方程。

回顾: ∇ J ( θ ) \nabla \mathcal J(\theta) J(θ)梯度求解结果

上一节介绍关于 ∇ J ( θ ) \nabla \mathcal J(\theta) J(θ)梯度方向的求解结果如下:
∇ J ( θ ) = ∇ V π ( s 0 ) ∝ ∑ s ∈ S μ ( s ) ∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) \begin{aligned} \nabla \mathcal J(\theta) & = \nabla V_\pi(s_0) \\ & \propto \sum_{s \in \mathcal S} \mu(s) \sum_{a \in \mathcal A(s)} \nabla \pi(a \mid s)q_\pi(s,a) \end{aligned} J(θ)=Vπ(s0)sSμ(s)aA(s)π(as)qπ(s,a)
其中 s 0 s_0 s0表示情节的初始状态 μ ( s ) \mu(s) μ(s)表示某状态 s s s在情节中出现的概率
μ ( s ) = η ( s ) ∑ s ′ η ( s ′ ) \mu(s) = \frac{\eta(s)}{\sum_{s'}\eta(s')} μ(s)=sη(s)η(s)
η ( s ) \eta(s) η(s)表示某状态 s s s在情节中出现的平均次数

策略梯度定理的延伸

观察 ∇ J ( θ ) \nabla \mathcal J(\theta) J(θ)梯度方向的求解结果:
∇ J ( θ ) ∝ ∑ s ∈ S μ ( s ) ∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) \nabla \mathcal J(\theta) \propto \sum_{s \in \mathcal S} \mu(s) \sum_{a \in \mathcal A(s)} \nabla \pi(a \mid s)q_\pi(s,a) J(θ)sSμ(s)aA(s)π(as)qπ(s,a)
发现 μ ( s ) \mu(s) μ(s)本身是状态 s s s出现概率 → \to 可以将 ∑ s ∈ S μ ( s ) \sum_{s \in \mathcal S} \mu(s) sSμ(s)表示为表示为期望形式
∑ s ∈ S μ ( s ) ∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) = E ? [ ∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) ] \sum_{s \in \mathcal S} \mu(s) \sum_{a \in \mathcal A(s)} \nabla \pi(a \mid s)q_\pi(s,a) = \mathbb E_{?}\left[\sum_{a \in \mathcal A(s)} \nabla \pi(a \mid s)q_\pi(s,a)\right] sSμ(s)aA(s)π(as)qπ(s,a)=E? aA(s)π(as)qπ(s,a)
问题:期望符号中的概率分布 是谁(上式中“?”部分);
既然是关于状态的概率分布,我们定义这样一个分布符号: ρ π θ \rho^{\pi_{\theta}} ρπθ,使得状态 s s s出现概率服从该分布。
需要注意的点:该分布不仅和策略函数 π ( a ∣ s ; θ ) \pi(a \mid s;\theta) π(as;θ)相关,因为‘状态转移过程’是系统内部的变化,因此这个出现概率的分布还与‘环境’相关。
∀ s ∈ S → s ∼ ρ π θ ( s ) = lim ⁡ t → ∞ P ( S t = s ∣ A 0 : t ∼ π ) \forall s \in \mathcal S \to s \sim \rho^{\pi_{\theta}}(s) = \mathop{\lim}\limits_{t \to \infty}P(S_t = s \mid A_{0:t} \sim \pi) sSsρπθ(s)=tlimP(St=sA0:tπ)
上述式子整理如下:
E s ∼ ρ π θ [ ∑ a ∈ A ( s ) ∇ π ( a ∣ s ) q π ( s , a ) ] \mathbb E_{s \sim \rho^{\pi_{\theta}}}\left[\sum_{a \in \mathcal A(s)} \nabla \pi(a \mid s)q_\pi(s,a)\right] Esρπθ

### 关于连接主义强化学习中的统计梯度跟随算法 #### 统计梯度跟随算法的核心概念 在连接主义强化学习领域,基于统计梯度跟随的算法是一种重要的方法。这些算法旨在通过优化目标函数来调整神经网络参数,从而实现策略改进[^1]。具体而言,这类算法利用随机采样技术估计策略梯度,并以此指导模型的学习过程。 #### 历史背景与发展 最早的此类研究可以追溯到上世纪九十年代初的工作[^2]。当时的研究者提出了简单的统计梯度跟随算法,用于解决连续动作空间下的控制问题。这种方法不仅能够处理复杂的高维状态空间,还能够在不完全信息环境下有效工作。 #### 策略迭代公式的应用 为了设计更高效的Actor-Critic算法,研究人员引入了软策略迭代的概念[^3]。这一方法不再局限于传统意义上的Q-function评估,而是通过对当前策略进行离线更新(off-policy),进一步提升了算法效率和稳定性。特别值得注意的是,在最大熵强化学习框架下,该类算法首次实现了off-policy形式的Actor-Critic结构。 #### 实际案例分析——REINFORCE算法 作为一类典型的蒙特卡洛政策梯度方法REINFORCE展示了如何通过回合结束后的奖励信号计算期望回报并据此调整权重[^4]。尽管其收敛速度较慢且方差较大,但它为后续发展奠定了理论基础。 ```python import numpy as np def reinforce_policy_gradient(policy_network, episodes, gamma=0.99): rewards = [] actions = [] for episode in range(episodes): state = env.reset() total_reward = 0 while True: action_probabilities = policy_network(state) action = np.random.choice(len(action_probabilities), p=action_probabilities) next_state, reward, done, _ = env.step(action) rewards.append(reward * (gamma ** len(actions))) actions.append(action) total_reward += reward if done: break state = next_state # Update the network parameters using collected data here... ``` 上述代码片段展示了一个简化版的REINFORCE算法实现流程,其中包含了关键步骤如概率分布抽样以及折扣因子的应用等操作。 #### 总结 综上所述,基于统计梯度跟随的算法对于推动现代深度强化学习的发展起到了至关重要的作用。它们不仅提供了灵活多样的解决方案路径,同时也促进了不同学科间的思想交流和技术融合。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静静的喝酒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值