CHAPTER 16
✓ 已完成
🤖

强化学习

Reinforcement Learning

学习目标

🎯
  • 理解强化学习的基本概念:状态、动作、奖励、策略
  • 掌握马尔可夫决策过程(MDP)的定义
  • 理解值函数和Q函数的概念
  • 了解Q-Learning和策略梯度方法
16.1

任务与奖励

强化学习基本概念

强化学习(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 → ...

  1. 智能体观察当前状态 st
  2. 根据策略π选择动作 at
  3. 环境转移到新状态 st+1,给予奖励 rt+1
  4. 重复上述过程

💡 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值的更新和策略的形成过程

网格世界

训练回合
0
当前步数
0
累积奖励
0
路径长度
0

💡 Q-Learning算法

Q值更新公式

Q(s,a) ← Q(s,a) + α[r + γ maxa'Q(s',a') - Q(s,a)]
  • • α: 学习率,控制新信息的权重
  • • γ: 折扣因子,控制未来奖励的重要性
  • • r: 即时奖励
  • • max Q(s',a'): 下一状态的最大Q值

ε-贪心策略

  • 探索(ε概率):随机选择动作,发现新策略
  • 利用(1-ε概率):选择Q值最大的动作
  • • 平衡探索与利用是强化学习的核心问题

关键概念

  • 状态(State): 智能体在网格中的位置
  • 动作(Action): 上下左右移动
  • 奖励(Reward): 到达目标+100,障碍-10,其他-1
  • Q表: 存储每个(状态,动作)对的价值
16.2

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)

贝叶斯方法,为每个动作维护奖励分布的后验:

  1. 为每个动作从其后验分布中采样一个期望奖励
  2. 选择采样值最大的动作
  3. 根据观测奖励更新后验分布

自然地平衡探索与利用,理论性质优秀

💡 应用场景

  • 在线广告:选择展示哪个广告以最大化点击率
  • 临床试验:动态分配病人到不同治疗方案
  • 推荐系统:探索新内容vs推荐已知喜好
🎮

多臂赌博机策略对比

对比ε-贪心、UCB、汤普森采样的累积奖励曲线

🚧 开发中...

16.3

有模型学习

马尔可夫决策过程(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)

  1. 策略评估:计算Vπ
  2. 策略改进:π' = greedy(Vπ)
  3. 重复直到收敛

价值迭代(Value Iteration)

  1. 直接迭代贝尔曼最优方程
  2. Vk+1(s) = maxa ...
  3. 收敛后提取最优策略

限制: 需要完整的环境模型(P和R),且状态空间不能太大

🎮

价值迭代可视化

在GridWorld上展示价值迭代算法的收敛过程

🚧 开发中...

16.4

免模型学习

蒙特卡洛方法

蒙特卡洛(Monte Carlo, MC)方法通过完整的情节采样来估计价值函数,无需环境模型。

MC策略评估

  1. 按策略π运行一个完整情节,记录轨迹
  2. 对轨迹中每个状态s,计算从s开始的实际回报G
  3. 更新V(s)为访问s时获得的回报的平均值
  4. 重复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的学习轨迹

🚧 开发中...

16.5

值函数逼近

函数逼近的必要性

当状态空间或动作空间非常大(连续、高维)时,无法为每个状态-动作对维护单独的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值演化

🚧 开发中...

16.6

模仿学习

模仿学习概述

模仿学习(Imitation Learning)通过观察专家演示来学习策略,避免从零开始探索,加速学习过程。

行为克隆(Behavioral Cloning)

将模仿学习视为监督学习问题:

  1. 收集专家轨迹数据 D = {(s₁, a₁*), (s₂, a₂*), ...}
  2. 训练策略πθ使其最小化:

L(θ) = 𝔼(s,a*)∈D [loss(πθ(s), a*)]

问题: 协变量偏移(covariate shift),学习的策略在未见状态上可能表现很差

数据聚合(DAgger)

迭代地收集数据和训练策略,减轻协变量偏移:

  1. 初始化策略π₁
  2. 对于迭代i = 1, 2, ...:
  3. • 用当前策略πᵢ收集轨迹
  4. • 请专家为这些状态标注动作
  5. • 聚合所有数据:Dᵢ = Dᵢ₋₁ ∪ {新数据}
  6. • 在Dᵢ上训练新策略πᵢ₊₁

DAgger让策略在自己产生的状态分布上学习,提高泛化能力

逆强化学习

逆强化学习(Inverse Reinforcement Learning, IRL)从专家演示中推断奖励函数,然后用该奖励函数训练策略。

IRL的动机

在许多任务中,设计奖励函数很困难,但容易获得专家演示。 IRL假设专家的行为是某个奖励函数下的最优策略, 通过观察专家行为来反推奖励函数。

最大熵IRL

假设专家策略不完全确定,遵循最大熵原则:

p(τ) ∝ exp(Σt r(st, at))

通过最大似然估计学习奖励函数参数

💡 应用

  • 自动驾驶:从人类驾驶行为学习驾驶策略
  • 机器人学习:从人类演示学习操作任务
  • 游戏AI:学习玩家偏好,生成有趣的对手
🎮

行为克隆vs DAgger

对比行为克隆和DAgger在导航任务中的性能差异

🚧 开发中...