任务与奖励
强化学习基本概念
强化学习(Reinforcement Learning, RL)研究智能体(agent)如何在环境(environment)中学习,通过试错来发现能获得最大奖励的行为策略。
RL的核心要素
- 智能体(Agent): 学习和决策的主体
- 环境(Environment): 智能体交互的对象
- 状态(State) s ∈ S: 环境的当前情况
- 动作(Action) a ∈ A: 智能体可以执行的操作
- 奖励(Reward) r: 环境对智能体动作的即时反馈
- 策略(Policy) π: 状态到动作的映射,π(a|s)
交互循环
RL的学习过程是一个连续的交互循环:
st → at → rt+1, st+1 → at+1 → ...
- 智能体观察当前状态 st
- 根据策略π选择动作 at
- 环境转移到新状态 st+1,给予奖励 rt+1
- 重复上述过程
💡 RL vs 监督学习
- 无直接监督信号: 只有奖励反馈,没有正确答案标签
- 延迟反馈: 当前动作的结果可能在很久之后才显现
- 探索与利用: 需要在尝试新动作和使用已知好动作之间权衡
- 序列决策: 当前决策影响未来状态和奖励
累积奖励与回报
RL的目标是最大化累积奖励(return), 而不仅仅是即时奖励。
回报定义
从时刻t开始的累积奖励(回报):
Gt = rt+1 + γrt+2 + γ²rt+3 + ... = Σk=0∞ γᵏrt+k+1
γ ∈ [0, 1] 是折扣因子(discount factor),控制未来奖励的重要程度
折扣因子的作用
- γ = 0: 只关心即时奖励(短视)
- γ → 1: 平等对待所有未来奖励(远见)
- 0 < γ < 1: 近期奖励更重要,远期奖励逐渐衰减
折扣因子确保无限时间范围的回报有界,且符合"鸟在手胜于林中鸟"的直觉。
任务类型
情节式任务(Episodic)
有明确的终止状态,如棋局、游戏关卡。每个情节独立。
持续式任务(Continuing)
没有自然终止点,持续运行,如机器人控制、股票交易。
Q-Learning网格世界演示
智能体在网格世界中学习找到最优路径,观察Q值的更新和策略的形成过程
网格世界
💡 Q-Learning算法
Q值更新公式
- • α: 学习率,控制新信息的权重
- • γ: 折扣因子,控制未来奖励的重要性
- • r: 即时奖励
- • max Q(s',a'): 下一状态的最大Q值
ε-贪心策略
- • 探索(ε概率):随机选择动作,发现新策略
- • 利用(1-ε概率):选择Q值最大的动作
- • 平衡探索与利用是强化学习的核心问题
关键概念
- • 状态(State): 智能体在网格中的位置
- • 动作(Action): 上下左右移动
- • 奖励(Reward): 到达目标+100,障碍-10,其他-1
- • Q表: 存储每个(状态,动作)对的价值
K-摇臂赌博机
多臂赌博机问题
K-摇臂赌博机(K-armed Bandit)是RL的简化版本,只有一个状态,用于理解探索与利用的权衡。
问题设定
- 有K个摇臂(动作),每个摇臂的奖励服从未知分布
- 每次选择一个摇臂,获得该摇臂的随机奖励
- 目标:最大化T次拉动后的累积奖励
核心挑战: 需要在探索(尝试未知摇臂以获取信息)和利用(选择当前最优摇臂)之间权衡。
动作价值
动作a的真实价值:
q*(a) = 𝔼[r | a]
动作a的估计价值(基于样本平均):
Qt(a) = (拉动a获得的奖励总和) / (拉动a的次数)
探索与利用策略
ε-贪心策略(ε-Greedy)
- 以概率 1-ε 选择当前最优动作(利用):a* = argmaxa Q(a)
- 以概率 ε 随机选择一个动作(探索)
简单有效,但探索效率较低(随机探索)
UCB(Upper Confidence Bound)
选择具有最大上界置信区间的动作:
at = argmaxa [Qt(a) + c√(ln t / Nt(a))]
Nt(a): 动作a被选择的次数
c: 控制探索程度的参数
UCB基于"乐观面对不确定性"原则,优先探索不确定的动作
汤普森采样(Thompson Sampling)
贝叶斯方法,为每个动作维护奖励分布的后验:
- 为每个动作从其后验分布中采样一个期望奖励
- 选择采样值最大的动作
- 根据观测奖励更新后验分布
自然地平衡探索与利用,理论性质优秀
💡 应用场景
- • 在线广告:选择展示哪个广告以最大化点击率
- • 临床试验:动态分配病人到不同治疗方案
- • 推荐系统:探索新内容vs推荐已知喜好
多臂赌博机策略对比
对比ε-贪心、UCB、汤普森采样的累积奖励曲线
🚧 开发中...
有模型学习
马尔可夫决策过程(MDP)
马尔可夫决策过程(Markov Decision Process, MDP)是RL的数学框架,由五元组 (S, A, P, R, γ) 定义。
MDP的组成
- S:状态空间
- A:动作空间
- P:状态转移概率,P(s'|s, a)
- R:奖励函数,R(s, a, s')
- γ:折扣因子
马尔可夫性质
未来状态只依赖于当前状态和动作,与历史无关:
P(st+1 | st, at, st-1, at-1, ...) = P(st+1 | st, at)
价值函数
状态价值函数 Vπ(s)
从状态s开始,遵循策略π的期望回报
Vπ(s) = 𝔼π[Gt | st = s]
动作价值函数 Qπ(s, a)
从状态s执行动作a后,遵循策略π的期望回报
Qπ(s, a) = 𝔼π[Gt | st = s, at = a]
贝尔曼方程与动态规划
贝尔曼期望方程
价值函数满足递归关系:
Vπ(s) = Σa π(a|s) Σs' P(s'|s,a) [R(s,a,s') + γVπ(s')]
贝尔曼最优方程
最优价值函数:
V*(s) = maxa Σs' P(s'|s,a) [R(s,a,s') + γV*(s')]
最优策略:π*(s) = argmaxa Q*(s, a)
动态规划算法
策略迭代(Policy Iteration)
- 策略评估:计算Vπ
- 策略改进:π' = greedy(Vπ)
- 重复直到收敛
价值迭代(Value Iteration)
- 直接迭代贝尔曼最优方程
- Vk+1(s) = maxa ...
- 收敛后提取最优策略
限制: 需要完整的环境模型(P和R),且状态空间不能太大
价值迭代可视化
在GridWorld上展示价值迭代算法的收敛过程
🚧 开发中...
免模型学习
蒙特卡洛方法
蒙特卡洛(Monte Carlo, MC)方法通过完整的情节采样来估计价值函数,无需环境模型。
MC策略评估
- 按策略π运行一个完整情节,记录轨迹
- 对轨迹中每个状态s,计算从s开始的实际回报G
- 更新V(s)为访问s时获得的回报的平均值
- 重复1-3多个情节
优点:简单,无偏估计;缺点:需要等到情节结束,方差大
时序差分学习
时序差分(Temporal Difference, TD)学习结合MC和动态规划的思想,每一步都可以更新价值估计。
TD(0)算法
观察到转移 s → r, s′ 后,更新:
V(s) ← V(s) + α[r + γV(s′) - V(s)]
TD目标:r + γV(s′)
TD误差:δ = r + γV(s′) - V(s)
α:学习率
SARSA算法
On-policy TD控制算法,直接学习Q函数:
Q(s,a) ← Q(s,a) + α[r + γQ(s′,a′) - Q(s,a)]
名称来源于更新使用的序列:(St, At, Rt+1, St+1, At+1)
Q-Learning算法
Off-policy TD控制算法,直接学习最优Q函数:
Q(s,a) ← Q(s,a) + α[r + γ maxa′Q(s′,a′) - Q(s,a)]
关键区别: Q-Learning使用max选择下一动作(贪心),而SARSA使用策略实际选择的动作
✓ TD方法优点
- • 可以在线学习(每步更新)
- • 适用于持续任务
- • 通常比MC收敛更快
⚠️ On-policy vs Off-policy
- • SARSA (on-policy): 更保守,考虑探索
- • Q-Learning (off-policy): 更激进,直接学最优
SARSA vs Q-Learning
在悬崖行走环境中对比SARSA和Q-Learning的学习轨迹
🚧 开发中...
值函数逼近
函数逼近的必要性
当状态空间或动作空间非常大(连续、高维)时,无法为每个状态-动作对维护单独的Q值。值函数逼近使用参数化函数近似价值函数。
函数逼近器
V̂(s, w) ≈ Vπ(s)
Q̂(s, a, w) ≈ Qπ(s, a)
其中w是可学习的参数向量
常用函数逼近器
- 线性函数: V̂(s, w) = wTφ(s),φ(s)是特征向量
- 神经网络: 深度神经网络,自动学习特征表示(深度强化学习)
- 核方法: 基于核函数的非线性逼近
深度Q网络(DQN)
DQN(Deep Q-Network)使用深度神经网络逼近Q函数,实现端到端的强化学习,是深度强化学习的里程碑。
DQN的关键技术
- 经验回放(Experience Replay)
将经验(s, a, r, s′)存入回放缓冲区,训练时随机采样batch, 打破样本相关性,提高数据效率
- 目标网络(Target Network)
使用独立的目标网络计算TD目标,定期从主网络复制参数, 稳定训练过程
DQN损失函数
L(w) = 𝔼[(r + γ maxa′Q̂(s′,a′,w-) - Q̂(s,a,w))²]
w- 是目标网络的参数
💡 DQN的成就
DQN在多款Atari游戏上达到或超越人类水平,仅使用原始像素输入, 展示了深度学习与强化学习结合的巨大潜力。
策略梯度方法
策略梯度(Policy Gradient)方法直接参数化策略 π(a|s, θ),通过梯度上升优化策略参数。
REINFORCE算法
目标:最大化期望回报 J(θ) = 𝔼πθ[G]
∇θJ(θ) = 𝔼πθ[Gt ∇θ log πθ(at|st)]
参数更新:θ ← θ + α Gt ∇θ log πθ(at|st)
Actor-Critic方法
结合策略梯度和值函数逼近:
- • Actor:策略网络,决定动作
- • Critic:价值网络,评估状态/动作
用Critic的估计代替REINFORCE中的回报,降低方差。 代表算法:A3C、DDPG、SAC、PPO等。
✓ 策略梯度优点
- • 适用于连续动作空间
- • 可以学习随机策略
- • 有更好的收敛性保证
✗ 策略梯度缺点
- • 通常样本效率较低
- • 容易陷入局部最优
- • 方差较大,训练不稳定
DQN训练过程
可视化DQN在CartPole环境中的学习曲线和Q值演化
🚧 开发中...
模仿学习
模仿学习概述
模仿学习(Imitation Learning)通过观察专家演示来学习策略,避免从零开始探索,加速学习过程。
行为克隆(Behavioral Cloning)
将模仿学习视为监督学习问题:
- 收集专家轨迹数据 D = {(s₁, a₁*), (s₂, a₂*), ...}
- 训练策略πθ使其最小化:
L(θ) = 𝔼(s,a*)∈D [loss(πθ(s), a*)]
问题: 协变量偏移(covariate shift),学习的策略在未见状态上可能表现很差
数据聚合(DAgger)
迭代地收集数据和训练策略,减轻协变量偏移:
- 初始化策略π₁
- 对于迭代i = 1, 2, ...:
- • 用当前策略πᵢ收集轨迹
- • 请专家为这些状态标注动作
- • 聚合所有数据:Dᵢ = Dᵢ₋₁ ∪ {新数据}
- • 在Dᵢ上训练新策略πᵢ₊₁
DAgger让策略在自己产生的状态分布上学习,提高泛化能力
逆强化学习
逆强化学习(Inverse Reinforcement Learning, IRL)从专家演示中推断奖励函数,然后用该奖励函数训练策略。
IRL的动机
在许多任务中,设计奖励函数很困难,但容易获得专家演示。 IRL假设专家的行为是某个奖励函数下的最优策略, 通过观察专家行为来反推奖励函数。
最大熵IRL
假设专家策略不完全确定,遵循最大熵原则:
p(τ) ∝ exp(Σt r(st, at))
通过最大似然估计学习奖励函数参数
💡 应用
- • 自动驾驶:从人类驾驶行为学习驾驶策略
- • 机器人学习:从人类演示学习操作任务
- • 游戏AI:学习玩家偏好,生成有趣的对手
行为克隆vs DAgger
对比行为克隆和DAgger在导航任务中的性能差异
🚧 开发中...