局部连接的像素在图像中高度相关。在机器学习中,使用 SVM 或其他分类器,我们希望我们的特征尽可能不相关。
然而,在 CNN 中,为什么我们想要完全相反的东西?我们专注于高度相关的特征(即像素)以与我们的权重向量(比如 5x5 过滤器)进行卷积?
我了解它的用途是减少数量。的参数,但我不清楚为什么本地连接应该工作?基本上考虑图像中的本地连接背后的动机是什么?
局部连接的像素在图像中高度相关。在机器学习中,使用 SVM 或其他分类器,我们希望我们的特征尽可能不相关。
然而,在 CNN 中,为什么我们想要完全相反的东西?我们专注于高度相关的特征(即像素)以与我们的权重向量(比如 5x5 过滤器)进行卷积?
我了解它的用途是减少数量。的参数,但我不清楚为什么本地连接应该工作?基本上考虑图像中的本地连接背后的动机是什么?
在卷积层中,滤波器具有输出深度参数。所以 5x5 滤波器实际上是 5x5xd,d 是输出深度。这实质上意味着存在“d”个不同的过滤器,每个过滤器将(学习)具有不同的权重。每个过滤器将检测特征图(例如输入图像)中特定模式的存在,但不同的过滤器可能会学习检测不相关的特征。例如,一个过滤器可能已经学会了寻找垂直线,而第二个过滤器可能已经学会了检测 45 度的倾斜线。
因此,考虑到可能高度相关的低级特征(邻域中的像素),卷积层的应用实际上会生成新的不相关的高级特征(如直线)。
这是因为如果过滤器成功地从图像的一小部分中提取了有用的特征,我们希望从图像的其他部分中提取相同的特征。这与我们希望从图像中提取平移不变特征这一事实有关,即我们希望从图像中提取当图像中的对象移动到图像中的另一个位置时不会改变的特征。这不是特定于 CNN 的,而是机器视觉中的常见范例。
您可以将卷积层视为一种降维技术。事实上,附近的像素共享很多协方差,理想情况下,机器学习方法的特征是独立的。
如果将卷积算子替换为特定的卷积算子,并且所有权重都是(即平均值),则它有效地减少了图片的维度。然而,这个操作相当简单,并没有针对我们的特定学习目标进行调整。通过学习 conv 算子的权重,我们可以将我们的“平均值”“调整”到我们的学习目标。
conv 操作适用于 2d 和 3d 输入,因为它为这种降维提供了结构。它专注于学习附近像素的方差。通过去除附近像素的方差,后面的全连接层可以更有效。
根据 Ian Goodfellow 等人。来自深度学习书:
当我们知道每个特征应该是一小部分空间的函数时,局部连接层很有用,但没有理由认为相同的特征应该出现在所有空间中。例如,如果我们想判断一张图像是否是一张人脸的图片,我们只需要在图像的下半部分寻找嘴巴。制作卷积或局部连接层的版本也很有用,其中连接性受到进一步限制,例如将每个输出通道 i 约束为仅是输入通道 l 的子集的函数