从试错到策略:用数据流读懂强化学习

5308 字
27 分钟
从试错到策略:用数据流读懂强化学习

1. 为什么强化学习不是另一种监督学习#

监督学习像做有答案的练习册。输入一张图,标签告诉你这是猫还是狗;模型错了,损失函数立刻指出错在哪里。

强化学习更像打游戏。你按下一个键,环境不会告诉你“这一步的标准答案是向左”。它只会在一段时间后给你分数、生命值、是否过关,或者什么都不给。

这就是强化学习难的地方:模型要从延迟的、不完整的、带噪声的反馈里学出一套行动策略。

学习范式训练数据长什么样模型学什么典型问题
监督学习输入 x 和标准答案 y从输入到答案的映射图片分类、语音识别、机器翻译
无监督学习只有输入,没有明确答案数据里的结构和分布聚类、降维、表示学习
强化学习状态、动作、奖励组成的交互轨迹怎样行动才能让长期回报更高游戏 AI、机器人控制、调度、推荐策略

**最先要改掉的直觉:**强化学习不是让模型模仿一份标准答案,而是让模型在环境里试错,用奖励信号修正自己的行动方式。

2. 强化学习到底是什么#

强化学习研究的是一个智能体如何通过和环境交互,学习一个能最大化长期回报的策略。Sutton 和 Barto 的教材把它放在“目标导向的试错学习”这个框架里理解,这比一开始就背公式更靠谱 [1]

这里有三个关键词。

交互 智能体不是拿到一批静态样本就结束。它的动作会改变后续看到的状态。

试错 一开始不知道什么动作好,只能在探索中积累经验。

长期回报 眼前奖励高,不代表最终结果好。强化学习看的是一串动作之后的总收益。

强化学习问题可以压缩成一句话:
在状态 s 下选择动作 a,
环境给出奖励 r 和下一个状态 s',
智能体用这次经验更新策略,
目标是让未来累计奖励尽可能高。

如果把这个句子里的每个词拆开,基本就能搭起强化学习的主干。

3. Agent 和 Environment 的交互循环#

强化学习的数据不是预先整理好的表格,而是一条一条交互轨迹。智能体先观察环境,再做动作;环境根据动作改变状态,并返回奖励。

Agent做决策的模型 → Action a向左 / 下单 / 加速 → Environment游戏 / 机器人 / 用户系统 → State s' + Reward r新状态和反馈 ↺

强化学习的数据流

图示:Agent 和 Environment 的强化学习循环

智能体根据状态选择动作,环境根据动作返回奖励和下一个状态,经验进入学习算法后更新策略。

强化学习的数据不是一次性输入输出,而是一个闭环。动作会影响环境,环境反馈又会改变下一次动作。

一条完整轨迹通常写成:

s0, a0, r1, s1, a1, r2, s2, a2, r3, ...

注意奖励的下标习惯可能随教材不同略有差异,但含义一样:某个动作之后,环境给出一个反馈。

4. State、Observation 和 Action#

State 是环境当前所处的真实状态。Observation 是智能体实际看到的东西。两者不一定相同。

比如打牌时,完整状态包括所有人的手牌;你能观察到的只有自己的牌、桌面信息和历史动作。机器人在真实世界里也一样,传感器看到的是带噪声的局部信息。

概念含义例子容易踩的坑
State环境真实状态棋盘全部棋子、机器人真实位置和速度很多任务里拿不到完整 state
Observation智能体实际看到的信息摄像头画面、传感器读数、用户最近行为观测可能有噪声、延迟或缺失
Action智能体能做的选择上/下/左/右,油门角度,推荐哪条内容动作空间太大会让探索成本暴涨

Action space 可以是离散的,也可以是连续的。走迷宫的上下左右是离散动作;机械臂每个关节转多少角度就是连续动作。

**实现时最先问的问题:**智能体看到的信息够不够决策?动作定义是否太粗或太细?奖励是否真的对应你要的目标?这些问题比换一个更复杂的算法更早决定成败。

