趋近智
损失函数 (loss function),例如均方误差()或交叉熵,用于量化 (quantization)神经网络 (neural network)预测与实际值之间的差异。训练的初衷目标是使这个误差尽可能小。为了实现这一点,必须调整网络的权重 (weight)和偏置 (bias)以减少损失。这个调整过程由优化算法处理,而其中最基础的是梯度下降 (gradient descent)。
想象你正站在一个雾蒙蒙的山脉上,你的目标是到达最低的山谷(即最小损失)。你只能看到脚下附近的地面。你会怎么做?一个明智的做法是,感受你所在位置的地面坡度,然后朝着最陡峭的下坡方向迈一步。你重复这个过程,一步步地下坡,希望能最终到达谷底。
梯度下降的工作方式非常相似。“山脉”是损失函数的表面,由网络的参数 (parameter)(权重 和偏置 ,统称为 )决定。任何一点的“海拔”是给定参数集 下的损失函数值。我们的目标是找到对应于该表面最低点的参数 ,即最小损失 。
微积分提供了一个工具来寻找“最陡峭的方向”:梯度。损失函数相对于参数的梯度,记作 ,是一个向量 (vector),它指向损失表面上最陡峭的上升方向。因为我们想下坡来最小化损失,所以我们朝着与梯度相反的方向(负梯度,)迈步。
梯度下降的主要思想是通过在负梯度方向上迈小步来迭代更新参数。单个参数(或整个参数集 )的更新规则如下:
让我们来分解一下:
因此,这个过程包括:
让我们在一个简单的一维损失曲线(例如 )上进行可视化。最小值显然在 。梯度是 。
一个简单的二次损失函数 。从 开始,梯度下降迭代地沿着与负梯度()成比例的方向迈步,步长由学习率()决定,趋向于 处的最小值。
在实践中,对于神经网络,损失表面要复杂得多,并且是高维的(每个权重和偏置都有一个维度)。计算梯度 涉及计算损失函数相对于网络中每一个权重和偏置的偏导数。虽然思路简单,但实际计算需要链式法则和反向传播算法。
这里描述的基本版本(通常称为批量梯度下降)存在一个潜在问题,即计算 需要在每一步中评估整个训练数据集的损失及其梯度。对于大型数据集,这会非常缓慢且计算成本高昂。这促成了随机梯度下降(SGD)和迷你批量梯度下降等变体,我们即将讨论它们。
目前,重要的点是梯度下降提供了学习的机制。通过重复计算损失表面上最陡峭的下降方向(负梯度)并沿着该方向迈步,它迭代地调整网络参数,以最小化预测误差。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•