在深度学习中卷积网络使用相同滤波器的倍数有什么优势

在深度学习中,卷积网络使用相同滤波器的倍数有什么优势?

例如:我们在第一层使用6个大小为[5,5]的滤波器来扫描图像数据,这是一个大小为[28,28]的矩阵。问题是为什么我们不使用单个大小为[5,5]的滤波器,而是使用6个或更多的滤波器。最终它们会扫描完全相同的像素。我能理解随机权重可能会有所不同,但深度学习模型最终会调整这些差异。

那么,具体来说,在卷积网络中使用多个相同形状的滤波器的主要优势和目的是什么呢?


回答:

为什么滤波器形状相同?

首先,核的形状相同只是为了加速计算。这允许以批处理的方式应用卷积,例如使用col2im变换和矩阵乘法。这也方便将所有权重存储在一个多维数组中。尽管从数学角度来看,可以想象使用几个不同形状的滤波器。

一些架构,如Inception网络,利用了这个想法,并并行应用不同卷积层(使用不同核),最后将特征图堆叠起来。这被证明非常有用。

为什么一个滤波器不够?

因为每个滤波器将学习一种会使其激活的模式,例如,类似Gabor的垂直线。一个滤波器无法对水平线和垂直线同样敏感。因此,要识别一个物体,一个这样的滤波器是不够的。

例如,为了识别一只猫,神经网络可能需要识别眼睛、尾巴等,这些都是由不同的线条和边缘组成的。如果网络能够在图像中识别出各种不同的形状和模式,它就可以对图像中的物体充满信心。即使对于像MNIST这样的简单数据集,这也是正确的。

为什么滤波器会学习不同的模式?

一个简单的类比:想象一个具有一个隐藏层的线性回归网络。隐藏层中的每个神经元都连接到每个输入特征,因此它们都是对称的。但经过一些训练,不同的神经元将学习不同的高级特征,这些特征有助于做出正确的预测。

有一个需要注意的地方:如果网络以零初始化,它将遭受对称性问题,通常不会收敛到目标分布。因此,从一开始就必须在神经元中创建不对称性,让不同神经元对相同输入数据产生不同的激活。这反过来会导致不同的梯度应用于权重,通常会进一步增加不对称性。这就是为什么不同神经元的训练方式不同。

还需要提到另一个与随机初始化仍可能出现的问题,称为协同适应:当不同神经元学会适应并依赖彼此时。这个问题已经被dropout技术以及后来的批量归一化解决,本质上是通过以各种方式向训练过程添加噪声。结合起来,神经元更有可能学习数据的不同潜在表示。

进一步的链接

强烈推荐阅读斯坦福的CS231n教程,以更好地理解卷积神经网络的直觉。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注