19

在阅读了几篇关于深度学习和深度信念网络的论文后,我对它的工作原理有了一个基本的了解。但仍然坚持最后一步,即分类步骤。我在 Internet 上找到的大多数实现都与生成有关。(MNIST 数字)

是否有一些解释(或代码)可以讨论使用 DBN 对图像(最好是自然图像或对象)进行分类?

此外,一些方向的指示会非常有帮助。

4

3 回答 3

24

基本思想

如今,用于图像分类问题的最先进的深度学习(例如ImageNet)通常是“深度卷积神经网络”(Deep ConvNets)。它们看起来大致类似于Krizhevsky 等人的 ConvNet 配置: 在此处输入图像描述

对于推理(分类),您将图像输入左侧(注意左侧的深度为 3,对于 RGB),通过一系列卷积过滤器进行处理,然后在右手边。这张图片特别适用于 ImageNet,它专注于对 1000 个类别的图像进行分类,因此 1000d 向量是“这张图片适合该类别的可能性的分数”。

训练神经网络只是稍微复杂一些。对于训练,您基本上重复运行分类,并且每隔一段时间进行一次反向传播(参见 Andrew Ng 的讲座)以改进网络中的卷积过滤器。基本上,反向传播询问“网络正确/错误地分类了什么?对于错误分类的东西,让我们稍微修复一下网络。”


执行

Caffe是深度卷积神经网络的一个非常快速的开源实现(比Krizhevsky 等人的cuda-convnet更快)。Caffe 代码非常容易阅读;每种类型的网络层(例如卷积层、最大池化层等)基本上都有一个 C++ 文件。

于 2014-01-16T19:52:11.337 回答
2

您应该在用于生成的网络之上使用 softmax 层 ( http://en.wikipedia.org/wiki/Softmax_activation_function ),并使用反向传播来微调最终网络。

于 2014-01-12T10:07:55.573 回答
2

这些天人们开始在分类层中使用 SVM。

深度学习正在非常自由和广泛地发展。

于 2014-09-12T06:04:46.253 回答