是否有任何好的论文涵盖了一些有条理的方法来选择过滤器的维度、池化单元和确定卷积层的数量?
选择卷积神经网络超参数的规则
在某种程度上是的,谷歌研究人员最近发表了一篇关于如何选择好的 Inception 架构的论文。Inception 网络在有限的参数预算上实现了非常高的性能,所以这是一个很好的起点,而且它是最近的。这是链接:重新思考计算机视觉的初始架构。
他们没有提供任何硬性的定量规则,而是他们使用并相信帮助他们在最近的 ImageNet 比赛中取得良好表现的指导方针。
例如,他们讨论的一些原则是:
使用较小感受野卷积层的堆栈,而不是使用单个大感受野卷积层,即 2 个 3x3 卷积层堆栈与单个 7x7 卷积层。这个想法并不新鲜,它也在牛津 VGG 团队的《Return of the Devil in the Details: Delving Deep into Convolutional Networks》中进行了讨论。这是出于对参数有效的需求的推动。当我们通过更多层引入更多非线性时,它还具有更多表示能力的双重效果。
我在本文提到的文献中没有看到的是将卷积层分解为深层。因此,我们将有一个 1x7 的卷积层,然后是一个 7x1 的卷积层,而不是一个 7x7 的卷积层。增加了更多的深度,我相信它的参数也很有效。
平衡网的深度和宽度。使用高维表示。这是他们的 Inception 模块背后的原则之一,它将多个卷积层连接在一起。因此,即使您的 conv 网络中的空间尺寸很小,使用 Inception 模块,我们也可以通过多尺度卷积连接使用高维表示:1x1、3x3、3x3-3x3、max pool 全部放在一起。这些 Inception 模块具有“宽度”,因为它们可以被解释为并行执行多个操作。他们使用新的 Inception 模块走得更远,这些模块具有分解卷积大小、1x3、3x1 等。
使用 1x1 卷积层(网络风格的网络)来降低维度。他们使用了大量的降维技术来实现参数效率。他们认为这是有效的,因为相邻的特征图具有高度相关的输出。这是有道理的,因为众所周知,自然图像会表现出一些与此一致的局部统计特性。因此,通过 1x1 NIN 层降低维度不会对表示能力产生灾难性影响。
文章中还有更多内容。我认为这是一篇文章,可以提供一些关于您所问问题的见解。他们正在谈论conv net架构设计的一些非常核心的概念。
我没有遇到任何关于根据问题规范选择这些超参数的文献。但是,据我了解,大多数人都采用贝叶斯优化方法将有效值归零。您指定一个合理的范围,并通过测试各种组合,您可以了解这些超参数如何与模型的准确性相关的模型。这对我来说效果很好。查看 Snoek、Larochelle 和 Adams 的“机器学习算法的实用贝叶斯优化”(http://papers.nips.cc/paper/4522-practical-bayesian-optimization-of-machine-learning-algorithms.pdf)。