《智能计算》期末复习指南

强化学习核心概念与应用

强化学习基础概念

核心要素与定义

强化学习的四大要素

强化学习系统包含四个基本要素:

  1. 智能体 (Agent): 学习者和决策者
  2. 环境 (Environment): 智能体交互的对象
  3. 状态 (State, S): 环境的当前情况描述
  4. 动作 (Action, A): 智能体可以采取的行为

马尔可夫决策过程 (MDP)

MDP是强化学习的数学框架,定义为五元组:\((S, A, P, R, \gamma)\)

  • 状态空间 (S): 所有可能状态的集合
  • 动作空间 (A): 所有可能动作的集合
  • 转移概率 (P): \(P(s'|s,a)\) 表示在状态\(s\)执行动作\(a\)后转移到状态\(s'\)的概率
  • 奖励函数 (R): \(R(s,a,s')\) 表示转移获得的即时奖励
  • 折扣因子 (γ): \(0 \leq \gamma \leq 1\),控制对未来奖励的重视程度
马尔可夫性质

未来状态的概率分布仅依赖于当前状态和动作,与历史无关: \[P(S_{t+1}|S_t, A_t, S_{t-1}, A_{t-1}, ...) = P(S_{t+1}|S_t, A_t)\]

策略与值函数

策略 (Policy, π): 从状态到动作的映射 - 确定性策略: \(a = \pi(s)\) - 随机性策略: \(\pi(a|s) = P(A_t = a | S_t = s)\)

状态值函数: \(V^\pi(s) = E[G_t | S_t = s, \pi]\)

动作值函数: \(Q^\pi(s,a) = E[G_t | S_t = s, A_t = a, \pi]\)

其中累积回报: \(G_t = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1}\)

Bellman方程

Bellman期望方程

状态值函数的Bellman方程: \[V^\pi(s) = \sum_a \pi(a|s) \sum_{s'} P(s'|s,a)[R(s,a,s') + \gamma V^\pi(s')]\]

动作值函数的Bellman方程: \[Q^\pi(s,a) = \sum_{s'} P(s'|s,a)[R(s,a,s') + \gamma \sum_{a'} \pi(a'|s') Q^\pi(s',a')]\]

Bellman最优方程

最优状态值函数: \[V^*(s) = \max_a \sum_{s'} P(s'|s,a)[R(s,a,s') + \gamma V^*(s')]\]

最优动作值函数: \[Q^*(s,a) = \sum_{s'} P(s'|s,a)[R(s,a,s') + \gamma \max_{a'} Q^*(s',a')]\]

无模型学习方法

蒙特卡洛 (MC) 方法

特点

  • 无偏估计: 使用真实的累积回报\(G_t\)
  • 高方差: 依赖整个episode的随机性
  • 需要完整episode: 必须等到episode结束才能更新

更新规则

\[V(S_t) \leftarrow V(S_t) + \alpha[G_t - V(S_t)]\]

时序差分 (TD) 学习

特点

  • 有偏估计: 使用bootstrapping(自举)
  • 低方差: 只依赖一步的随机性
  • 单步更新: 每一步都可以更新

TD(0) 更新规则

\[V(S_t) \leftarrow V(S_t) + \alpha[R_{t+1} + \gamma V(S_{t+1}) - V(S_t)]\]

MC vs TD 对比
特性 MC方法 TD方法
偏差 无偏 有偏
方差
收敛性 保证收敛 通常收敛
更新时机 Episode结束 每一步
适用场景 有限episode 持续任务

经典控制算法

SARSA (同策略)

更新规则: \[Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha[R_{t+1} + \gamma Q(S_{t+1}, A_{t+1}) - Q(S_t, A_t)]\]

特点: - 同策略学习 (On-Policy) - 评估和改进的是当前执行的策略 - 相对保守,适合安全性要求高的场景

Q-Learning (离策略)

更新规则: \[Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha[R_{t+1} + \gamma \max_{a'} Q(S_{t+1}, a') - Q(S_t, A_t)]\]

特点: - 离策略学习 (Off-Policy) - 可以从其他策略的经验中学习 - 更激进,探索性更强

ε-贪婪策略

平衡探索与利用: \[ \pi(a|s) = \begin{cases} 1 - \epsilon + \frac{\epsilon}{|A|} & \text{if } a = \arg\max_{a'} Q(s,a') \\ \frac{\epsilon}{|A|} & \text{otherwise} \end{cases} \]

深度强化学习

函数逼近

当状态空间或动作空间过大时,需要使用函数逼近:

  • 线性函数逼近: \(\hat{V}(s,\mathbf{w}) = \mathbf{w}^T \mathbf{x}(s)\)
  • 非线性函数逼近: 神经网络等

深度Q网络 (DQN)

关键技术:

  1. 经验回放 (Experience Replay): 存储\((s,a,r,s')\)经验,随机采样打破相关性
  2. 目标网络 (Target Network): 提供稳定的学习目标
  3. 神经网络: 逼近Q函数

损失函数: \[L(\theta) = E[(r + \gamma \max_{a'} Q(s', a'; \theta^-) - Q(s, a; \theta))^2]\]

策略梯度方法

策略梯度定理

\[\nabla J(\theta) = E_{\pi_\theta}[\nabla_\theta \log \pi_\theta(a|s) Q^{\pi_\theta}(s,a)]\]

Actor-Critic方法

结构: - Actor: 学习策略\(\pi_\theta(a|s)\) - Critic: 学习值函数\(V_\phi(s)\)\(Q_\phi(s,a)\)

优势: - 结合值函数和策略梯度的优点 - 降低方差 - 适合连续动作空间

商业应用场景

常见应用领域

1. 动态定价

  • 状态: 需求量、库存、时间、竞争对手价格
  • 动作: 设置商品价格
  • 奖励: 利润、销量、市场份额

2. 推荐系统

  • 状态: 用户历史行为、偏好、上下文信息
  • 动作: 推荐的内容/商品
  • 奖励: 点击率、转化率、用户满意度

3. 金融风控

  • 状态: 用户信用信息、交易历史
  • 动作: 批准/拒绝贷款、额度设定
  • 奖励: 长期收益(考虑利息和违约风险)

实际应用挑战

1. Sim-to-Real Gap

模拟环境与真实环境的差异可能导致性能下降

2. 奖励函数设计

  • 需要准确反映长期商业目标
  • 避免”钻空子”行为
  • 平衡多个目标

3. 伦理考量

  • 算法偏见与公平性
  • 透明度与可解释性
  • 用户隐私保护

实践工具与框架

OpenAI Gym/Gymnasium

标准化的强化学习环境接口:

import gymnasium as gym

env = gym.make("CartPole-v1")
observation, info = env.reset()

for _ in range(1000):
    action = env.action_space.sample()  # 随机动作
    observation, reward, terminated, truncated, info = env.step(action)
    
    if terminated or truncated:
        observation, info = env.reset()

env.close()

Stable Baselines3

预实现的深度强化学习算法库:

from stable_baselines3 import DQN, A2C, PPO
from stable_baselines3.common.env_util import make_vec_env

# 创建环境
env = make_vec_env("CartPole-v1", n_envs=4)

# 训练DQN模型
model = DQN("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=25000)

# 评估模型
obs = env.reset()
for i in range(1000):
    action, _states = model.predict(obs, deterministic=True)
    obs, reward, done, info = env.step(action)

复习练习题

选择题练习

练习1

在强化学习中,折扣因子γ=0.9意味着: A) 智能体只关注即时奖励 B) 智能体更重视长期奖励 C) 10步后的奖励权重降为原来的约35% D) 智能体的学习速度很慢

答案:C

折扣因子γ=0.9意味着: - t+1步的奖励权重为\(\gamma^1 = 0.9\) - t+10步的奖励权重为\(\gamma^{10} = 0.9^{10} ≈ 0.35\)

因此10步后的奖励权重确实降为原来的约35%。

练习2

SARSA和Q-Learning的主要区别在于: A) SARSA是有模型的,Q-Learning是无模型的 B) SARSA使用实际选择的下一个动作,Q-Learning使用最优的下一个动作 C) SARSA适用于连续动作,Q-Learning适用于离散动作 D) SARSA收敛更快

答案:B

  • SARSA更新时使用\((S,A,R,S',A')\),其中\(A'\)是实际在\(S'\)选择的动作
  • Q-Learning更新时使用\(\max_{a'} Q(S',a')\),即最优动作的Q值
  • 这使得SARSA是同策略的,Q-Learning是离策略的

判断题练习

练习3

蒙特卡洛方法的估计是无偏的,时序差分方法的估计是有偏的。

正确

  • MC方法使用真实的累积回报\(G_t\),是\(V^\pi(s)\)的无偏估计
  • TD方法使用\(R_{t+1} + \gamma V(S_{t+1})\),由于\(V(S_{t+1})\)是估计值,所以是有偏估计

练习4

深度Q网络(DQN)中的目标网络参数需要与主网络同步更新以保证学习稳定性。

错误

目标网络的参数应该定期更新(如每1000步)而不是同步更新,这样可以: - 提供稳定的学习目标 - 避免学习过程中的震荡 - 提高训练稳定性

简答题练习

练习5

场景:智能交通信号控制

某城市希望使用强化学习优化交通信号灯控制,以减少车辆平均等待时间。请分析:

  1. 如何定义状态空间?
  2. 如何设计奖励函数?
  3. 这个应用中可能面临什么挑战?

1. 状态空间定义: - 各方向的车辆排队长度 - 当前信号灯状态和剩余时间 - 各方向的车流密度 - 时间特征(高峰期/非高峰期)

2. 奖励函数设计: - 负奖励:各方向车辆等待时间的加权和 - 正奖励:通过路口的车辆数量 - 平衡各方向的交通流量

3. 可能面临的挑战: - 多智能体协调(相邻路口的信号灯) - 安全约束(最小绿灯时间) - 实时性要求高 - 交通模式的非平稳性

练习6

算法比较:为什么Actor-Critic方法适合处理连续动作空间?

Actor-Critic适合连续动作空间的原因:

  1. 直接策略输出:Actor网络可以直接输出连续动作的参数(如高斯分布的均值和方差)
  2. 避免离散化:不需要将连续动作空间离散化,避免精度损失
  3. 梯度优化:可以直接对策略参数进行梯度优化
  4. 处理高维动作:相比DQN需要对每个动作计算Q值,Actor-Critic可以高效处理高维连续动作

对比DQN的局限性: - DQN需要\(\max_a Q(s,a)\)操作,在连续空间中难以实现 - 离散化会导致维度灾难或精度损失

计算题练习

练习7

给定一个简单的MDP,状态空间\(S = \{s_1, s_2\}\),动作空间\(A = \{a_1, a_2\}\),折扣因子\(\gamma = 0.9\)

转移概率和奖励如下: - \(P(s_1|s_1, a_1) = 0.8, R(s_1, a_1, s_1) = 2\) - \(P(s_2|s_1, a_1) = 0.2, R(s_1, a_1, s_2) = 1\) - \(P(s_1|s_1, a_2) = 0.3, R(s_1, a_2, s_1) = 1\) - \(P(s_2|s_1, a_2) = 0.7, R(s_1, a_2, s_2) = 3\)

假设在状态\(s_2\)采取任何动作都会回到\(s_1\)并获得奖励0。

策略\(\pi\)\(s_1\)等概率选择两个动作。计算\(V^\pi(s_1)\)

第一步:列出Bellman方程

\(V^\pi(s_1) = \sum_a \pi(a|s_1) \sum_{s'} P(s'|s_1,a)[R(s_1,a,s') + \gamma V^\pi(s')]\)

第二步:计算各项

对于动作\(a_1\)\(0.5 \times [0.8 \times (2 + 0.9 \times V^\pi(s_1)) + 0.2 \times (1 + 0.9 \times V^\pi(s_2))]\)

对于动作\(a_2\)\(0.5 \times [0.3 \times (1 + 0.9 \times V^\pi(s_1)) + 0.7 \times (3 + 0.9 \times V^\pi(s_2))]\)

第三步:计算\(V^\pi(s_2)\)

\(V^\pi(s_2) = 0 + 0.9 \times V^\pi(s_1) = 0.9 V^\pi(s_1)\)

第四步:代入求解

\(V^\pi(s_1) = 0.5 \times [0.8 \times (2 + 0.9 V^\pi(s_1)) + 0.2 \times (1 + 0.81 V^\pi(s_1))]\) \(+ 0.5 \times [0.3 \times (1 + 0.9 V^\pi(s_1)) + 0.7 \times (3 + 0.81 V^\pi(s_1))]\)

\(= 0.5 \times [1.6 + 0.72 V^\pi(s_1) + 0.2 + 0.162 V^\pi(s_1)]\) \(+ 0.5 \times [0.3 + 0.27 V^\pi(s_1) + 2.1 + 0.567 V^\pi(s_1)]\)

\(= 0.5 \times [1.8 + 0.882 V^\pi(s_1)] + 0.5 \times [2.4 + 0.837 V^\pi(s_1)]\)

\(= 0.9 + 0.441 V^\pi(s_1) + 1.2 + 0.4185 V^\pi(s_1)\)

\(= 2.1 + 0.8595 V^\pi(s_1)\)

解得:\(V^\pi(s_1) = \frac{2.1}{1 - 0.8595} = \frac{2.1}{0.1405} ≈ 14.95\)

总结与考试策略

重点概念回顾

  1. 基础概念:MDP、马尔可夫性质、策略、值函数
  2. 算法对比:MC vs TD、SARSA vs Q-Learning、同策略 vs 离策略
  3. 深度学习:DQN的关键技术、Actor-Critic架构
  4. 应用场景:商业应用的建模思路、伦理考量

答题技巧

选择题

  • 仔细区分概念的细微差别
  • 注意算法的适用条件和特点
  • 关注数值计算的正确性

判断题

  • 注意绝对化表述(“总是”、“从不”等)
  • 理解概念间的逻辑关系
  • 区分理论理想情况与实际应用

简答题

  • 结构化回答,分点列述
  • 结合具体场景说明概念
  • 注意理论与实践的结合

计算题

  • 列出相关公式
  • 逐步计算,标明每一步
  • 检查答案的合理性
考试提醒
  1. 时间分配:选择题40分钟,判断题20分钟,简答题60分钟
  2. 审题仔细:注意题目中的关键词和限定条件
  3. 答案完整:简答题要答全要点,不要遗漏
  4. 字迹清晰:保证阅卷老师能够清楚识别

祝各位同学考试顺利!