Reinforcement Learning
强化学习 (RL) 通过试错训练智能体,以最大化长期奖励。涵盖 RL 循环、Q-learning、算法类别和应用。
强化学习(RL)是机器学习(ML)的一个分支;在强化学习中,智能体通过在环境中尝试操作并获得奖励或惩罚,学习一系列决策,以便随着时间推移尽可能多地累积奖励。没有人会告诉智能体哪个操作才是正确的;它会自行发现哪些操作有回报,包括那些许多步之后才会产生回报的操作,例如一着能在十步后赢得子力的棋步。因此,强化学习是序列控制问题的标准方法,可用于玩游戏、操控机器人,以及训练大型语言模型(LLM),使其倾向于给出人们偏好的回答,或程序可以验证的回答。现代强化学习领域奠基教材的作者 Richard Sutton 和 Andrew Barto,因其在强化学习方面的基础性工作获得了 2024 年 ACM A.M. 图灵奖。
强化学习的工作原理#
强化学习问题通常会形式化为马尔可夫决策过程(MDP)。在每个时间步,智能体都会观察当前状态,从其动作空间中选择一个动作,并接收奖励和下一个状态。它的目标是最大化回报,即未来奖励的总和;介于 0 和 1 之间的折扣因子会降低远期奖励相对于即时奖励的重要性。奖励是智能体获得的唯一任务描述,因此奖励设计不当会引发奖励劫持:智能体虽能获得高分,却没有完成设计者预期的任务。
- 智能体:学习者和决策者,例如机器人控制器或游戏程序。
- 环境:智能体交互的一切对象,从物理模拟器到真实的仓库地面。
- 状态:智能体据以采取行动的信息,例如关节角度、棋盘位置或从摄像头帧中提取的特征。
- 动作:智能体可以采取的选择,可以是离散的(向左或向右),也可以是连续的(转向角度)。
- 奖励:环境在每次动作后返回的数值;进展会得到正值,错误或浪费时间则会得到负值。
- 策略:智能体在每个状态下选择动作的规则,也是训练要改进的对象。
- 价值函数:从某个状态出发,或在某个状态下采取特定动作所能获得的预期回报;它让智能体能够根据动作的长期后果来评估动作。
由于智能体只能从自己尝试过的动作中学习,因此必须在探索和利用之间取得平衡:探索是尝试价值尚不确定的动作,利用则是选择当前看起来最好的动作。常见规则是 ε-贪心:以较小概率随机行动,否则采取贪心策略。下面的 NumPy 示例使用 Q-learning(一种经典算法,用于学习每个状态-动作对的价值),教智能体沿着六格走廊前进,抵达尽头的奖励处:
import numpy as np
rng = np.random.default_rng(0)
# 6 格走廊:从第 0 格出发,到达第 5 格可获得 +1 奖励;动作 0 = 向左,动作 1 = 向右
n_states, goal = 6, 5
Q = np.zeros((n_states, 2)) # 每个(状态,动作)的估计回报
alpha, gamma, epsilon = 0.5, 0.9, 0.2 # 学习率、折扣因子、探索率
for episode in range(200):
state = 0
while state != goal:
# 以 epsilon 的概率进行探索,否则利用当前已知的最佳动作
action = rng.integers(2) if rng.random() < epsilon else Q[state].argmax()
next_state = max(0, state - 1) if action == 0 else state + 1
reward = 1.0 if next_state == goal else 0.0
# Q-learning 更新:朝奖励和下一状态折扣后最佳价值之和的方向更新
Q[state, action] += alpha * (reward + gamma * Q[next_state].max() - Q[state, action])
state = next_state
print("Greedy policy:", ["left" if a == 0 else "right" for a in Q[:goal].argmax(axis=1)])
print("Value of moving right:", Q[:goal, 1].round(2))它会在每一格打印策略 right 和价值 [0.66 0.73 0.81 0.9 1. ]。奖励只在最后一格发放,但更新将奖励向前传播了;离目标越远一步,价值就乘以 0.9,这正是折扣因子的作用。
强化学习算法类别#
上面这类表格方法会为每个状态存储一个价值;但当状态变成摄像头图像或连续关节角度时,这种方法就行不通了。深度强化学习用神经网络取代表格,让模型能够对相似状态进行泛化;主要算法类别的区别在于网络要学习什么:
无模型智能体完全从真实或模拟经验中学习;基于模型的智能体则学习一个世界模型,预测环境会如何响应,再借助该模型进行规划,例如使用模型预测控制或蒙特卡洛树搜索。近端策略优化 (PPO) 会限制每次更新对策略的改变量,因此成为机器人技术和语言模型训练中默认的策略梯度方法;群体相对策略优化 (GRPO)则通过移除训练得到的评论家模型,将 PPO 改造用于 LLM 推理。OpenAI 的Spinning Up通过参考实现讲解了这些算法。
实际应用#
- 游戏:DeepMind 的 AlphaGo 将深度神经网络与树搜索和强化学习自我对弈相结合,于 2016 年 3 月以 4 比 1 的比分击败围棋冠军李世石。
- 机器人技术:四足和人形机器人的运动控制器通过强化学习,在数千个并行模拟机器人上进行训练;模拟中通常会随机化摩擦力、质量和地形,使策略能够迁移到真实硬件。
- 语言模型对齐:聊天助手通过强化学习进行微调,优化依据人类偏好比较训练出的奖励模型;推理模型则通过强化学习进行训练,奖励来自验证数学答案或运行单元测试的自动检查器。
- 推荐系统:将一系列推荐视为一连串决策,可以让系统优化长期参与度,而不只是追求下一次点击。
大多数机器人策略都在模拟环境中训练,因为智能体可能需要尝试数百万次,而真实硬件也容易损坏。例如,NVIDIA Isaac Lab等框架可在一块 GPU 上运行数千个环境;领域随机化则缩小了模拟物理与真实物理之间的差距。基于摄像头的强化学习系统通常根据感知模型的输出而不是原始像素进行操作:在机器人上通过ROS 集成运行的Ultralytics YOLO26,会将每个摄像头画面中的物体类别发布为轻量级消息;如果配有深度摄像头,还会发布每个物体的距离,供策略作为状态输入。
强化学习与相关范式的比较#
- 监督学习:每个训练样本都附有正确答案。强化学习智能体只获得一个标量奖励,奖励往往会延迟;而且智能体自身的动作会决定它接下来看到哪些数据。
- 无监督学习:模型会在无标签数据中发现聚类等结构,不需要采取任何动作,也没有需要最大化的奖励。
- 马尔可夫决策过程:MDP 是对问题的描述,而强化学习是一类通过经验求解 MDP、无需预先获得状态转移概率的方法。
- 模仿学习:智能体模仿专家演示,通常难以超越老师;而强化学习可以发现演示者从未展示过的策略。两者经常结合使用:AlphaGo 先从人类对局中的 3000 万个棋局学会下棋,再通过自我对弈提升;其后继版本 AlphaGo Zero 完全跳过人类数据训练,并以 100 比 0 击败 AlphaGo。










