[toc]
传统策略梯度算法(Policy Gradient Methods) 是强化学习中一类直接优化策略(Policy)的方法,与基于价值函数的方法(如Q-Learning)不同,它通过梯度上升直接调整策略参数,以最大化长期累积奖励。
核心思想
-
策略(Policy):定义智能体在状态 s下选择动作 a 的概率分布,通常用参数化函数 $$π_θ(a∣s)$$ 表示(如神经网络)。
-
目标:找到最优参数$$ θ^∗$$,使得策略在环境中获得的期望累积奖励最大化。
-
数学表达:
$$
J(θ)=E_{τ∼π_θ}[ ∑_{t=0}^Tγ^tr_t]
$$
其中,τ是轨迹(状态-动作序列),γ 是折扣因子。
策略梯度定理(Policy Gradient Theorem)
-
核心公式:策略梯度定理表明,目标函数 J(θ) 的梯度可表示为:
$$
∇_θJ(θ)=E_{τ∼π_ θ}[ ∑_{t=0}^T∇_θlogπ_θ(a_t∣s_t)⋅Q ^{π_ θ}(s_t,a_ t)]
$$- $$Q ^{π_ θ}(s_t,a_ t)$$是动作价值函数,表示在状态$$s_t$$下执行动作 $$a_t$$后的期望累积奖励。
- 直观理解:通过增加高价值动作的概率,减少低价值动作的概率。
蒙特卡洛策略梯度
直接利用轨迹的完整回报(Monte Carlo方法)估计梯度。
算法步骤:
-
采样轨迹:使用当前策略 $$π_θ$$ 与环境交互,生成一条轨迹$$ τ=(s_0,a_0,r_0,…,s_T,a_T,r_T)$$
-
计算累积奖励:对每个时间步 tt,计算从 tt 开始的折扣累积奖励 $$G_t=∑_{k=t}^Tγ^{k−t}r_k$$。
-
更新策略参数:沿梯度方向更新 θ:
$$
θ←θ+α∑_{t=0}^Tγ^tG_t∇_θlogπ_θ(a_t∣s_t)
$$- α 是学习率。
伪代码
1 | for episode in range(num_episodes): |
特点
优点:
- 直接优化策略:适用于连续动作空间(如机器人控制),无需维护Q表或离散化动作。
- 理论简单:梯度公式直接来自策略梯度定理,无需价值函数中间步骤。
缺点:
- 高方差(High Variance):蒙特卡洛方法依赖完整轨迹的回报,导致梯度估计方差大,收敛慢。
- 样本效率低:需要大量轨迹才能稳定更新(与TD方法相比)。
- 局部最优陷阱:策略可能收敛到次优解。
改进
方差缩减技术
为改进传统策略梯度,常用以下方法降低方差:
-
基线(Baseline):
引入与动作无关的基线函数 $$b(s_t)$$,修改梯度公式为:
$$
∇_θJ(θ)=E[∑_{t=0}^T∇_θlogπ_θ(a_t∣s_t)⋅(Q(s_t,a_t)−b(s_t))]
$$- 常用基线:状态价值函数 $$V(s_t)$$(即Actor-Critic方法)。
-
优势函数(Advantage Function):
使用 $$A(s_t,a_t)=Q(s_t,a_t)−V(s_t)$$替代 Q,减少方差。
扩展
Actor-Critic
- Actor(策略网络):负责选择动作,直接优化策略参数 θ。
- Critic(价值网络):估计状态价值 V(s) 或优势函数 A(s,a),指导Actor更新。
- 优势:结合了策略梯度和价值函数,通过Critic提供低方差梯度估计。
对比
特性 | 策略梯度 | Q-Learning |
---|---|---|
动作空间 | 连续/离散均可 | 通常需离散化 |
优化目标 | 直接优化策略 | 间接优化策略(通过Q值最大化) |
收敛性 | 可能陷入局部最优 | 理论上有全局最优 |
方差 | 高(蒙特卡洛方法) | 较低(TD方法) |
If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !