强化学习入门
策略梯度(Policy Gradient)和动作价值(Q-learning)辨析
一、核心区别
-
目标不同
- 策略梯度:直接学习策略函数(π(s→a)),通过最大化期望累积回报(J(θ))的梯度更新参数,目标是“如何直接选动作”。
- Q-learning:学习状态-动作值函数Q(s,a),通过估计“选某个动作的长期价值”间接推导策略(ε-贪心或确定性选择max Q),目标是“评估动作价值再选最优”。
-
决策逻辑
- 策略梯度:基于概率分布直接输出动作(如连续动作的均值/离散动作的概率),无需比较所有动作值。例如,机器人控制中直接输出关节角度。
- Q-learning:需遍历所有可能动作的Q值,选择价值最高的动作(离散动作)。例如,迷宫游戏中比较“上/下/左/右”的Q值后选择最优方向。
-
算法特性
- 策略梯度:
- On-policy(如REINFORCE)或Off-policy(如Actor-Critic),依赖采样轨迹的回报(蒙特卡洛或TD估计)。
- 天然适合连续动作空间(如机器人、自动驾驶),可通过神经网络输出连续值。
- 方差较高(尤其蒙特卡洛策略梯度),需引入基线(Baseline)或Critic降低方差。
- Q-learning:
- Off-policy,通过“最大化下一状态Q值”(Max操作)实现引导(Bootstrapping),稳定性强。
- 离散动作空间下高效(如Atari游戏的4-18个动作),但连续动作需离散化或结合函数近似(如DQN)。
- 存在过估计问题(Max操作导致偏差),需通过Double DQN等改进。
- 策略梯度:
-
数学本质
- 策略梯度:优化目标为 \(\nabla_\theta J(\theta) = \mathbb{E}[\nabla_\theta \log\pi(a|s;\theta) \cdot Q^\pi(s,a)]\),直接对策略参数求导。
- Q-learning:通过TD误差更新 \(Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma \max_a Q(s',a') - Q(s,a)]\),隐含策略为 \(\pi(s) = \arg\max_a Q(s,a)\)。
二、适用场景
策略梯度的典型场景
- 连续动作空间:如机器人控制(机械臂运动、无人机飞行)、自动驾驶(油门/刹车连续调节)。
- 例:OpenAI的Roboschool用策略梯度训练机器人双足行走。
- 高维状态或复杂策略:需直接输出随机策略(如探索性强的任务),或需要随机动作增强鲁棒性(如对抗环境)。
- 例:AlphaGo Zero通过策略梯度+蒙特卡洛树搜索优化落子策略。
- 需要实时决策的场景:直接输出动作,无需遍历所有可能(如高频控制任务)。
Q-learning的典型场景
- 离散动作空间:如游戏(马里奥的跳跃/移动)、离散资源调度(服务器任务分配)。
- 例:经典Q-learning解决“冰湖”(FrozenLake)离散状态动作问题。
- 状态可观测且有限:小规模状态空间下(如迷宫、简单博弈),Q表可直接存储。
- 需要稳定值估计的场景:Off-policy特性允许利用历史数据(如经验回放池),适合数据高效的任务(如DQN训练Atari游戏)。
三、总结:如何选择?
| 维度 | 策略梯度 | Q-learning |
|---|---|---|
| 动作空间 | 连续/高维离散(如100+动作) | 低维离散(<100动作) |
| 探索方式 | 天然随机策略(适合探索) | ε-贪心(依赖预设探索率) |
| 稳定性 | 方差高(需Critic改进) | 稳定(引导机制+经验回放) |
| 典型任务 | 机器人控制、连续控制、复杂策略优化 | 离散游戏、表格型问题、数据高效任务 |
一句话建议:
- 若动作是连续的(如机械臂角度),或需要直接优化随机策略,选策略梯度(如PPO、Actor-Critic)。
- 若动作是离散的(如“上下左右”),且关注值函数的精确估计,选Q-learning(如DQN、Double DQN)。
- 复杂场景可结合两者(如Actor-Critic:策略梯度负责动作输出,Q-learning负责值评估)。

浙公网安备 33010602011771号