趋近智
为了优化神经网络,需要利用损失函数对于网络中每个权重和偏差的梯度(即为所有参数计算出的 ∂W∂Loss 和 ∂b∂Loss)。这些梯度,通常通过反向传播来确定,指明了损失函数 增长 最快的方向。由于目标是 最小化 损失,因此必须沿着各梯度 相反 的方向调整参数。
这个调整过程是梯度下降的核心。对于网络中的每个权重(W)和偏差(b),我们根据其当前值、计算出的梯度以及一个称为学习率(η)的参数来更新其值。
更新规则很简单:
对于特定的权重 Wij(连接某一层中的神经元 i 到下一层中的神经元 j): Wij,新=Wij,旧−η∂Wij,旧∂Loss
类似地,对于特定的偏差 bj(神经元 j 的): bj,新=bj,旧−η∂bj,旧∂Loss
我们来分析一下这些公式:
这里的减号非常重要。如果梯度 ∂Wij,旧∂Loss 为正(意味着增加 Wij 会增加损失),则更新规则会减去一个正值(η×梯度),从而 减小 Wij。反之,如果梯度为负(意味着增加 Wij 会 减少 损失),则更新规则会减去一个负值,从而 增加 Wij。在这两种情况下,调整都会将参数值推向预期能降低总体损失的方向。
在实际操作中,为每个参数单独执行这些更新会降低计算效率。深度学习框架运用线性代数库(如 NumPy、TensorFlow 或 PyTorch)通过矩阵和向量运算来执行这些更新,同时将相同的逻辑应用于层内甚至整个网络中的所有权重和偏差。
如果我们把一层中的所有权重表示为一个矩阵 W,所有偏差表示为一个向量 b,并且它们对应的梯度分别表示为 ∇WLoss 和 ∇bLoss,那么更新规则可以简洁地表达为:
W新=W旧−η∇W旧Loss b新=b旧−η∇b旧Loss
这里,∇W旧Loss 是一个与 W旧 维度相同的矩阵,它的每个元素都是损失函数对相应权重的偏导数。类似地,∇b旧Loss 是一个包含损失函数对每个偏差项的偏导数的向量。减法和标量乘法(η)都是按元素进行的。
这个更新步骤通常在每批训练数据处理后(在小批量梯度下降中)或在整个数据集处理后(在批量梯度下降中)执行一次。这种迭代过程,包括计算预测(前向传播)、衡量误差(损失函数)、计算梯度(反向传播)和调整参数(权重/偏差更新),是神经网络的主要训练循环,逐步引导网络达到一个能最小化训练数据上预测误差的配置。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造