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

Posted

技术标签:

【中文标题】深度信念网络与卷积神经网络【英文标题】:Deep Belief Networks vs Convolutional Neural Networks 【发布时间】:2014-08-24 02:33:25 【问题描述】:

我是神经网络领域的新手,我想知道深度信念网络和卷积网络之间的区别。 另外,有没有深度信念和卷积神经网络结合的深度卷积网络?

这是我到目前为止收集到的。如果我错了,请纠正我。

对于图像分类问题,深度信念网络有很多层,每一层都使用贪心逐层策略进行训练。 例如,如果我的图像大小是 50 x 50,并且我想要一个有 4 层的深度网络,即

    输入层 隐藏层 1 (HL1) 隐藏第 2 层 (HL2) 输出层

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

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

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

    输入层(7 x 7 = 49 个神经元) HL1(25 个神经元,用于 25 个不同的特征)-(卷积层) 池化层 输出层(Softmax)

为了学习权重,我从大小为 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,我只在较小的输入的补丁(比如 10 x 10 的大小为 200x200 的图像)并在整个图像上对学习的权重进行卷积?

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

谢谢。

【问题讨论】:

您也可以在 dsp.stackexchange 中询问。可能会得到更好的答案。 【参考方案1】:

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

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

【讨论】:

我有一个包含鞋子、衬衫手表等的图像目录,我希望我的分类能够准确地说给定图像(从相机拍摄)是一块手表圆形表盘或运动鞋或女士高跟鞋。这些图像比大多数神经网络算法(mnist,stl)测试过的 30×30 图像大得多(400×400)。所以我猜测深度信念网络不会扩展(计算的参数太多),因此我应该使用卷积深度信念网络? @user3705926 您可以将 400 x 400 的图像重新缩放为更小的尺寸(例如 50 x 50) - 这将大大减少参数数量并且不会影响性能。是的,你可以试试Conv。 DBN的;有很多很酷的 ConvNets 新变体(例如带 Maxout 的 ConvNets,参见 Goodfellow 等人的论文),您也可以尝试一下。深度学习领域的许多新发明总体上不断发生......所以有很多事情要尝试。 我将尝试将它们调整为不同的大小并检查性能,我还将研究卷积 DBN。我想将此方法与传统的 CNN 方法进行比较。有没有办法决定 CNN 中的过滤器大小、过滤器数量和层数?谢谢 不,不是。我能想到的最自动化的方法是贝叶斯超参数优化。见:github.com/JasperSnoek/spearmint 我会使用 CNN。正如其他人反复证明的那样,它在图像识别方面效果很好。它的 atm 计算效率也更高。【参考方案2】:

我会尝试通过学习鞋来说明情况。

如果你在这里使用 DBN 来学习这些图像,那么你的学习算法会发生坏事

不同的地方会有鞋子。

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

如果您的所有图像都通过大小、平移和旋转来对齐,DBN 才有意义。

卷积网络的思想是,有一个概念叫做权重共享。如果我尝试扩展这个“权重共享”的概念

首先,您查看了 7x7 补丁,根据您的示例 - 作为第一层中 3 个神经元的示例,您可以说他们学习了鞋子“前”、“后底”和“后上”因为这些零件在所有鞋子上看起来都像 7x7 补丁。

通常的想法是有多个卷积层一个接一个地学习

第一层的线/边, 弧线,第二层的角, 较高层中的较高概念,例如鞋前层、眼睛在脸上、汽车中的***或矩形圆锥三角形作为原始但仍是先前层输出的组合。

你可以把我告诉你的这 3 个不同的事情想象成 3 个不同的神经元。当图像的某些部分有鞋子时,图像中的这些区域/神经元会触发。

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

1234563接近于零。

要了解哪些神经元用于鞋子,哪些不是,您将把 400 维向量放到另一个监督分类器中(这可以是多类 SVM 之类的任何东西,或者如您所说的 soft-max-层)

我可以建议你看一下 Fukushima 1980 的论文,以了解我试图说的关于平移不变性和线 -> 弧 -> 半圆 -> 鞋面 -> 鞋的想法 (http://www.cs.princeton.edu/courses/archive/spr08/cos598B/Readings/Fukushima1980.pdf)。即使只是看论文中的图像也会给你一些想法。

【讨论】:

好吧,这对于天真的 RBM 来说是正确的,但是这个答案没有提到的重大发展。李等人。 (cs.toronto.edu/~rgrosse/icml09-cdbn.pdf) 引入了概率最大池以及卷积 DBN。您提到的 CNN 的优势很容易被 DBN 采用,Lee 教授设法获得了当时最先进的性能。最近(CVPR15),普林斯顿的肖教授将卷积RBN应用于3D形状分类和重建:)

以上是关于深度信念网络与卷积神经网络的主要内容,如果未能解决你的问题,请参考以下文章

深度信念网络与卷积神经网络在非图像分类任务上的表现

深度学习-常见神经网络

深度可分离卷积神经网络与卷积神经网络

《卷积神经网络的Python实现》PDF代码+《解析深度学习卷积神经网络原理与视觉实践》PDF分析

原创 深度学习与TensorFlow 动手实践系列 - 3第三课:卷积神经网络 - 基础篇

深度学习与CV教程 | 卷积神经网络