第8章:强化学习与深度学习
8.1 强化学习基础
1. 强化学习的定义与核心概念
强化学习(Reinforcement Learning, RL)是机器学习的一个分支,其核心思想是智能体(Agent)通过与环境交互学习最优策略,以最大化累积奖励。关键要素包括:
- 环境(Environment):智能体交互的外部系统(如游戏、物理世界)。
- 状态(State):环境在某一时刻的表示(如棋盘布局、机器人传感器数据)。
- 动作(Action):智能体可执行的操作(如移动棋子、控制电机)。
- 奖励(Reward):环境对动作的即时反馈信号(如得分增减)。
- 策略(Policy):智能体的行为规则,映射状态到动作(确定性或概率性)。
2. 马尔可夫决策过程(MDP)
强化学习问题通常建模为马尔可夫决策过程,需满足马尔可夫性(未来状态仅依赖当前状态和动作)。MDP由以下组成:
- 状态空间 ( \mathcal{S} )
- 动作空间 ( \mathcal{A} )
- 状态转移概率 ( P(s' \mid s, a) )
- 奖励函数 ( R(s, a, s') )
- 折扣因子 ( \gamma \in [0, 1] )(平衡即时与未来奖励)
3. 强化学习的目标
智能体的目标是找到最优策略 ( \pi^* ),最大化期望回报(Return): [ G_t = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1} ] 常用方法包括:
- 价值函数(Value Function):评估状态或状态-动作对的长期价值。
- 状态价值函数:( V^\pi(s) = \mathbb{E}_\pi[G_t \mid S_t = s] )
- 动作价值函数:( Q^\pi(s, a) = \mathbb{E}_\pi[G_t \mid S_t = s, A_t = a] )
- 贝尔曼方程(Bellman Equation):价值函数的递归表示。
4. 强化学习的分类
| 类型 | 特点 | 典型算法 |
|---|---|---|
| 基于价值(Value-based) | 学习价值函数,间接推导策略(如选择最大Q值的动作) | Q-Learning、Deep Q-Network (DQN) |
| 基于策略(Policy-based) | 直接优化策略函数,适用于连续动作空间 | REINFORCE、PPO |
| Actor-Critic | 结合价值函数与策略函数,Actor改进策略,Critic评估动作 | A2C、A3C |
| 模型无关 vs 模型相关 | 是否显式学习环境动态模型(如状态转移概率) | Dyna、Model Predictive Control |
5. 探索与利用的权衡
- 探索(Exploration):尝试新动作以发现更高奖励。
- 利用(Exploitation):根据已知信息选择最优动作。
- 平衡方法:ε-贪婪策略、Softmax选择、UCB(Upper Confidence Bound)。
6. 强化学习与深度学习的结合
深度学习通过神经网络近似价值函数或策略,解决高维状态空间问题:
- 函数逼近:用深度网络替代表格型存储(如DQN用CNN处理图像输入)。
- 端到端学习:直接从原始输入(像素、文本)学习策略。
7. 简单示例:多臂老虎机
import numpy as np
# 定义3个老虎机的真实奖励概率
bandits = [0.2, 0.5, 0.7]
n_bandits = len(bandits)
# ε-贪婪策略
def epsilon_greedy(Q, epsilon=0.1):
if np.random.random() < epsilon:
return np.random.randint(n_bandits) # 探索
else:
return np.argmax(Q) # 利用
# 初始化Q值和动作计数
Q = np.zeros(n_bandits)
counts = np.zeros(n_bandits)
for _ in range(1000):
action = epsilon_greedy(Q)
reward = 1 if np.random.random() < bandits[action] else 0
counts[action] += 1
Q[action] += (reward - Q[action]) / counts[action] # 增量更新
print("Estimated Q values:", Q)
8. 挑战与常见问题
- 稀疏奖励:奖励信号极少(如围棋只有终局奖励)。
- 信用分配问题:确定哪个动作应对长期回报负责。
- 样本效率:需大量交互数据,尤其在真实环境中。
下一节预告:8.2 深度Q网络(DQN)将介绍如何用深度学习增强Q-Learning,解决高维状态空间问题。
此内容涵盖强化学习的核心理论、分类及与深度学习的结合点,并附代码示例说明基础概念。可根据需要扩展数学推导或实际案例(如机器人控制中的MDP建模)。