深入学习图像分类

时间:2013-02-17 18:26:59

标签: machine-learning neural-network dbn

在阅读了一些关于深度学习和深层信仰网络的论文后,我对它的工作方式有了基本的了解。但仍然坚持最后一步,即分类步骤。 我在互联网上发现的大多数实现都涉及到生成。 (MNIST数字)

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

此方向的一些指示也非常有用。

3 个答案:

答案 0 :(得分:24)

基本理念

目前,图像分类问题(例如ImageNet)的最先进的深度学习通常是“深度卷积神经网络”(Deep ConvNets)。它们看起来与Krizhevsky et al的ConvNet配置大致相同: enter image description here

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

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


实施

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

现在人们开始在分类层中使用SVM。

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