背景
强化学习(Reinforcement Learning, RL)是一种让智能体(Agent)通过与环境(Environment)交互来学习最优策略(Policy)的机器学习方法。智能体通过采取行动(Action)从环境中获得奖励(Reward),从而调整策略以最大化长期回报。
在强化学习中,策略(Policy)是指导智能体选择动作的规则。基于策略的不同使用方式,我们可以将强化学习算法分为两类:
- On-Policy(基于当前策略)算法
- Off-Policy(基于不同策略)算法
On-Policy vs. Off-Policy
On-Policy算法
On-Policy算法直接利用当前策略(通常是行为策略,即采样数据时使用的策略)进行更新。这意味着,智能体在学习的过程中,始终依赖于它当前正在使用的策略。
代表性算法:
- SARSA(State-Action-Reward-State-Action)
- PPO(Proximal Policy Optimization)
- A2C/A3C(Advantage Actor-Critic)
特点:
- 依赖当前策略收集的数据进行训练。
- 学习更稳定,但可能会受限于当前策略的探索能力。
- 适用于策略梯度方法,如PPO、A2C等。
算法公式(以SARSA为例):
SARSA 使用以下更新公式:
Q ( s , a ) ← Q ( s , a ) + α [ r + γ Q ( s ′ , a ′ ) − Q ( s , a ) ] Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma Q(s', a') - Q(s,a)] Q(s,a)←Q(s,a)+α[r+γQ(s′,a′)−Q(s,a)]
其中:
- Q ( s , a ) Q(s,a) Q(s,a) 是当前状态动作对的价值。
- α \alpha α 是学习率。
- r r r 是当前奖励。
- γ \gamma γ 是折扣因子。
- s ′ , a ′ s', a' s′,a′ 是下一个状态和基于当前策略选出的动作。
- s → a → s ′ → a ′ s \to a \to s' \to a' s→a→s′→a′
Off-Policy算法
Off-Policy算法允许智能体使用一种策略(行为策略)收集数据,并使用另一种策略(目标策略)进行学习。这种方法可以让智能体利用历史经验进行学习,而不局限于当前策略的探索。
代表性算法:
- Q-Learning(深度Q网络DQN)
- DDPG(Deep Deterministic Policy Gradient)
- SAC(Soft Actor-Critic)
特点:
- 可以使用存储的经验进行训练,从而提升样本效率。
- 允许离线学习(Offline RL),适用于数据获取成本高的情况。
- 适用于基于值的强化学习方法,如Q-Learning、DQN等。
算法公式(以Q-Learning为例):
Q-Learning 使用以下更新公式:
Q ( s , a ) ← Q ( s , a ) + α [ r + γ max a ′ Q ( s ′ , a ′ ) − Q ( s , a ) ] Q(s,a) \leftarrow Q(s,a) + \alpha [r + \gamma \max_{a'} Q(s',a') - Q(s,a)] Q(s,a)←Q(s,a)+α[r+γmaxa′Q(s′,a′)−Q(s,a)]
其中:
- Q ( s , a ) Q(s,a) Q(s,a) 是状态-动作值函数。
- max a ′ Q ( s ′ , a ′ ) \max_{a'} Q(s',a') maxa′Q(s′,a′) 选择的是最优策略下的最大Q值,而不一定是行为策略采样的动作。
- s → a → s ′ → a ′ s \to a \to s' \to a' s→a→s′→a′
使用场景与选择
类别 | 适用场景 | 优势 | 劣势 |
---|---|---|---|
On-Policy | 适用于需要稳定学习的任务,如机器人控制、在线学习 | 更新稳定,适用于策略梯度方法 | 样本效率较低,难以利用历史经验 |
Off-Policy | 适用于数据获取成本高的任务,如自动驾驶、金融交易 | 样本利用率高,可以离线学习 | 训练不稳定,可能会出现策略偏差 |
总结
On-Policy和Off-Policy算法各有优缺点。在实际应用中,
- 如果任务允许高效的数据采样,且对学习的稳定性要求较高,On-Policy方法(如PPO、A2C)可能是更好的选择。
- 如果数据采样成本较高,或希望充分利用历史经验,Off-Policy方法(如DQN、SAC)更具优势。