首页 / 第 3 章

🔄 训练 = 一个巨大的反馈回路

学科透镜:系统思维(反馈回路 / 存量流量 / 杠杆点) 难度:★★★☆☆ 本章 5 图 + 1 视频

第 2 章讲了神经元"怎么算",本章讲它"怎么学会算"。系统思维看训练,只有一句话:训练是一个自我修正的反馈回路——模型预测 → 对照答案算错多少(损失)→ 把错误反向传回每个旋钮(梯度)→ 拧旋钮 → 再预测……《系统之美》里所有的概念:存量、流量、反馈、延迟、杠杆点,在这一个回路里全部登场。看懂这张回路图,你就理解了 80% 的深度学习。

♻️

本学科心法:不要拆碎,要看结构

系统思维第一课:单个零件再明白,也解释不了系统行为。训练的本质不在任何一步里,而在"循环"本身——错误的信号如何转一圈回来修正自己。

3.1训练的闭环:一圈 = 一个 step

整个训练过程就是一个回路,转一圈处理一批数据,转几万圈,模型就学会了。

训练回路:每转一圈,模型就好一点点 参数 θ 所有旋钮 w、b 模型的"存量" ① 喂一批数据 图片 / 文字 / 特征 ② 前向预测 模型算出"我猜是猫" ③ 算损失 对照答案:错了多少? ④ 反向求梯度 每个旋钮该往哪拧 前向(正向计算) 打分 反向(梯度回传) 拧旋钮 转 1 圈 = 1 个 step · 转完所有数据 = 1 个 epoch · 转 30 个 epoch = 训练结束
图 3-1 · 训练闭环。这是全站最重要的一张图。四个环节首尾相接:数据 → 预测 → 损失 → 梯度 → 更新参数 → 下一批数据。系统思维看它:这是一个负反馈回路——损失升高会驱动参数调整,把损失压回去,系统自己趋于稳定(学会)。

3.2前向与反向:回路里的两条路

回路里其实有两条方向相反的路:前向负责"算答案",反向负责"传错误"。像一条双向高速公路。

一条双向高速公路 输入 x 像素/词向量 层 1 特征提取 层 2 抽象组合 预测 ŷ "猫 0.87" 损失 L 错多少 前向:从左往右,算答案(蓝色) 每过一层:数字变形一次(乘加 + 拐弯),最后得到预测 反向:从右往左,传错误(橙色) 每一层把"该负多少责任"沿路传回去——工具是链式法则(微积分) 前向:ŷ = f₃( f₂( f₁(x) ) ) 嵌套函数 · 从 x 推出 ŷ 反向:∂L/∂w = ∂L/∂ŷ · ∂ŷ/∂w 链式法则 · 从 L 推回每个 w
图 3-2 · 双向高速公路。前向是"从左到右算答案",反向是"从右到左算责任"。反向传播(Backpropagation)是深度学习的发动机:它让几百万个旋钮都知道"自己该往哪边拧一点"。你不需要会算链式法则,只要知道"每一层都会收到一份'错误责任单'"。

3.3梯度下降:在损失地形上"下山"

把"损失"当成一座山的高度:参数不同,损失不同。训练 = 站在山上,永远朝"最陡的下坡方向"迈一步,直到走到山谷。

损失地形图(等高线俯视) 最低点 越靠外 = 损失越高 起点:随机初始化 每一步都朝"最陡下坡"走 方向 = 梯度(反方向) 步长 = 学习率 η 梯度方向(上山) 我们走反方向(下山) 三个关键词 损失面 = 地形 梯度 = 指南针 学习率 = 步长 下山不保证到"最低点": 可能卡在"小坑"(局部最优) 高维里还常遇到"鞍点" (第 5 章决策科学会讲怎么绕开)
图 3-3 · 下山算法。梯度 = 损失上升最快的方向,那"反方向"就是下降最快的方向。每步:算梯度 → 反方向走 η 步。这就是梯度下降,深度学习的训练引擎。山里的坑坑洼洼(局部最优、鞍点)是优化困难的大头。

3.4杠杆点:学习率 η 的三种命运

《系统之美》说:找到杠杆点,事半功倍。训练里杠杆效应最强的单点就是学习率——它决定回路每圈"修正的幅度"。

同一个山,三种步长,三种结局 η 太小:蜗牛下山 走得稳,但一圈只挪一点—— 训练慢到天荒地老 η 合适:稳健下山 几大步逼近谷底, 训练又快又稳 — 目标状态 η 太大:谷底弹跳 步子太大,越过谷底又弹回来—— 损失震荡不降,甚至发散(NaN) 杠杆点结论:学习率是第一优先检查的旋钮 —— 训练不动/发散了,先看 η,再查别的
图 3-4 · 学习率的三种命运。系统思维的杠杆点在这里非常具体:η 太小 → 慢;η 合适 → 稳;η 太大 → 震荡或发散。调参第一件事:把学习率调到"损失曲线平滑下降"为止。

3.5存量 / 流量视角:训练系统怎么"补货"

《系统之美》的另一副眼镜:把系统看成"水池(存量)"和"水管(流量)"。训练系统里什么在累积、什么在流动,一目了然。

三个"池子":参数、数据、损失 存量①:参数 θ 水池里的水 = 模型的"知识存量" 训练 = 慢慢往池里"灌知识" 水位会波动(batch 噪声) 趋势是持续上升(学会) 流量①:数据 水管 = 一批批流过的样本 流经模型一次 = 1 epoch 管子粗细 = 批大小 batch size 水流完一轮就再循环一轮 存量②:误差(损失) 池子 = 模型当前"错的总量" 目标 = 把水位压到最低 训练结束看它,判断学没学会 (第 4 章:它会撒谎,要小心) 损失水位高 梯度变大 参数修正更多 损失回落 ↓ 负反馈,自稳:损失被压回去,回路一圈圈转下去 —— 这就是"学习"的动力学 按杠杆排序:数据质量(最杠杆)> 模型结构 > 学习率 > 批大小 > 训练轮数(最不杠杆)
图 3-5 · 存量流量 + 杠杆点。系统思维最后一击:先分清"哪个是池子、哪个是水管",再问"拧哪个阀门收益最大"。答案是数据质量——喂更干净、更丰富的"水",比换更大的模型省得多(第 4、5 章会反复印证)。

▶配合视频:损失函数与梯度下降动画

用动画把"地形 + 下山"再走一遍,视觉记忆比文字牢。

🎬 《线性回归、代价函数、损失函数》动画讲解 —— 看懂"损失"到底是什么 在 B 站打开 ↗

★本章小结

1
回路数据 → 前向 → 损失 → 反向 → 更新 → 下一批数据。负反馈自修正。
2
两条路前向算答案,反向传责任(链式法则)。框架一行 backward() 全搞定。
3
下山损失 = 地形,梯度 = 指南针,学习率 = 步长。目标:走到谷底。
4
杠杆学习率第一优先检查;数据质量是终极杠杆;注意回路延迟,别急着下结论。
← 上一章
② 第一性原理:神经元到底在算什么