卷积网络的过滤器/内核来自哪里?

时间:2015-04-13 14:24:30

标签: neural-network convolution feature-extraction deep-learning

我见过一些教程示例,如UFLDL covolutional net,它们使用无监督学习获得的特征,或some others,其中内核是手工设计的(使用Sobel和Gabor探测器,不同锐度/模糊设置等)。奇怪的是,我找不到关于如何为玩具网络选择一个好内核的一般指导方针。例如,考虑到具有许多卷积池层的深层网络,每层使用的内核是相同的,还是每层都有自己的内核子集?如果是这样,那么这些,更深层的过滤器来自何处 - 我是否应该使用一些无监督学习算法来学习通过第一个卷积和池化层对的数据?

我理解这个问题没有单一的答案,我很乐意只采用一般方法(一些评论文章会很精彩)。

2 个答案:

答案 0 :(得分:2)

目前的技术水平建议使用反向传播(ref)从数据中学习所有卷积层。

此外,this paper推荐小内核(3x3)和池(2x2)。您应该为每个层训练不同的过滤器。

答案 1 :(得分:1)

深度网络中的内核大多数是使用反向传播(计算梯度)和某些版本的随机梯度下降(优化算法)以监督方式(网络的已知输入和输出)同时进行训练。

不同层中的内核通常是独立的。它们可以有不同的尺寸,它们的数量也可以不同。如何设计网络是一个悬而未决的问题,它取决于您的数据和问题本身。

如果您想使用自己的数据集,则应从现有的预训练网络[Caffe Model Zoo]开始,并在数据集上进行微调。这样,网络的体系结构将是固定的,因为您必须尊重原始网络的体系结构。您可以下载的网络接受过非常大的问题的培训,这使得它们能够很好地概括为其他分类/回归问题。如果您的数据集至少部分类似于原始数据集,则微调网络应该可以很好地工作。

获取更多信息的好地方是Caffe @ CVPR2015 tutorial