【发布时间】:2017-01-01 00:51:00
【问题描述】:
这种对卷积神经网络的直观理解是否正确: 1. 卷积基本上匹配图像的局部部分与卷积核/滤波器的相似程度 2. 内核/过滤器就像一个特征检测器。重要的是,它是学习并通过 SGD 自动更改和优化
【问题讨论】:
标签: machine-learning computer-vision neural-network conv-neural-network
这种对卷积神经网络的直观理解是否正确: 1. 卷积基本上匹配图像的局部部分与卷积核/滤波器的相似程度 2. 内核/过滤器就像一个特征检测器。重要的是,它是学习并通过 SGD 自动更改和优化
【问题讨论】:
标签: machine-learning computer-vision neural-network conv-neural-network
对于“多么相似”的粗略理解,这是正确的。如果您将计算点积 视为衡量相似性,那么答案是肯定的。为什么我个人有疑问?因为它在很大程度上取决于向量(或矩阵)的范数。让我们考虑图像
1 1 1
2 2 2
1 1 1
和内核
1 1 1
2 2 2
1 1 1
我们对它们进行卷积得到
1 + 1 + 1 + 2*2 + 2*2 + 2*2 + 1 + 1 + 1 = 18
现在让我们拍照
2 2 2
2 2 2
2 2 2
我们得到
2 + 2 + 2 + 2*2 + 2*2 + 2*2 + 2 + 2 + 2 = 24
我会说第一个图像比另一个图像更相似与内核,但卷积说明了其他内容。因此这不是那么简单,卷积只是图像的基本线性过滤,对信号进行卷积,将点积应用于子样本,但称其为“相似性搜索”有点过分。然而,它是一个特征检测器,一个非常特殊的检测器。
您在描述中缺少的关于卷积的关键是这些检测器的共享性质,即您学习一堆本地图像过滤器它们应用于图像的每个“点”,从而实现了一种位置不变性并大大减少了模型的参数化。
【讨论】:
您提供的解释大致正确,但可以从一些详细说明中受益。
将卷积神经网络视为以分层方式堆叠的与位置无关的模式识别器。卷积操作通过在输入空间中的每个位置应用内核来实现位置无关性。
每个卷积层都会识别特定的特征(从训练中学习)。可以将输出视为存在哪些特征以及在哪个位置的映射。
堆叠卷积层允许后续层识别更复杂的特征(您可以将架构中的每个卷积层视为识别特征,这些特征本身就是在前一层中学习的特征的组合)。
为了有效地训练这些网络,我们通常希望在靠近输出分类器(在网络中从左到右移动)时“漏斗”数据维度。这通常是通过子采样(通过池化操作(通常是最大值,有时是平均值)或卷积跨步来牺牲空间信息的一些粒度的问题,这涉及在抽取的子集上评估卷积输出可能的输出位置)。
卷积和池化操作共同学习输入空间的非线性投影。用数学术语来说,网络的“深度”卷积部分已经学习了从非常高维的输入空间(例如图像中的 RGB 像素)到基本上传达发生率和位置的低维输出的非线性映射一组学习特征的(通常是原始空间或时间分辨率的一小部分)。
一旦我们有了这样一个低维表示,它通常会被展平并输入一个“传统的”全连接网络,该网络能够有效地在(相对的)低维抽象特征集上执行分类或预测任务由卷积层产生。
从历史上看,许多分类方法依赖于复杂的“特征工程”来执行与卷积层学习内容类似的操作,以便轻松有效地训练分类器(可以是神经网络、随机森林、SVM 或任意数量的其他算法)。 ConvNets 的强大之处在于它们能够消除对特征工程的需求,并将特征学习的任务与分类器的训练完全结合起来。
【讨论】: