在阅读了一些关于深度学习和深层信仰网络的论文后,我对它的工作方式有了基本的了解。但仍然坚持最后一步,即分类步骤。 我在互联网上发现的大多数实现都涉及到生成。 (MNIST数字)
是否有某些解释(或代码)可用于讨论使用DBN对图像(最好是自然图像或对象)进行分类?
此方向的一些指示也非常有用。
答案 0 :(得分:24)
基本理念
目前,图像分类问题(例如ImageNet)的最先进的深度学习通常是“深度卷积神经网络”(Deep ConvNets)。它们看起来与Krizhevsky et al的ConvNet配置大致相同:
对于推理(分类),您将图像输入到左侧(注意左侧的深度为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。
深度学习正在非常自由和广泛地发展。