5. Reward 和 Return 的区别#

Reward 是某一步拿到的即时奖励。Return 是从某个时刻开始,未来奖励加起来之后的总回报。

强化学习的目标通常不是最大化下一秒的 reward,而是最大化长期 return。这个差别看起来小,实际很要命。

G_t = R_{t+1} + γ R_{t+2} + γ² R_{t+3} + ...

这里的 γ 叫折扣因子,通常在 0 到 1 之间。它控制未来奖励现在还值多少钱。

γ 接近 0 智能体更短视,更在意眼前奖励。

γ 接近 1 智能体更在意长期结果,但估计未来会更难。

γ 不是道德参数 它只是任务建模选择。游戏、金融、机器人控制里的合理取值不一定相同。

一个常见例子是吃金币游戏。离你最近的金币可能立刻给 +1,但拿它会把你带进死胡同。另一条路前几步没有奖励,最后能拿到 +20。强化学习要学的是第二种长期更好的选择。

6. Policy 是行动倾向,不是死规则#

Policy,通常写作 π,描述智能体在某个状态下如何选择动作。

π(a | s) = 在状态 s 下选择动作 a 的概率

如果策略在每个状态下都固定选择一个动作,它是确定性策略。比如“看到红灯就刹车”。

如果策略给每个动作一个概率,它是随机策略。比如“70% 选择向右,20% 选择向上,10% 选择向左”。

State s当前位置和局面 → Policy π动作分布 → Action a采样或取最大概率 → Experience用结果更新 π

随机策略不是优柔寡断。它让智能体保留探索能力,也让策略梯度这类算法可以用概率变化来估计“哪些动作应该更常出现”。

7. Value 和 Q-value 分别回答什么#

强化学习里有两类很常见的价值函数。

函数问题直觉
V(s)这个状态整体有多好?站在这里,未来大概能拿多少回报。
Q(s, a)在这个状态做这个动作有多好?站在这里,如果先做动作 a,未来大概能拿多少回报。

V(s) 像给地点打分。Q(s, a) 像给“地点 + 下一步动作”打分。

如果你知道所有动作的 Q(s, a),选择动作就很直接:选 Q 值最高的动作。

当前状态 s:
Q(s, 左) = 1.2
Q(s, 右) = 4.8
Q(s, 上) = 2.1
Q(s, 下) = -3.0
如果只考虑利用已有知识,应该选:右

一句话区分:V 评价状态,Q 评价状态里的具体动作。很多算法的差异,核心就在于它们学策略、学 V,还是学 Q。

8. Bellman 方程的直觉#

Bellman 方程是强化学习里绕不开的东西,但它的直觉很朴素。

一个选择的价值,等于眼前奖励,加上下一个状态的未来价值。

Q(s, a) ≈ r + γ max Q(s', a')

这不是完整数学版,只是 Q-learning 里最常见的直觉形式。左边是“我原来以为这个动作有多好”,右边是“这次实际看到的奖励,加上我对未来最优选择的估计”。

Bellman 备份:用下一步修正当前估计

图示:Bellman 更新数据流

当前状态动作对的价值,由即时奖励和下一个状态的最佳未来价值共同决定。

Bellman 思想让强化学习可以“向前看一步,再把未来估计传回来”。这也是 TD learning 和 Q-learning 的核心。

这个思想来自动态规划传统,后来成为强化学习价值估计的基础 [1]。如果只能记住一个版本,就记住这句:当前价值由眼前奖励和未来价值共同决定。

9. 探索与利用为什么总在打架#

如果智能体永远选择当前看起来最好的动作,它可能很快陷入局部最优。它会不断吃门口的小金币,却永远不知道地图另一边有更高分的路线。

如果智能体一直乱试,它又学不到稳定策略。

行为好处代价
利用 Exploitation选择当前估计最好的动作,回报更稳定可能错过更好的未知动作
探索 Exploration尝试没试过或不确定的动作,发现新机会短期回报可能更低,甚至会失败

