跳到主内容

什么是梯度与偏导?模型怎么知道往哪调

2026-10-06 发布 来源:我告诉你AI导航 阅读

模型答错一句话,损失函数给出 2.3 这个数。接下来要回答一个很实际的问题:几十亿个参数,到底该动哪一个、往哪个方向动、动多少。AI 训练的全部效率几乎都压在这个问题上。梯度与偏导就是回答它的工具——偏导负责一次只看一个参数,梯度负...

模型答错一句话,损失函数给出 2.3 这个数。接下来要回答一个很实际的问题:几十亿个参数,到底该动哪一个、往哪个方向动、动多少。AI 训练的全部效率几乎都压在这个问题上。梯度与偏导就是回答它的工具——偏导负责一次只看一个参数,梯度负责把所有参数的意见合成一个方向。这篇讲清三件事:偏导在算什么、梯度为什么指向最陡的上坡、为什么照着公式走仍然会训练失败。

先把高维问题压成一个方向

设想蒙着眼站在山坡上,只能感知脚下哪边更高。想下山,就往最陡的下坡方向迈步。梯度就是这个最陡上坡的方向,取反就是下山方向。这个类比抓住了关键:梯度是方向加大小,方向告诉你往哪走,大小告诉你坡有多陡。参数空间有几十亿维,人没法想象,但沿着最陡方向走一小步这个策略在任意维度都成立。

偏导:一次只动一个参数

想知道某个参数变化会让损失怎么变,就把其余参数全部按住不动,只让这一个微微变化,看损失的变化率,这就是偏导。它回答的是局部问题:在当前这个点上单独调这个参数,损失是升还是降、变化多快。实际计算不会真的去扰动参数,而是用链式法则从计算图里解析地求斜率,这也是反向传播高效的原因——一次前向、一次反向就能拿到所有参数的偏导。

四个概念的分工

概念它回答什么在训练里的角色弄错会怎样
偏导只动这一个参数,损失变化多快给出每个参数各自的调整方向误当成整体最优方向,走弯路
梯度所有偏导拼成的向量,指向损失上升最快处决定这一步往哪走符号搞反,损失越训越大
学习率每步沿梯度走多远控制步子大小太大震荡发散,太小慢到看不出进展
反向传播怎么高效算出全部偏导把误差从输出层逐层传回去手写求导易错,且慢几个数量级

四者里最容易被混为一谈的是偏导和梯度。偏导是标量,一个参数一个;梯度是向量,把所有偏导排在一起。单个偏导为正,只说明单独动它会变差,可一旦所有参数一起动,合成方向可能完全不同。这也是为什么不能逐个参数试错——那需要跑几十亿次前向,而梯度一次就给出整体答案。

为什么反方向走就一定会下降

严格来说,一定只在足够小的步长下成立。把损失函数在当前点做一阶近似,它近似成一个平面,平面下降最快的方向就是负梯度方向。步长足够小,近似够准,损失就会下降;步长一大,近似失效,可能一步跨过谷底落到对面更高的位置。所以学习率管的是近似还能不能信,与方向无关,这也是 学习率 最需要调的原因。训练后期逐步减小步长,道理相同:越靠近谷底曲面越平,同样的步子更容易跨过去,更多技巧见 梯度下降。

三种常见的梯度异常

第一是梯度消失。深层网络里梯度要层层相乘,每层都小于 1,乘上几十层就趋近于零,前面的层几乎收不到有效信号,表现为训练很久但底层特征没变化。第二是梯度爆炸,情况相反,连乘系数大于 1,梯度数值急剧放大,损失突然变成无穷。第三是梯度噪声过大,小批量采样带来的随机性让方向抖动,训练曲线锯齿明显,这时要么增大批量,要么用动量类方法平滑。三者的根源都在数值精度,公式本身没写错。

梯度管不到的事

梯度是局部信息,只知道当前点附近的地形。梯度为零可能是谷底,也可能是鞍点或平坦高原,深度网络里鞍点远比局部极小常见,所以梯度接近零有时意味着卡在平地上。它也给不出全局最优,非凸问题里只能提供一条局部下降路径;对不可导的操作无能为力,需要专门设计替代梯度。更根本的一条:梯度只忠实反映损失函数,目标设计错了,梯度算得再准也只是把错误优化到底,这也是 损失函数 要单独讨论的原因。

普通人怎么理解模型在学习

把训练想成一次次微调:每看一批数据,算一次错得多离谱,再按误差的反方向把所有参数轻轻挪一点,重复几百万次。模型并没有在理解什么,它是在一个极高维的曲面上不断找更低的位置。知道这一点,很多现象就好解释了:为什么训练要那么多算力(每次挪动都要过一遍全部参数),为什么换一批数据效果会掉(相当于换了个地形),为什么小模型学不会复杂任务(曲面太复杂,参数不够走)。想看懂优化为什么容易陷进局部,可以读 凸优化。

速查:梯度与偏导

  • 偏导:按住其他参数,只看一个参数的影响
  • 梯度:所有偏导组成的向量,指向损失上升最快方向
  • 往负梯度走,只在小步长下成立
  • 梯度为零可能是鞍点,不一定是解
  • 梯度消失与爆炸都来自连乘,深层网络尤其明显

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]