如何确定在卷积神经网络层中使用的特征图数量?

7
我一直在研究卷积神经网络,甚至使用了Julia的Mocha.jl包进行实践(看起来很像Caffe,但你可以在Julia REPL中进行操作)。
在卷积神经网络中,卷积层之后是"特征图"层。我想知道如何确定一个网络需要多少个特征图层来解决某个特定的问题?这是科学还是艺术呢?我可以看到,如果你试图进行分类,至少最后一层应该有特征图的数量等于类别数(除非你在网络的顶部有一个全连接的MLP层)。
在我的情况下,我不仅仅是做分类,更多地是尝试为图像中的每个像素计算一个值(我想这可以被视为一种分类,其中类别从0到255)。
编辑:正如评论中指出的那样,我试图解决的是回归问题,输出范围在0到255之间(在本例中为灰度)。问题仍然存在:如何确定在任何给定的卷积层中使用多少个特征图层?这对于回归问题和分类问题是否不同呢?

分类假设预测0而不是255与预测254而不是255同样糟糕。很可能对您来说并非如此,因此您可能希望解决回归问题而不是分类问题。 - Artem Sobolev
@Barmaley.exe:是的。然而,我在CNN上看到的绝大多数论文都是解决分类问题,而不是回归问题。无论哪种情况,我都想知道如何确定要使用的特征图数量。 - aneccodeal
@BartoszKP,除非您指定损失函数,否则您的陈述毫无意义。从我的角度来看,最流行的两种是交叉熵(分类)和L2损失(回归)。而且,交叉熵不依赖于目标具体数值,也不依赖于它们的顺序。 - Artem Sobolev
@BartoszKP,但是L2损失用于回归,而不是分类。当然,您可以尝试将分类问题解决为回归问题,但从理论和直觉的角度来看,这是错误的。 - Artem Sobolev
@Barmaley.exe 看来我已经太晚了,无法清晰地思考 :) 我会删除我的评论,感谢讨论,你是正确的 :) - BartoszKP
2个回答

5

基本上,像任何其他超参数一样-通过在单独的开发集上评估结果并找到最佳数字。还值得检查处理类似问题的出版物,并找到他们使用的特征图数量。


2
随着卷积神经网络层数的增加,滤波器数量增加是一种趋势。有什么理由这样做吗? - dnth
1
我不是卷积神经网络的专家,但我猜测这可能是由于特征组合的组合性质所致。 - Taozi

1

更多的艺术。使用卷积神经网络的imagenet获胜者之间唯一的区别是改变层的结构,可能还有一些新颖的训练方法。

VGG是一个很好的例子。从2 ^ 7开始的过滤器大小,然后是2 ^ 8,然后是2 ^ 9,然后是完全连接的层,最后是输出层,这将为您提供类别。您的地图和层深度可以与输出类别数量完全无关。

您不会想在顶部使用完全连接的层。这有点违背了卷积网络设计解决的目的(过度拟合和优化每个神经元的成百上千个权重)

在大型数据集上训练将需要一些重型计算资源。如果您正在使用imagenet-有一组使用caffe预先训练的模型,您可以在其上构建http://caffe.berkeleyvision.org/model_zoo.html

我不确定您是否可以将它们移植到mocha。但是,如果您感兴趣,可以将其移植到tensor flow https://github.com/ethereon/caffe-tensorflow


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接