【问题标题】:Avoiding vanishing gradient in deep neural networks避免深度神经网络中的梯度消失
【发布时间】:2020-03-23 03:45:40
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: keras keras-layer


    【解决方案1】:

    不,梯度消失问题不像以前那样普遍,因为几乎所有网络(除了循环网络)都使用 ReLU 激活,而这些激活的可能性要小得多。

    您应该从头开始训练一个网络,看看它是如何工作的。不要试图处理尚未解决的问题。

    【讨论】:

      【解决方案2】:

      了解跳过连接。虽然是激活函数负责这个,但跳过连接也会在那里输入。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-12-02
        • 1970-01-01
        • 2020-08-09
        • 1970-01-01
        • 2015-05-11
        • 2020-05-15
        • 2018-10-05
        相关资源
        最近更新 更多