为什么梯度消失是个问题?

数据挖掘 神经网络 深度学习 梯度下降
2021-09-28 04:16:25

假设我们正在使用一个神经网络 4 层与 50,30,20,10每个神经元。梯度消失的问题意味着与较早层(例如第一层)相关的参数变化率将显着低于与后面层(例如第四层)相关的参数变化率。

现在成本函数跨越 n- 尺寸在哪里 n 是参数的总数,我们试图通过在这些维度上改变它来找到这个成本函数的最小值。

我的问题是为什么它不能得出这样的结论,即成本函数在与早期层相关的参数创建的维度上几乎是平坦的。

这是我可以提供的帮助:这是来自neuralnetworksanddeeplearning.com

对消失(或不稳定)梯度的一种反应是想知道它们是否真的是这样一个问题。暂时离开神经网络,想象一下我们试图在数值上最小化一个函数f(x)的单个变量。如果衍生品不是好消息吗f(x)很小吗?那不是说我们已经接近极值了吗?以类似的方式,深度网络早期层的小梯度是否意味着我们不需要对权重和偏差进行太多调整?

当然,事实并非如此。回想一下,我们随机初始化了网络中的权重和偏差。无论我们希望我们的网络做什么,我们的初始权重和偏差都不太可能做得很好。具体来说,考虑a中的第一层权重[784,30,30,30,10]MNIST 问题的网络。随机初始化意味着第一层丢弃了关于输入图像的大部分信息。即使后面的层已经过广泛的训练,他们仍然会发现识别输入图像非常困难,仅仅是因为他们没有足够的信息。所以不可能在第一层不需要做太多的学习。如果我们要训练深度网络,我们需要弄清楚如何解决梯度消失问题。

摘录中的具体问题:

  1. 无论我们希望我们的网络做什么,我们的初始权重和偏差都不太可能做得很好。为什么?为什么成本函数在早期权重创建的维度上几乎是平坦的。确切地说,为什么解释不是最后 3 层足以完成如此​​繁重的工作,以至于他们总是找到与我们初始化第一层的任何随机权重的非常小的接近对应的权重。土豆土豆。我用不同的词问同样的事情,以确保我传达自己

  2. 具体来说,考虑a中的第一层权重 [784,30,30,30,10]MNIST 问题的网络。随机初始化意味着第一层丢弃了关于输入图像的大部分信息。这是什么意思?请解释。据我了解,我们不能明确地将第二层输入追溯到第一层输入。但是,即使我们随机初始化权重,我们仍然知道这些权重是什么,那么我们是如何丢弃信息的呢?

1个回答

为什么它不能得出这样的结论,即成本函数在与早期层相关的参数创建的维度上几乎是平坦的。

你的结论听起来很合理——但仅限于我们计算梯度的附近。

例如(这是一个不切实际的例子,但请耐心等待)考虑成本函数为 C(x,y)=100x2+y2, 尽管 x 是后一层的权重,并且 y是较早层中的权重。
我使用https://academo.org/demos/contour-plot/绘制了等高线图C,然后画了4梯度下降算法可能采取的步骤(从左上角开始的箭头)。
(有关等高线的解释以及为什么它们垂直于渐变,请参见传奇3Blue1Brown的视频12。

梯度下降算法只看到计算梯度的斜率,所以这里它认为代价函数在维度上是相当平坦的y

如果梯度告诉我们函数在某个维度上是平坦的,这并不意味着它在该维度上的任何地方都是平坦的

想象一个场景,上面的箭头更加密集,即步骤在维度上的进步更小y. 这将使梯度下降算法非常慢。

这是另一个直观的例子,不幸的是,梯度告诉我们“成本函数在这个维度上几乎是平坦的,所以没有必要在那个维度上移动”。

Cy这里非常小,所以梯度下降算法会非常缓慢:

低梯度低,但我们仍然希望朝那个方向移动


至于你的其他问题,我会尽量澄清尼尔森的解释。

假设我们有一个[784,30,30,30,10]MNIST问题的网络,它有一个严重的梯度消失问题。
因此,在我们随机初始化第一个隐藏层(即第一个30神经元层,其权重矩阵的大小为30×784),它们实际上是这样卡住的(因为最早层中的梯度非常小)。

现在,考虑一个不幸的情况,我们随机初始化第一个隐藏层中的权重,使得某些像素的权重非常小,以至于这些像素的输入值实际上被丢弃了。
为了澄清,这些输入值乘以非常小的权重,所以它们的加权值总是接近于0,无论输入值如何。每个输入值的加权值是网络唯一知道输入的信息,因此就好像这些输入值被丢弃了一样。

换句话说,输入图像中的一些像素对网络是不可见的。
为了证明这一点,我将这些“不可见像素”涂成红色:

涂成红色的不可见像素

让我们看看我们的网络如何看到一些 MNIST 图像:

将不可见像素涂成红色后的 MNIST 数字

是不是一个 6? 是不是一个5? 即使是像我这样的人也很难确定..
一张照片怎么样8 或者 9? 那么我们能识别数字吗?

尼尔森声称不可能有效地训练这样的网络来识别数字,因为它根本无法访问一些关键信息——不可见的像素。