从全连接到卷积
我们的目标是理解卷积层为何是处理图像这类具有空间结构数据的理想选择。为此,我们不直接定义卷积,而是从一个最通用但极其笨拙的模型开始——全连接层(多层感知机),然后通过引入两个针对图像特性的基本原则——平移不变性(Translation Invariance) 和局部性(Locality)——来逐步简化这个模型,最终我们将看到,这个被简化后的模型,其形式与卷积运算完全等价。
一个泛化的全连接层
让我们先忘记“卷积”这个词。假设现在,我们想用一个类似多层感知机的模型来处理图像。输入是一张二维图像 ,输出(或称为隐藏表示)是另一张尺寸相同的二维图像 。
为了计算输出图像中特定位置 处的像素值 ,一个最直接的想法是:让这个输出像素的值依赖于输入图像中所有像素的信息。这正是全连接的思想。我们可以用一个巨大的权重矩阵 来连接每一个输入像素和每一个输出像素。
这引出了第一个、也是最核心的初始公式:
让我们拆解这个公式,因为理解它是后续所有推导的基础:
- : 我们想要计算的目标,即输出图像在坐标 处的一个像素值。
- : 输入图像在坐标 处的一个像素值。
- : 这个求和符号意味着我们遍历了输入图像的所有像素(所有可能的 和 )。
- : 这是整个模型的核心,也是其最复杂的部分。它是一个四阶张量。它的物理意义是:连接输入像素 到输出像素 的那个特定权重。我们可以理解为,在输入图像和输出图像之间有无数根连线,每一根线都有一个自己独特的权重值。
- : 这是偏置项,表示输出像素 有一个自己独特的偏置值。
这个模型的缺陷是什么? 答案是参数数量的爆炸。假设输入和输出图像都是 像素,那么仅权重张量 就需要有 个参数。这在计算上是完全不可行的,也极易导致过拟合。我们的任务就是简化它。
引入原则一 平移不变性
现在我们引入第一个基本原则:平移不变性。这个原则基于对图像世界的观察:我们用于识别某个特定模式(比如一只猫的眼睛)的方法,不应该因为这个模式出现在图像的不同位置而改变。 换句话说,用于检测左上角猫眼的“探测器”和用于检测右下角猫眼的“探测器”,其内部结构应该是完全相同的。
我们将这个原则应用到我们的数学模型上。这意味着,连接输入像素和输出像素的权重,不应该取决于它们的绝对位置 和 ,而只应该取决于它们之间的相对位移。
-
定义相对位移:令 和 。 就代表了输入像素相对于输出像素的偏移量。
-
应用不变性:我们现在要求,对于任意的绝对位置 ,只要相对位移 相同,那么连接权重就必须相同。
-
数学转换:这迫使我们原来的四阶权重张量 退化。我们可以定义一个新的、更小的二阶张量 ,它只依赖于相对位移 。
这就是动手学深度学习中提到的“从到的转换只是形式上的转换”。现在, 就是我们共享的“模式探测器”。
同时,平移不变性也应该应用于偏置项。如果模式探测器是共享的,那么每个输出位置的基准偏置也应该是相同的。因此, 退化为一个常数 。
现在,我们将这些简化代回最初的公式。注意,我们需要调整求和的索引。原先我们对 求和,现在我们可以对相对位移 求和。
我们取得了什么成就? 我们通过引入平移不变性,极大地减少了参数量。我们不再为每个输出像素学习一套独立的权重,而是让所有输出像素共享同一套权重 。这套共享的权重,就是我们后来称之为卷积核(Convolution Kernel) 或滤波器(Filter) 的东西。
引入原则二 局部性
我们继续引入第二个基本原则:局部性。这个原则同样源于对图像世界的观察:要理解图像中的一个局部区域(比如判断一个像素是否属于一只猫的鼻子),我们通常只需要关注这个像素周围的一个小邻域,而不需要考虑距离很远的像素。
这个原则应用到我们的模型上,意味着输出像素 的值,只应该由输入图像 中以 为中心的某个小邻域内的像素决定。
-
数学转换:在当前的公式 中,求和项 仍然遍历了所有的相对位移,这意味着它还是一个“全连接”的模式。为了施加局部性约束,我们规定,当相对位移 超出某个小窗口(例如,窗口大小为 )时,其对应的权重 必须为零。
-
简化公式:这个约束使得我们不再需要对所有的 进行求和,而只需要在一个小范围内求和。
这就是卷积
现在,审视我们最终得到的这个公式:
这个数学运算的含义是:
- 取一个小的权重矩阵 (即卷积核)。
- 将这个核的中心对准输入图像 的某个位置 。
- 将核的权重与它覆盖的图像像素值进行逐元素的乘法运算。
- 将所有乘积相加,得到的结果(再加上一个偏置 )就是输出图像 在 位置的值。
- 在整个图像上滑动这个核,对每个位置重复以上步骤,就得到了完整的输出图像 。
这个操作,正是二维卷积的定义。
通过这个从第一性原理出发的推导,我们看到,卷积并非一个凭空发明的、复杂的数学技巧。它是一个从泛化的全连接模型出发,在施加了平移不变性和局部性这两个对于图像数据而言极其自然的约束后,必然得到的、被极大简化了的优雅形式。
- 平移不变性 带来了 参数共享(Parameter Sharing),使得模型的参数量从 降低到 (其中 是图像边长, 是核的边长)。
- 局部性 带来了 稀疏连接(Sparse Connectivity),使得每个输出单元只与一小部分输入单元相连,极大地提高了计算效率。