我一直在Conv Nets上做很多阅读,甚至还有一些使用Julia的Mocha.jl包(看起来很像Caffe,但你可以在Julia REPL中玩它)。
在Conv网中,卷积层后面跟着“要素图”图层。我想知道的是,如何确定网络需要解决某些特定问题的特征映射数量?这有什么科学还是更艺术?我可以看到,如果你试图进行分类,至少最后一层应该有多个特征映射==类的数量(除非你在网络顶部有一个完全连接的MLP,我想)。
在我的情况下,我不是在做分类,而是试图为图像中的每个像素提出一个值(我想这可以看作是一个类,其中类从0到255)。
编辑:正如评论中指出的那样,我正在尝试解决回归问题,其中输出的范围是0到255(在这种情况下是灰度)。但问题仍然存在:如何确定在任何给定卷积层中使用多少个要素图?对于回归问题与分类问题,这是否有所不同?
答案 0 :(得分:4)
基本上,与任何其他超参数一样 - 通过在单独的开发集上评估结果并找到最佳编号。还值得检查处理类似问题的出版物并查找他们使用的特征图的数量。
答案 1 :(得分:1)
更多艺术。使用conv-nets的imagenet获胜者之间的唯一区别是改变了层的结构,也许还有一些新颖的培训方式。
VGG是一个很好的例子。从过滤器大小开始,以2 ^ 7开始,然后是2 ^ 8,然后是2 ^ 9,接着是完全连接的层,然后是输出层,它将为您提供类。您的地图和图层深度可能与输出类的数量完全无关。
您不希望顶部有完全连接的图层。这种方法破坏了卷积网设计解决的目的(过度拟合和优化每个神经元数十万个权重)
对大集的培训需要一些繁重的计算资源。如果您正在使用imagenet - 那么您可以在http://caffe.berkeleyvision.org/model_zoo.html
之上构建一组带有caffe的预训练模型我不确定你是否可以将这些移植到mocha。如果您对https://github.com/ethereon/caffe-tensorflow
感兴趣,可以使用端口进行张量调整