我是神经网络领域的新手,我想知道Deep Belief Networks和Convolutional Networks之间的区别。 还有,深度卷积网络是深信仰和卷积神经网络的结合吗?
这是我迄今为止所收集到的。如果我错了,请纠正我。
对于图像分类问题, Deep Belief网络有许多层,每个层都使用贪婪的分层策略进行训练。 例如,如果我的图像尺寸是50 x 50,我想要一个有4层的深层网络
我的输入层将有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补丁开发网络(比方说)。我的图层将是
为了学习重量,我从尺寸为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更好的结果,还是纯粹依赖于数据集?
谢谢。
答案 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)。即使只是查看论文中的图像也会给你一些想法。