最简单的做法是 epsilon-greedy

以 ε 的概率随机选动作,用来探索;
以 1 - ε 的概率选择当前 Q 值最高的动作,用来利用。

训练早期可以让 ε 大一点,多试错。训练后期逐步降低 ε,让策略更稳定。

10. Monte Carlo 和 Temporal Difference#

价值函数要从经验里学。问题是:什么时候更新?

方法怎么更新适合的直觉主要问题
Monte Carlo等一整局结束,用真实总回报更新打完整场比赛后复盘必须等 episode 结束,方差可能大
Temporal Difference走一步就用奖励和下一状态估计更新边打边改判断会用当前估计更新当前估计,可能有偏差

TD learning 的代表性工作来自 Sutton 1988 年的论文 [2]。它的重要性在于:智能体不必等到最终结果出现,也能从一步经验里更新价值估计。

TD Error = r + γ V(s') - V(s)

这个误差表示:实际看到的一步结果和原本估计之间差了多少。强化学习里的许多算法都在不同位置使用类似的“估计差”。

11. Q-learning 如何更新一张表#

Q-learning 是理解强化学习最好的入口之一。它直接学习 Q(s, a),也就是“在状态 s 下做动作 a 的长期价值”。Watkins 和 Dayan 在 1992 年系统给出了这个算法的收敛结果 [3]

Q(s,a) ← Q(s,a) + α [r + γ max Q(s',a') - Q(s,a)]

拆开看:

  • Q(s,a):旧估计。
  • r + γ max Q(s',a'):这次经验给出的新目标。
  • α:学习率,控制每次改多少。
  • 中括号里的差值:TD error。
Q-learning 的一轮数据流:
1. 在状态 s 选择动作 a
2. 环境返回奖励 r 和下一个状态 s'
3. 查表得到 max Q(s', a')
4. 计算 TD target = r + γ max Q(s', a')
5. 用 TD target 修正 Q(s, a)
6. 进入下一个状态继续

**为什么它适合入门:**Q-learning 把强化学习的核心问题压进一张表里。状态和动作少的时候,这张表足够清楚;状态一多,问题也会马上暴露。

12. DQN 为什么要用神经网络#

Q 表只适合状态和动作数量都很小的任务。如果输入是一帧游戏画面,状态空间几乎不可能枚举。你不能给每一种像素组合都开一行表。

DQN 的思路是:用神经网络近似 Q 函数。

State / Observation比如游戏画面 → Q Network神经网络估计 → Q values每个动作一个分数 → Action选最大或探索

DeepMind 的 DQN 在 Atari 游戏上展示了这种路线的威力:直接从像素和分数信号学习动作价值函数 [4]

从 Q 表到 Q 网络

图示:DQN 用神经网络替代 Q 表

小状态空间可以查 Q 表,大状态空间用神经网络根据观测输出每个动作的 Q 值。

DQN 没有改变 Q-learning 的目标,它改变的是表示方式:从显式表格变成可泛化的函数近似器。

DQN 还引入了经验回放和目标网络来缓解训练不稳定。原因很现实:强化学习数据高度相关,模型一边采样一边学习,目标也在跟着模型变化。这不像监督学习里拿一批固定标签反复训练那么安静。

13. Policy Gradient 直接优化策略#

Q-learning 先学动作价值,再根据价值选动作。Policy Gradient 换了个角度:直接让策略参数朝着高回报动作的方向移动。

让带来高 return 的动作概率上升,让带来低 return 的动作概率下降。

REINFORCE 是经典的策略梯度方法,由 Williams 在 1992 年提出 [5]。它的直觉非常直接:

如果一条轨迹最后回报很高,
就提高这条轨迹中动作的概率;
如果一条轨迹最后回报很低,
就降低这些动作再次出现的概率。

这个思路可以处理连续动作,也能直接学习随机策略。

代价是方差可能很大。一次成功轨迹里可能有些动作其实只是运气好,一次失败轨迹里也可能有些动作是对的。光看整条轨迹的总回报,信用分配会很粗。

14. Actor-Critic:行动者和评论员#

Actor-Critic 把策略和价值估计分开。

  • Actor 负责选动作,也就是策略 π(a|s)
  • Critic 负责评价状态或动作,也就是 V(s)Q(s,a)

Actor-Critic 的训练数据流

图示:Actor-Critic 数据流

Actor 根据状态产生动作,环境返回奖励和新状态,Critic 估计价值并产生优势信号帮助 Actor 更新。

Actor 决定怎么做,Critic 判断这次结果比预期好还是差。这个差值经常被写成 advantage。

Advantage 的直觉是:

A(s, a) = 这个动作实际表现 - 当前状态下的平均预期

如果 advantage 大于 0,说明这个动作比预期好,Actor 应该增加它的概率。如果小于 0,就减少它的概率。

Actor-Critic 的好处是把策略梯度的“整局回报”换成更细的评价信号,训练通常更有效率。

15. PPO 为什么常见#

Policy Gradient 和 Actor-Critic 都会遇到一个问题:如果一次更新把策略改得太猛,模型可能从“还不错”突然变成“完全不会玩”。

PPO,Proximal Policy Optimization,想解决的就是这个更新幅度问题。它不让新策略离旧策略太远,常见实现会用裁剪目标函数限制概率比值 [6]

Old Policy采样轨迹 → Advantage判断动作好坏 → Clipped Objective限制改动幅度 → New Policy小步更新

你可以把 PPO 理解成一句工程味很重的话:策略可以学习,但别一脚油门把自己开翻。

这也是它在很多 RLHF、机器人控制、游戏智能体实验中常见的原因。它不是万能算法,样本效率、奖励设计和环境质量仍然会卡住训练。

16. 做一个 RL 项目时真正要盯什么#

初学者容易把注意力全放在算法名字上。实际做项目时,下面这些问题通常更早决定结果。

问题要看什么为什么重要
环境是否可信规则、终止条件、状态转移是否符合任务环境错了,学得越好越偏
奖励是否可用奖励密度、尺度、是否鼓励错误捷径奖励设计不好,智能体会钻空子
观测是否足够是否缺关键变量,是否有严重噪声或延迟看不到关键信息,策略只能猜
探索是否覆盖失败动作比例、状态访问分布、随机种子稳定性没探索到的区域,模型不可能学会
评估是否独立训练回报和测试回报分开看训练中偶然高分,不代表策略可靠
一个最小 RL 实验清单:
1. 定义状态或观测
2. 定义动作空间
3. 定义奖励和终止条件
4. 跑随机策略作为 baseline
5. 选择简单算法先验证环境
6. 记录 episode return、长度、失败原因
7. 用多个随机种子复现实验
8. 再考虑更复杂的算法

**不要跳过 baseline:**如果随机策略都能拿高分,任务可能太简单或奖励有漏洞。如果随机策略永远没有任何奖励,算法可能在很长时间里看不到学习信号。

17. 初学者常见误区#

误区 1:Reward 就是正确答案#

不是。Reward 只是环境反馈。它可能稀疏、延迟、带噪声,也可能被智能体以奇怪方式利用。

误区 2:奖励越密集越好#

不一定。奖励密集能帮助学习,但也可能把模型引向你不想要的捷径。比如机器人拿到“向前移动就加分”,可能学会摔倒前冲,而不是稳定行走。

误区 3:Q-learning 和 DQN 是两套完全不同的东西#

DQN 可以看作把 Q-learning 的表格换成神经网络,并加入经验回放、目标网络等稳定训练的技巧。

误区 4:PPO 是强化学习的默认答案#

PPO 常见,但不是所有任务都该用 PPO。小型离散任务先用 tabular Q-learning 更容易定位问题;有专家数据时,模仿学习可能更便宜。

误区 5:训练曲线上升就说明策略可靠#

训练回报会受探索、随机种子、环境漏洞影响。至少要看独立评估、多个种子和失败案例。

误区 6:强化学习适合所有决策问题#

如果你有大量高质量标签,监督学习可能更简单。如果可以精确建模和求解,规划或优化方法可能更直接。强化学习适合动作会影响未来、反馈来自交互、长期目标重要的问题。

18. 强化学习 FAQ#

强化学习和深度强化学习有什么区别?#

强化学习是一类学习问题和方法。深度强化学习是在其中使用深度神经网络表示策略、价值函数或模型。DQN、PPO、SAC 这类算法通常属于深度强化学习。

强化学习一定需要神经网络吗?#

不一定。状态和动作空间小的时候,Q 表就能工作。神经网络主要用于状态太大、观测复杂或需要泛化的任务。

为什么强化学习训练经常不稳定?#

因为数据分布会随着策略变化,奖励可能稀疏,动作会影响未来数据,价值目标本身也依赖模型估计。它同时在收集数据和改变数据来源。

强化学习和 RLHF 是什么关系?#

RLHF,Reinforcement Learning from Human Feedback,是把人类偏好建成奖励信号,再用强化学习优化模型行为的一类方法。它借用了强化学习框架,但奖励来自人类反馈模型,而不是传统游戏环境。

19. 最小心智模型#

  1. 强化学习研究的是智能体如何通过试错学会行动。
  2. 核心数据流是 state -> action -> reward + next state -> update
  3. Reward 是一步反馈,Return 是长期累计回报。
  4. Policy 决定怎么选动作,Value 评价状态,Q-value 评价状态里的动作。
  5. Bellman 思想把当前价值拆成眼前奖励和未来价值。
  6. Q-learning 学 Q(s,a),DQN 用神经网络近似 Q 函数。
  7. Policy Gradient 直接提高高回报动作的概率。
  8. Actor-Critic 让 Actor 行动,让 Critic 评价行动。
  9. PPO 的核心是限制策略更新幅度,避免一次改太猛。
  10. 真正做项目时,环境、奖励、观测、探索和评估通常比算法名更重要。
交互循环 → 奖励和回报 → 价值估计 → 策略更新 → 更好的行动

如果你从数据流看强化学习,它不是一堆算法名。它是在回答同一个问题:智能体怎样从“我试了一下,环境给了反馈”里,逐步学会“下次应该怎么做”。

References#

  1. Richard S. Sutton, Andrew G. Barto. Reinforcement Learning: An Introduction, 2nd edition. MIT Press, 2018. https://mitpress.mit.edu/9780262039246/reinforcement-learning/
  2. Richard S. Sutton. Learning to Predict by the Methods of Temporal Differences. Machine Learning, 1988. https://link.springer.com/article/10.1007/BF00115009
  3. Christopher J. C. H. Watkins, Peter Dayan. Q-learning. Machine Learning, 1992. https://link.springer.com/article/10.1007/BF00992698
  4. Volodymyr Mnih et al. Human-level control through deep reinforcement learning. Nature, 2015. https://www.nature.com/articles/nature14236
  5. Ronald J. Williams. Simple statistical gradient-following algorithms for connectionist reinforcement learning. Machine Learning, 1992. https://link.springer.com/article/10.1007/BF00992696
  6. John Schulman, Filip Wolski, Prafulla Dhariwal, Alec Radford, Oleg Klimov. Proximal Policy Optimization Algorithms. arXiv<1707>.06347, 2017. https://arxiv.org/abs/1707.06347
  7. OpenAI Spinning Up. Part 1: Key Concepts in RL. https://spinningup.openai.com/en/latest/spinningup/rl_intro.html

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

从试错到策略:用数据流读懂强化学习
https://wiyac5.xyz/posts/reinforcement-learning-data-flow/
作者
未央
发布于
2026-07-28
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
未央
AI Agent 与工程实践。
公告
博客正在持续整理与更新中。
分类
标签
最新动态

还没有发布动态

更多动态
站点统计
文章
7
动态
0
分类
2
标签
17
总字数
47,905
运行时长
0
最后活动
0 天前