基本的想法是提供大量的 “输入→输出” 的例子来 “学习” —— 然后尝试找到能重现这些例子的权重。下面是用逐渐增多的例子来做的结果:

在这个 “训练” 的每个阶段,网络中的权重都被逐步调整 —— 我们看到,最终我们得到了一个能成功重现我们想要的功能的网络。那么,我们是如何调整权重的呢?基本的想法是在每个阶段看看我们离得到我们想要的功能 “有多远”,然后以这样的方式更新权重,使之更接近。
为了找出 “我们有多远”,我们计算通常被称为 “损失函数”(或有时称为 “成本函数”)的东西。这里我们使用的是一个简单的(L2)损失函数,它只是我们得到的值与真实值之间的差异的平方之和。
我们看到的是,随着我们训练过程的进展,损失函数逐渐减少(遵循一定的 “学习曲线”,不同的任务是不同的) —— 直到我们达到一个点,网络(至少是一个很好的近似值)成功再现了我们想要的函数:

好了,最后要解释的重要部分是如何调整权重以减少损失函数。正如我们所说,损失函数给我们提供了我们得到的值与真实值之间的 “距离”。但是 “我们得到的值” 在每个阶段都是由当前版本的神经网络和其中的权重决定的。但现在想象一下,这些权重是变量 —— 比如说 wi。我们想找出如何调整这些变量的值,以使取决于这些变量的损失最小。
例如,想象一下(对实践中使用的典型神经网络进行了不可思议的简化),我们只有两个权重 w1 和 w2。那么我们可能有一个损失,作为 w1 和 w2 的函数,看起来像这样:

数值分析提供了各种技术来寻找这样的情况下的最小值。但一个典型的方法是,从之前的 w1、w2 开始,逐步遵循最陡峭的下降路径:

就像水从山上流下来一样,所能保证的是这个过程最终会在地表的某个局部最小值(“一个山湖”);它很可能达不到最终的全球最小值。
在 “重量景观” 上找到最陡峭的下降路径并不明显,这是不可行的。但是,微积分可以帮助我们。正如我们上面提到的,我们总是可以把神经网看作是在计算一个数学函数 —— 它取决于它的输入和权重。
但现在考虑对这些权重进行微分。事实证明,微积分的连锁法则实际上可以让我们 “解开” 神经网中连续几层所做的运算。其结果是,我们可以 —— 至少在某些局部近似中 —— “反转” 神经网的操作,并逐步找到使与输出相关的损失最小的权重。
上图显示了在只有 2 个权重的不现实的简单情况下,我们可能需要做的最小化工作。但事实证明,即使有更多的权重(ChatGPT 使用了 1750 亿个),仍有可能做到最小化,至少在某种程度上是近似的。事实上,2011 年左右发生的 “深度学习” 的重大突破与以下发现有关:从某种意义上说,当有很多权重参与时,做(至少是近似)最小化比有相当少的权重更容易。