深层信念网络与卷积神经网络

时间:2014-07-03 05:38:49

标签: machine-learning computer-vision neural-network dbn autoencoder

我是神经网络领域的新手,我想知道Deep Belief Networks和Convolutional Networks之间的区别。 还有,深度卷积网络是深信仰和卷积神经网络的结合吗?

这是我迄今为止所收集到的。如果我错了,请纠正我。

对于图像分类问题, Deep Belief网络有许多层,每个层都使用贪婪的分层策略进行训练。 例如,如果我的图像尺寸是50 x 50,我想要一个有4层的深层网络

  1. 输入图层
  2. 隐藏层1(HL1)
  3. 隐藏层2(HL2)
  4. 输出图层
  5. 我的输入层将有50 x 50 = 2500个神经元,HL1 = 1000个神经元(比方说),HL2 = 100个神经元(比如说)和输出层= 10个神经元,  为了训练输入层和HL1之间的权重(W1),我使用AutoEncoder(2500 - 1000 - 2500)并学习大小为2500 x 1000的W1(这是无监督学习)。然后我通过第一个隐藏层向前馈送所有图像以获得一组特征,然后使用另一个自动编码器(1000-100-1000)来获得下一组特征,最后使用softmax层(100-10)进行分类。 (只学习最后一层的权重(HL2 - 输出是softmax层)是监督学习。)

    (我可以使用RBM代替自动编码器。)

    如果使用卷积神经网络解决了同样的问题,那么对于50x50输入图像,我将仅使用7 x 7补丁开发网络(比方说)。我的图层将是

    1. 输入层(7 x 7 = 49个神经元)
    2. HL1(25个不同特征的25个神经元) - (卷积层)
    3. 合并图层
    4. 输出层(Softmax)
    5. 为了学习重量,我从尺寸为50 x 50的图像中取出7 x 7个补丁,并通过卷积层向前馈送,因此我将有25个不同的特征贴图,每个尺寸(50 - 7 + 1)x( 50 - 7 + 1)= 44 x 44。

      然后我使用11x11的窗口来汇集手,因此得到25个大小为(4 x 4)的特征映射作为汇集层的输出。我使用这些特征图进行分类。

      在学习权重时,我不使用深层信念网络(无监督学习)中的分层策略,而是使用监督学习并同时学习所有层的权重。这是正确的还是有其他方法来学习权重?

      我理解的是正确的吗?

      因此,如果我想使用DBN进行图像分类,我应该将所有图像调整到特定大小(比如说200x200)并在输入层中放置那么多神经元,而在CNN的情况下,我只训练一个较小的神经元。输入的补丁(比如尺寸为200x200的图像为10 x 10)并将学习的权重卷积在整个图像上?

      DBN是否提供比CNN更好的结果,还是纯粹依赖于数据集?

      谢谢。

2 个答案:

答案 0 :(得分:21)

一般来说,DBN是堆叠受限玻尔兹曼机器(RBM)的生成神经网络。您可以将RBM视为生成自动编码器;如果你想要一个深刻的信念网,你应该堆叠RBM而不是普通的自动编码器,因为Hinton和他的学生Yeh证明堆叠RBM会导致sigmoid信仰网。

在基准计算机视觉数据集(如MNIST)的当前文献中,卷积神经网络本身比DBN表现得更好。如果数据集不是计算机视觉数据集,那么DBN绝对可以表现得更好。理论上,DBN应该是最好的模型,但目前很难准确估计联合概率。您可能对Lee et。感兴趣。 al's's(2009)致力于卷积深度信念网络,该网络希望将两者结合起来。

答案 1 :(得分:19)

我会尝试通过学习鞋来解释这种情况。

如果你使用DBN来学习这些图像,这将是你的学习算法中会发生的坏事

  • 不同地方会有鞋子。

  • 所有的神经元不仅会尝试学习鞋子,还会学习鞋子在图像中的位置,因为它不会在重量内部有“局部图像补丁”的概念。

  • 如果所有图片都通过尺寸,平移和旋转来对齐,则DBN会有意义。

卷积网络的想法是,有一个称为权重共享的概念。如果我试图扩展这个'权重分享'概念

  • 首先你看了7x7补丁,根据你的例子 - 作为第一层中3个神经元的例子,你可以说他们学会了鞋子'前面','后底'和'后面-upper'部件因为所有鞋子的7x7补丁看起来都很相似。

    • 通常这个想法是让一个接一个的多个卷积层学习

      • 第一层中的线条/边缘
      • 弧形,第二层中的角落,
      • 更高层次的更高概念,如鞋前,眼睛,车轮或矩形锥体三角形作为原始但仍然是先前层输出的组合。
    • 你可以把这三种不同的东西想象成3种不同的神经元。当图像的某些部分有鞋子时,图像中的这些区域/神经元将会发射。

    • 池化将保护您的高级激活,同时对图像进行二次采样并创建一个低维空间,使计算更容易,更可行。

    • 所以在最后一层当你看到你的25X4x4,换句话说就是400维向量,如果图片中的某个地方你的'鞋神经元'将是活跃的,而非鞋神经元将是接近于零。

    • 要了解哪些神经元适用于鞋子,哪些神经元不适合你将400维向量放到另一个有监督的分类器中(这可以是多类SVM或者你说的一个软最大值 - 层)

我可以建议你一瞥福岛1980年的论文,以了解我试图谈论的翻译不变性和行 - > arc - >半圆 - >鞋前 - >鞋子的想法(http://www.cs.princeton.edu/courses/archive/spr08/cos598B/Readings/Fukushima1980.pdf)。即使只是查看论文中的图像也会给你一些想法。