2014-10-17 127 views
0

通常反向传播神经网络存在消失梯度的问题。 我发现卷积神经网络(CNN)一些如何摆脱这种消失的渐变问题(为什么?)。为什么要对卷积神经网络进行预训练

也在一些论文中讨论了CNN的一些预训练方法。 有人可以解释我以下吗?

(1) the resons for pretraining in CNN and 
    (2) what are the problems/limitations with CNN? 
    (3) any relavent papers talking about the limitation of CNN? 

在此先感谢。

+0

只是关于第一点。 CNN作为其他类型的深度学习方法试图学习稀释反向传播算法的能力的许多节点和层。输出节点的错误差异为10%可能导致第一层更新0.000001%。预训练(无监督方法)不会受到这些问题的困扰,可以在使用反向传播进行微调之前将网络更新为有意义的权重(并将模式与我们所需的输出相关联)。 – ASantosRibeiro 2014-10-17 12:50:59

+0

尝试在交叉验证中查找:http://stats.stackexchange.com/search?q=cnn – killogre 2014-10-28 12:06:39

回答

3
  1. 预训练是一种正则化技术。它提高了模型的泛化精度。由于网络暴露于大量数据中(我们在很多数据中都有大量的无监督数据),所以权重参数被传送到整体上代表数据分布的空间,而不是过度拟合底层数据的特定子集分配。神经网络,尤其是那些具有大量隐藏单元的模型表示能力的神经网络,倾向于过度拟合您的数据,并容易受到随机参数初始化的影响。此外,由于初始层以监督方式正确初始化,因此梯度稀释问题不再那么严重。这就是为什么预训练被用作监督任务的初始步骤,通常使用梯度下降算法进行训练。

  2. CNN与其他神经网络有着同样的命运。调整的参数太多;最佳输入补丁大小,隐藏层数,每层特征图的数量,池化和步幅大小,归一化窗口,学习速率等。因此,与其他ML技术相比,模型选择的问题相对困难。大型网络的培训可以在GPU或CPU集群上进行。

+0

我不确定其他神经网络,但我相信CNN无法在群集上进行有效训练。它通常在GPU上完成。我当然很想纠正。 – 2014-10-19 13:06:36

+1

我在一个集群上训练他们,这显然不是一个有效的方法。但是如何在没有GPU的非常大的机器上训练深层网络仍然有工作要做。如果你很好奇,我会把你的论文转交给你:http://cs.stanford.edu/people/ang/?portfolio=large-scale-distributed-deep-networks – Cylonmath 2014-10-21 11:32:51

+0

啊我明白了。谢谢。 – 2014-10-22 10:01:59