联系我们

AI 101.

什么是梯度下降?

mm

更新

 on

什么是梯度下降?

如果您仔细阅读了神经网络如何培训,您之前几乎肯定会遇到术语“渐变下降”。梯度下降是优化神经网络性能的主要方法,降低网络的丢失/错误率。然而,梯度下降可能有点难以理解那些新的机器学习,本文将努力为您提供一种体面的直觉,了解梯度下降如何运行。

梯度下降是一种优化算法。它用于通过对网络的参数进行调整来提高神经网络的性能,使得网络的预测和网络的实际/预期值之间的差异(称为损耗)是尽可能小的。梯度下降采用参数的初始值,并使用基于微积分的操作来调整它们的值,以使网络可以像它一样准确地使网络。你不需要知道很多微积分来了解渐变血统的作品,但你需要了解渐变。

什么是梯度?

假设存在表示神经网络使得错误量的图表。图的底部表示最低错误的点,而图表的顶部是误差最高的位置。我们希望从图的顶部移动到底部。梯度只是量化误差与神经网络的权重之间的关系的一种方式。这两件事之间的关系可以绘制为斜坡,具有不正确的权重产生更多错误。斜坡/渐变的陡度表示模型学习的速度。

陡峭的斜率意味着进行误差的速度大,并且模型正在快速学习,而如果斜率为零,则模型在高原上并不学习。通过计算梯度,我们的模型的移动方向(网络参数的变化)来向下向斜率向下移动斜率。

让我们稍微稍微转移隐喻并想象一系列山丘和山谷。我们想到山的底部,找到代表最低损失的山谷的一部分。当我们从山顶开始时,我们可以沿着山上踏上大量的阶梯,并确信我们正在朝向山谷的最低点。

但是,当我们更接近谷中的最低点时,我们的步骤需要变小,否则我们可以过时过时。类似地,在调整网络的权重时,调整实际上可以将其进一步远离损耗的点,因此调整必须随时间变小。在降低山坡的背景下,梯度是一种传染媒介/指令,详细说明了我们应该采取的路径以及我们的步骤应该有多大。

现在我们知道渐变是告诉我们进入哪个方向的指令(应该更新哪些系数)以及我们所采取的步骤的大量(应更新系数),我们可以探索如何计算梯度。

计算梯度& Gradient Descent

梯度下降 starts at a place of high loss and by through multiple iterations, takes steps in the direction of lowest loss, aiming to find the optimal weight configuration. Photo: Роман Сузи via Wikimedia Commons, CCY BY SA 3.0 (//commons.wikimedia.org/wiki/File:Gradient_descent_method.png)

为了执行梯度下降,必须首先计算梯度。为了计算梯度,我们需要了解损失/成本函数。我们将使用成本函数来确定衍生品。在微积分中,衍生物是指在给定点的函数的斜率,因此我们基本上只计算了山坡的斜率损失功能。我们通过丢失函数运行系数来确定损失。如果我们代表损失函数作为“f”,那么我们可以说明计算损失的等式如下(我们只是通过我们所选择的成本函数运行系数):

损失= f(系数)

然后我们计算衍生物,或确定斜率。获得损失的衍生物将告诉我们,通过向我们提供适当的标志来调整我们的系数的斜坡上下或向下斜坡。我们将适当的方向代表为“delta”。

delta =衍生物 - 函数(损失)

我们现在确定将哪个方向下坡到最低损失点。这意味着我们可以更新神经网络参数中的系数,并希望降低损耗。我们将基于先前的系数更新系数减去由方向(delta)和控制更改幅度(我们步骤的大小)的参数所确定的相应变更。控制更新大小的参数称为“学习率“我们将把它代表为”alpha“。

系数=系数– (alpha * delta)

然后,我们只需重复此过程,直到网络融合到最低损耗点,这应该接近零。

为学习率(alpha)选择合适的值非常重要。所选择的学习率既不太小或太大。请记住,当我们接近损失最低的点时,我们的步骤必须变得更小,否则我们将过度过度超过最低损失的真实点,并最终在另一边。最小损失的点很小,如果我们的变化率太大,错误可能最终再次增加。如果阶梯尺寸太大,网络的性能将在最低损失的点上继续反弹,在一侧过冲,然后是另一侧。如果发生这种情况,网络将永远不会收敛真实的最佳权重配置。

相比之下,如果学习速率太小,网络可能可能需要非常长的时间来聚合在最佳权重上。

梯度下降的类型

现在我们了解渐变血缘程度如何,让我们看看一些不同的东西梯度下降的类型.

批量梯度下降:在更新系数之前,这种形式的梯度下降通过所有训练样本。这种类型的梯度下降可能是梯度下降最多有效的形式,因为只有在处理整个批处理后才更新权重,这意味着总计较少。但是,如果数据集包含大量训练示例,则批量梯度下降可以使训练需要很长时间。

随机梯度下降:在随机梯度下降中,仅处理单个训练示例,用于梯度下降和参数更新的每次迭代。这发生了每个训练示例。由于在更新参数之前仅处理一个训练示例,因为它倾向于在批量梯度下降时收敛,因为更新是更新的。但是,由于必须在训练集中的每个项目上执行进程,因此如果数据集很大,则需要花费很长时间才能完成,因此如果优选地使用其他梯度血缘血清类型之一。

迷你批量梯度下降:迷你批量梯度下降通过将整个训练数据集分成小节来运行。它创建较小的批次通过网络运行,并且当迷你批处理用于计算错误时,将更新系数。迷你批量梯度下降撞击随机梯度下降和批量梯度下降之间的中间地。该模型比在批量梯度下降的情况下更频繁更新,这意味着对模型的最佳参数略微更快,更强大的融合。它也比随机梯度下降更加计算

Blogger和Programmer有专业的机器学习深度学习话题。丹尼尔希望帮助别人利用AI的力量来社交。