AI 入门 101
什么是梯度下降?

什么是梯度下降?
如果你读过关于如何训练神经网络的内容,你几乎肯定已经遇到过“梯度下降”这个术语。 梯度下降 是优化神经网络性能、减少网络损失/错误率的主要方法。然而,梯度下降对于机器学习新手来说可能有点难以理解,本文将努力为你提供对梯度下降工作原理的良好直觉。
梯度下降是一种优化算法。它用于通过调整网络参数来提高神经网络的性能,使网络的预测和实际/预期值(称为损失)之间的差异尽可能小。梯度下降使用初始参数值,并使用基于微积分的操作来调整它们的值,使网络尽可能准确。你不需要知道很多微积分来理解梯度下降的工作原理,但你需要了解梯度的概念。
什么是梯度?
假设有一张图代表神经网络的错误量。图的底部代表错误最小的点,而图的顶部是错误最大的地方。我们想从图的顶部移动到底部。梯度只是量化错误和神经网络权重之间关系的一种方式。这种关系可以作为一个斜率来图形化,错误的权重会产生更多的错误。斜率/梯度的陡峭度代表模型学习的速度。
陡峭的斜率意味着错误大大减少,模型学习速度快,而如果斜率为零,模型处于一个平坦的区域,不会学习。我们可以通过计算梯度来移动到错误更小的方向,这是模型参数的移动方向(变化)。
让我们稍微改变一下比喻,想象一系列的山丘和山谷。我们想到达山谷中代表最小损失的部分。当我们从山顶开始时,我们可以向下迈大步,相信我们正在向山谷中最低点移动。
然而,当我们接近山谷中的最低点时,我们的步伐需要变小,否则我们可能会超过真正的最低点。同样,当调整网络的权重时,调整可能会使网络远离最小损失点,因此调整必须随着时间的推移而减小。在下降山谷到达最小损失点的背景下,梯度是一个向量/指令,详细说明我们应该采取的路径和步伐的大小。
现在我们知道梯度是指示我们移动的方向(哪些系数应该更新)和步伐大小(系数应该更新多少),我们可以探索如何计算梯度。
计算梯度和梯度下降

梯度下降从高损失开始,通过多次迭代,朝着最小损失的方向移动,旨在找到最佳的权重配置。图片来源:Роман Сузи via Wikimedia Commons,CCY BY SA 3.0(https://commons.wikimedia.org/wiki/File:Gradient_descent_method.png)
为了执行梯度下降,首先需要计算梯度。为了计算梯度,我们需要知道损失/成本函数。我们将使用成本函数来确定导数。在微积分中,导数只是函数在给定点的斜率,所以我们基本上就是计算基于损失函数的斜率。我们通过将系数运行通过损失函数来确定损失。如果我们将损失函数表示为“f”,那么我们可以说计算损失的方程如下(我们只是将系数运行通过我们的选择成本函数):
损失 = f(系数)
然后我们计算导数,或确定斜率。获取损失的导数将告诉我们哪个方向是向下坡的方向,通过给我们调整系数的适当符号。我们将适当的方向表示为“delta”。
delta = derivative_function(损失)
我们现在已经确定了向下坡的方向,即朝着最小损失的方向移动。这意味着我们可以更新神经网络参数中的系数,希望减少损失。我们将根据以前的系数减去适当的值变化(由方向(delta)和控制变化大小的参数(步伐大小)确定)来更新系数。控制更新大小的参数称为“学习率”,我们将其表示为“alpha”。
系数 = 系数 – (alpha * delta)
然后我们只需重复这个过程,直到网络收敛到损失最小的点附近,这应该接近零。
选择合适的学习率(alpha)值非常重要。选择的学习率必须既不太小也不太大。记住,当我们接近最小损失点时,我们的步伐需要变小,否则我们可能会超过真正的最小损失点,落在另一侧。如果步伐太大,网络的性能将继续在最小损失点周围跳跃,先后超过它的两侧。如果发生这种情况,网络将永远不会收敛到最佳的权重配置。
相反,如果学习率太小,网络可能需要很长时间才能收敛到最佳权重。
梯度下降类型
现在我们已经了解了梯度下降的基本工作原理,让我们来看看不同类型的梯度下降。
批量梯度下降:这种梯度下降形式在更新系数之前会运行所有训练样本。这类型的梯度下降可能是最计算效率的梯度下降形式,因为权重只在整个批次处理完成后更新,这意味着总更新次数较少。然而,如果数据集包含大量训练示例,则批量梯度下降可能会使训练时间变长。
随机梯度下降:在随机梯度下降中,每次迭代和参数更新只处理一个训练示例。这对于每个训练示例都发生。由于只处理一个训练示例,然后更新参数,因此它往往比批量梯度下降收敛得更快,因为更新更快。但是,由于该过程必须对训练集中的每个项执行,因此如果数据集很大,它可能需要很长时间才能完成,因此更喜欢使用其他类型的梯度下降。
小批量梯度下降:小批量梯度下降通过将整个训练数据集分成子集来工作。它创建较小的迷你批次,并在网络中运行它们。当迷你批次用于计算错误后,系数会被更新。小批量梯度下降在随机梯度下降和批量梯度下降之间找到平衡。模型的更新比批量梯度下降更频繁,这意味着对模型的最佳参数收敛略快且更稳健。它也比随机梯度下降更计算效率。










