避免深度神经网络中的梯度消失

Avoiding vanishing gradient in deep neural networks

我正在研究 Keras 以尝试深入学习。

据我所知,由于梯度消失问题,仅堆叠几个致密层可以有效地阻止反向传播工作。

我发现有一个预训练的 VGG-16 神经网络,您可以下载并在其上构建。

这个网络有 16 层,所以我猜,这是你遇到梯度消失问题的区域。

假设我想在 Keras 中自己训练网络。我应该怎么做?我应该将层划分为集群并作为自动编码器独立训练它们,而不是在其上堆叠一个分类器并训练它吗? Keras 是否有内置机制?

不,消失的梯度问题不像以前那么普遍,因为几乎所有网络(循环网络除外)都使用 ReLU 激活,这不太容易出现这个问题。

您应该从头开始训练一个网络,看看它是如何工作的。不要尝试去处理你还没有遇到的问题。

了解跳过连接。虽然它是激活功能,但它们负责此但跳过连接也会在那里输入。

残差块中引入的跳过连接允许梯度回流并到达初始层。

我们不使用 Sigmoid 和 Tanh 作为激活函数,这会导致梯度消失问题。现在大多数情况下,我们在训练深度神经网络模型时使用基于 RELU 的激活函数来避免此类并发症并提高准确性。