看不见路的人靠什么走到家
那晚风大,雪下得很深,老人在山顶。
他是个瞎子。这不是譬喻——他真的什么都看不见。下山是必须的,山顶待不住人,但路他从来没有走过。他唯一知道的事情是:家在最低处。只要脚一直往下走,迟早会到。
他弯腰,用手杖在身前画一个小圆,感受脚下四周八个方向哪边最陡地向下。他不看路,他听斜度。他选中最陡那个方向,迈出一步。再停下,再画一个小圆,再选最陡的方向,再一步。
就这样走了很久。
走着走着,他掉进了一个坑。不是很深,也就齐腰。四周每个方向都是向上的——无论他朝哪边,手杖都在告诉他"这边上坡"。他困在里面了。按他的规矩,他应该留在这里——既然每个方向都是向上,那他已经在最低处了。
他没有留下。他记得馆主说过——这个世界上有很多假的最低处,它们只是半山腰被风刮出来的一个凹坑,你在里面原地打转一辈子,它也不会通向真正的家。
他做了一件违反常规的事:他闭着眼睛,随手一指,朝那个方向走了几步。不是最陡下坡的方向,是随便一个方向。走出几步后,他再次停下,画小圆,听斜度。这一次,脚下有了新的倾斜——他走出了那个凹坑,又能继续下山了。
后来他走得更聪明了。他发现每一步单独听斜度太慢,风雪一大容易被骗。所以他开始带着上一步的惯性往前走——如果前面十步都在朝东南,那这一步即便感觉东南稍微平一点,他也倾向于继续东南。小的起伏被这股惯性抹平了,只有持续的下坡趋势能真正改变他的方向。
再后来他学了一件更精的事:他发现不同的地方,步子该迈多大不一样。缓坡上步子可以大,悬崖边步子必须小,平地上可以加速,碎石处要慢行。他不是用同一个步长走遍天下的,他根据脚下这段路的历史决定步长——最近一段走得顺,就放大步子;最近一段老是打滑,就缩小步子。
天亮的时候,他真的到家了。
他回头看——他看不见,但他在心里"看"——那条路不是直的,它弯弯曲曲,有几处回头,有几处绕了远路,有一次他甚至差点被一个深坑困住。但它每一步都在朝着低处,每一段弯路都有它的道理,最后它确实把他带到了最低的地方。
他坐在炉火前,把手杖立在墙角。馆主问他:你怎么认得路的?
他说:我不认得路。我只是每一步都顺着坡往下走。但有几次,我不肯相信脚下的坡。
寓言之外
这就是 Gradient Descent(梯度下降)——训练一个神经网络时,模型在做的全部事情。
神经网络要学会一件事(比如把图像分类、把中文翻译成英文),本质上是去调几百万几十亿个参数,让"模型当前的错误程度"这个数字尽可能小。你可以把这个"错误程度"想象成一个在几十亿维空间里起伏的巨大山地——每一组参数对应山地上的一个点,这个点的高度就是错误大小。训练,就是从一个随机的山顶出发,走到山谷最低的那个点。
瞎子下山,就是这个过程。他听斜度,对应的是模型算梯度——在当前参数处,损失函数朝哪个方向下降最快。他迈一步,对应参数更新一次。他走一万步,对应训练一万轮。
局部最小值(local minimum)——就是那个把他困住的凹坑。在高维空间里,真正像盆地一样把你困死的点其实不多,但鞍点(saddle point)——某些方向是下坡、某些方向是上坡的点——到处都是。朴素的梯度下降在鞍点上会慢到近乎停下。
那"闭着眼睛随手一指"是什么?是 SGD(随机梯度下降)。SGD 每次不是用全部数据算梯度,而是随机挑一小批(mini-batch)算。这就自然引入了噪声——你算出的"最陡方向"其实带着随机抖动,有时指偏了,有时指歪了。这种噪声在优化理论里听起来是坏事,实际上是好事——它让你不会被小凹坑困住,天然具有跳出能力。
"带着上一步的惯性"是 Momentum(动量)。单独看每一步,梯度是抖动的,加入动量相当于对最近多步的梯度做了指数滑动平均——短期的方向噪声被抹平,长期的趋势被保留。
"不同地方步子不一样大"是 Adam / RMSProp 这一类自适应学习率(adaptive learning rate)。对每个参数,根据它历史上梯度的大小,自动调整它该迈多大的步子——这个参数最近梯度很大(说明它很敏感),就步子小一点;最近梯度一直很小(说明它很稳),就步子大一点。
今天你训练任何一个神经网络,从一个 MLP 到 GPT-5,背后跑的几乎都是 Adam(或它的变体 AdamW)。Adam = 动量 + 自适应步长。这两个加在一起,就把瞎子从"按最陡方向走一步"变成了一个会记住历史、会自我调整的谨慎行者。
为什么这件事看似简单却是深度学习的灵魂?因为它回答了一个看似不可能的问题:在一个几十亿维、形状完全未知的损失地形里,一个只能感知局部斜率的算法,凭什么能找到好的解?
答案是:它找不到最好的解,它找不到"真·全局最小值"——那种事情在这种维度的空间里不存在意义。但它能找到一个足够低、足够平坦、周围一片都很低的盆地——而这样的盆地,事实证明,对应的模型就已经够聪明了。
瞎子不需要到达真正的最低点。他只需要走到一个无论往哪边再走一点都不会再显著变低的地方。这个地方在高维空间里,多得惊人。训练神经网络的真正奇迹,不在于算法聪明,而在于这种山地里,这样的低谷到处都是。
梯度下降不是一个优化算法,它是一种哲学——不需要地图,不需要全局视野,只要每一步都稍微比上一步低,时间和随机性会把你带到你需要去的地方。
这个哲学,统治了现代 AI。
版权声明: 如无特别声明,本文版权归 sshipanoo 所有,转载请注明本文链接。
(采用 CC BY-NC-SA 4.0 许可协议进行授权)
本文标题:02. 雪夜下山的瞎子
本文链接:https://www.sshipanoo.com/blog/ai/ai-fables/02-雪夜下山的瞎子/
本文最后一次更新为 天前,文章中的某些内容可能已过时!
目录