「AI 工程地基」系列第四篇。啃的是 GitHub 58k star 的开源课 ai-engineering-from-scratch,Rohit Ghumare 写的,一课一课来。今天第 04 课:ML 的微积分——导数与梯度,Learn 型,60 分钟。前三课攒的矩阵和特征值,今天全部回收。
几百万个权重,几百万个旋钮。训练一个网络,核心问题就是每个旋钮往哪边拧。课程开篇的口号很漂亮:导数告诉你哪边是下坡,一个神经网络要学习,需要的就这么多。
这话说了一半。方向确实免费。步子迈多大,导数不管。
先捡主线。导数就是一点上的找零汇率。f(x)=x²,x=2 处导数是 4——把 x 往右挪 0.01,y 大约涨 0.04。多变量按住其他只动一个,是偏导数。全部偏导数收进一个向量,是梯度。梯度指上坡,训练走它的反方向。这就是梯度下降:w 减去学习率乘 dL/dw,重复几百万次。
神经网络是函数串成的链子:输入、线性、激活、线性、损失。链式法则说,复合函数的导数等于各段导数相乘。反向传播就是这条法则从输出往输入乘回去,路径分叉再汇合的地方把贡献加起来。整个深度学习的学习算法,数学内核就这一行。
然后是本课真正的新角色:Hessian。梯度告诉你坡度,Hessian 告诉你曲率——二阶偏导数组成的矩阵。在梯度为零的临界点,看它的特征值:全正,是碗底;全负,是山顶;有正有负,是马鞍。特征值第 03 课出场时是看一个变换怎么拧空间,这次成了地形判据。
为什么曲率重要。Newton 法用 Hessian 的逆去重标梯度,陡的地方迈小步、平的地方迈大步,二次函数一步到碗底。代价是 N 个参数要 N×N 的矩阵,100 万参数就是 1 万亿条目。所以实践中大家用 Adam——用每个参数梯度的滑动均值和方差,廉价地近似二阶信息。Taylor 级数把这层窗户纸捅破:一阶近似把损失当直线,那就是梯度下降;二阶近似把损失当抛物线,那就是 Newton 法。所有梯度优化,本质都是在局部把损失当多项式,走到近似的最低点。
代码全部实测过了。数字全对:x² 求导表、偏导 2x+3y、链式法则 6(3x+1)、鞍面 Hessian 特征值一正一负、1M 参数对应 1 万亿条目,逐一核过。但有两处演示翻车,一处表格过松。
第一个翻车在步骤 7。课程用 sin 在 0 处演示二阶 Taylor 逼近,打印了 order1 和 order2 两列。跑出来四行,两列一模一样:0.1000 对 0.1000,2.0000 对 2.0000。原因很干净:sin 是奇函数,在 0 处的二阶项是 0.5 乘 f''(0) 乘 h²,而 f''(0) = -sin(0) = 0。二阶项恒为零,二阶近似永远不可能比一阶好——演示没有发生。代码没写错,公式没写错,选的函数把演示杀死了。想看见二阶项起作用,得换 cos。
第二个更有意思,课程自己没发现。步骤 8 从零训练 y=2x+1,学习率 0.01,跑 200 轮,打印 w=2.08、b=0.73。真值是 2 和 1。b 还差 0.27,这不是轮数不够,是病态曲率。这个问题的 Hessian 是 2·[[11,3],[3,1]],两个特征值约 23.7 和 0.34——w 方向的坡比 b 方向陡 69 倍。学习率被陡方向的安全上限摁住,慢方向就只能以 69 倍慢的速度爬。实测:400 轮 b=0.86,1000 轮 b=0.98,2000 轮才到 0.9994。讽刺的地方在于,这课前脚刚讲完 Hessian 和「Newton 法重标梯度」,后脚自己的实验就是病态曲率的活教材,但没把这根线接上。跑完实验的人多半会想「再多跑几轮呗」——错,瓶颈不在轮数在曲率。出路课程其实都教了:动量(练习 3 正好让你加)、Adam、或者 Newton 一步到位。
表格松的一格:Adam 被写成「对角 Hessian 近似」。它跟踪的是梯度的一阶矩和二阶矩,未中心化的方差。方差大不等于曲率大,梯度噪声也会推高它。当科普能过,当定义不行。
口号审计。开篇那句「导数告诉你哪边下坡,就够了」,正文第 100 行自己拆台:学习率太大你会越过头。方向不定价步长,曲率才定价。还有一句「局部极小在高维很少是实际问题」,这是主流共识,但它藏了下半句:真正常见的是鞍点和病态曲率。这两样,这课后面恰好都教了。
练习 3 给的函数是 x⁴−3x²。两个对称的碗在 ±1.225,碗深 −2.25,原点是局部最大。在这个函数上对比有无动量,能亲眼看见动量怎么帮你冲过浅坑。另一个值得跑的:把步骤 8 的轮数改成 2000,看着 b 从 0.73 慢慢磨到 0.9994。曲率没有拦你,它只是收你的时间税。
讨论回复
加载中...正在加载回复...
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。