你已经了解了损失函数如何衡量神经网络的预测与实际目标之间的偏差程度。高损失表示表现不佳;低损失则表示表现更好。但我们究竟如何借助这个分数来改进网络呢?目的不只是衡量误差,而是要使其最小化。调整网络参数(其权重和偏差)以减少损失的这一过程,称为优化。可以将损失函数看作定义了一个曲面,通常称为损失曲面。对于一个只有两个权重的简单模型,你可以将其想象成一片起伏的地形。这片地形上任意一点的高度,代表了特定权重组合下的损失值。我们的目标是找到这片地形上的最低点,也就是对应于最小可能损失的点。我们如何在这片地形中行进呢?我们从一个随机点(对应于网络的初始随机权重)开始。我们需要一种方法来确定从当前位置哪个方向是“下坡”。这就是微积分发挥作用的地方,具体来说就是梯度。损失函数相对于网络参数(所有权重和偏差)的梯度,告诉我们损失增加最快的方向。它是一个指向“上坡”的向量。如果我们想减少损失,就应该沿着梯度完全相反的方向移动。想象你正站在那个山坡上。梯度会告诉你哪个方向是上坡最陡峭的。为了最快到达谷底,你会直接往下坡迈一步,这正好与梯度的方向相反。这种反复计算梯度并沿相反方向迈步的迭代过程,是梯度下降背后的核心思想,它是深度学习中最基本的优化算法。我们根据梯度的指引,反复调整权重和偏差,目标是沿着损失曲面下降到最小值。{"layout": {"title": "损失最小化", "xaxis": {"title": "参数值(例如,单个权重)"}, "yaxis": {"title": "损失"}, "showlegend": false}, "data": [{"x": [-3, -2, -1, 0, 1, 2, 3], "y": [9, 4, 1, 0, 1, 4, 9], "mode": "lines", "name": "损失曲线", "line": {"color": "#4263eb"}}, {"x": [2.5, 1.8, 1.1, 0.5, 0.1], "y": [6.25, 3.24, 1.21, 0.25, 0.01], "mode": "markers+text", "name": "步骤", "marker": {"color": "#f03e3e", "size": 10}, "text": ["开始", "", "", "", "最小值"], "textposition": "top right"}]}单个参数损失曲线的简化视图。优化旨在通过沿下坡方向(与梯度相反)迈步,从起点向最小损失移动。本质上,优化是推动神经网络学习的引擎。通过反复计算损失随每个参数(即梯度)如何变化,并沿着减少损失的方向更新这些参数,网络逐步提高其做出准确预测的能力。接下来的部分将详细阐述梯度下降算法的运行方式、学习率的重要作用,以及像随机梯度下降这类使训练大型网络成为可能的实用变体。