1. 强化学习基础与贝尔曼方程
强化学习作为机器学习的重要分支,其核心在于智能体通过与环境的交互学习最优策略。贝尔曼方程作为强化学习的数学基础,为价值函数的计算提供了递归解决方案。
1.1 马尔可夫决策过程框架
任何强化学习问题都可以建模为马尔可夫决策过程(MDP),由五元组(S,A,P,R,γ)定义:
- S:状态空间
- A:动作空间
- P:状态转移概率
- R:奖励函数
- γ:折扣因子
在这个框架下,智能体在状态s选择动作a,环境返回新状态s'和即时奖励r。这个过程的关键特性是马尔可夫性——下一状态只取决于当前状态和动作。
1.2 价值函数与贝尔曼方程
价值函数分为状态价值函数V(s)和动作价值函数Q(s,a),分别表示从状态s开始或在状态s采取动作a后能获得的期望回报。
贝尔曼方程揭示了价值函数的递归特性:
V(s) = Σ_a π(a|s)Σ_s' P(s'|s,a)[R(s,a,s') + γV(s')]
Q(s,a) = Σ_s' P(s'|s,a)[R(s,a,s') + γΣ_a' π(a'|s')Q(s',a')]
这个方程组的核心思想是将长期回报分解为即时奖励和未来回报的折现,为后续的时序差分方法奠定了理论基础。
2. 动态规划与模型基础方法
2.1 策略评估算法
给定固定策略π,策略评估通过迭代应用贝尔曼方程来计算精确的价值函数:
- 初始化V(s)为任意值(通常为0)
- 对每个状态s,更新V(s) ← Σ_a π(a|s)Σ_s' P(s'|s,a)[R(s,a,s') + γV(s')]
- 重复步骤2直到收敛
这个过程的收敛性由贝尔曼算子的压缩映射性质保证,通常需要完整的环境模型(知道P和R)。
2.2 策略改进与策略迭代
基于计算出的价值函数,可以通过贪婪策略改进:
π'(s) = argmax_a Q(s,a)
策略迭代交替进行策略评估和策略改进,直到策略稳定。虽然保证收敛到最优策略,但每次迭代都需要完整的策略评估,计算成本较高。
2.3 价值迭代算法
价值迭代将策略评估和策略改进结合为一步操作:
V(s) ← max_a Σ_s' P(s'|s,a)[R(s,a,s') + γV(s')]
这种方法更高效,但同样需要完整的环境模型。在实际应用中,当状态空间很大时,精确的动态规划方法会面临"维度灾难"问题。
3. 蒙特卡洛方法与无模型学习
3.1 蒙特卡洛预测
蒙特卡洛方法通过采样轨迹来估计价值函数,不需要环境模型。对于给定的策略π:
- 生成从状态s开始的完整轨迹
- 计算实际回报G_t = Σ_{k=0}^∞ γ^k R_
- 更新V(s) ← V(s) + α(G_t - V(s))
其中α是学习率。蒙特卡洛方法必须等到回合结束才能更新,适用于回合制任务。
3.2 蒙特卡洛控制
结合策略改进的蒙特卡洛控制算法:
- 初始化随机策略π和价值函数Q
- 生成轨迹,记录状态、动作、奖励
- 对轨迹中的每个(s,a)对,计算G_t并更新Q(s,a)
- 改进策略:π(s) ← argmax_a Q(s,a)
ε-贪婪策略常用于平衡探索和利用,以概率ε选择随机动作,否则选择贪婪动作。
4. 时序差分学习原理
4.1 TD预测算法
时序差分(TD)方法结合了蒙特卡洛采样和动态规划的自举思想。最简单的TD(0)算法:
V(s_t) ← V(s_t) + α[r_{t+1} + γV(s_{t+1}) - V(s_t)]
其中δ_t = r_{t+1} + γV(s_{t+1}) - V(s_t)称为TD误差。与蒙特卡洛相比,TD方法可以逐步更新,不需要等待回合结束。
4.2 SARSA算法
基于TD控制的on-policy算法SARSA:
Q(s_t,a_t) ← Q(s_t,a_t) + α[r_{t+1} + γQ(s_{t+1},a_{t+1}) - Q(s_t,a_t)]
算法名称来源于状态(s)-动作(a)-奖励(r)-状态(s)-动作(a)的更新序列。SARSA学习当前策略π对应的Q函数,策略改进通常采用ε-贪婪方法。
4.3 Q-learning算法
最具影响力的off-policy TD控制算法:
Q(s_t,a_t) ← Q(s_t,a_t) + α[r_{t+1} + γmax_a Q(s_{t+1},a) - Q(s_t,a_t)]
与SARSA的关键区别在于使用max操作估计下一状态的最优价值,而不是遵循当前策略。这使得Q-learning可以学习最优策略而不受行为策略影响。
5. TD方法的深度解析与改进
5.1 TD(λ)与资格迹
TD(λ)通过资格迹统一了TD和蒙特卡洛方法:
e_t(s) = γλe_{t-1}(s) + I(s=s_t)
δ_t = r_{t+1} + γV(s_{t+1}) - V(s_t)
V(s) ← V(s) + αδ_t e_t(s)
当λ=0时退化为TD(0),λ=1时等价于蒙特卡洛。资格迹e_t(s)记录了状态s的"近期活跃度",实现了高效的多步更新。
5.2 双Q学习与最大化偏差
Q-learning中的max操作会导致过高估计(最大化偏差)。双Q学习使用两个Q函数交替更新:
Q1(s_t,a_t) ← Q1(s_t,a_t) + α[r_{t+1} + γQ2(s_{t+1},argmax_a Q1(s_{t+1},a)) - Q1(s_t,a_t)]
这种方法有效减少了偏差,在Atari游戏等复杂任务中表现更好。
5.3 经验回放与目标网络
深度Q网络(DQN)的两大创新:
- 经验回放:存储转移(s,a,r,s')在缓冲区,随机采样打破相关性
- 目标网络:使用独立的网络生成TD目标,定期更新,提高稳定性
这些技术使得TD方法能够与深度神经网络结合,处理高维状态空间。
6. 实际应用与调参经验
6.1 学习率调度策略
学习率α的选择至关重要:
- 线性衰减:α_t = α_0(1 - t/T)
- 逆时间衰减:α_t = α_0/(1 + βt)
- 自适应方法:AdaGrad, RMSProp
实践中通常需要尝试多种方案,观察学习曲线调整。太大会导致震荡,太小则学习缓慢。
6.2 折扣因子γ的影响
γ∈[0,1]平衡即时和未来奖励:
- γ接近1:重视长期回报,但可能难以收敛
- γ接近0:短视行为,可能错过最优策略
在持续任务中通常取0.9-0.99,回合制任务可根据平均回合长度调整。
6.3 探索策略设计
除了ε-贪婪,还有:
- 玻尔兹曼探索:按Q值概率选择动作
- 不确定性探索:基于估计的置信度
- 内在好奇心:鼓励访问新状态
在长期训练中,通常需要退火ε从1.0到0.1左右,平衡早期探索和后期利用。
7. 前沿发展与挑战
7.1 分布式强化学习
Gorila框架和IMPALA等架构实现了:
- 并行环境交互
- 异步参数更新
- 经验收集与学习分离
大幅提高了样本效率,但需要复杂的工程实现。
7.2 多步TD方法
Rainbow等算法结合:
- 多步TD目标(n-step returns)
- 优先级经验回放
- 分布式价值表示
在Atari基准上达到人类水平,但超参数更多,调优困难。
7.3 基于模型的TD方法
如MuZero等算法:
- 学习环境模型
- 用模型规划生成TD目标
- 结合模型自由学习
在样本效率上有优势,但模型误差会传播,需要谨慎设计。