图像的三个特性指出了专门模型架构的必要性。 首先,图像是高维的,一个用于分类任务的典型图像含有 224×224 RGB 值(即,150528 个输入维度)。在全连接网络中,隐藏层的规模通常超过输入大小,因此,即便是对浅层网络而言,权重的总数也将超过 150528 的平方,达到 220 亿之多。这在所需的训练数据量、内存和计算量方面带来了显著的实际挑战。 其次,图像中相邻像素在统计学上是相关联的。但全连接网络无法识别“相邻”概念,对所有输入间的关系处理得同等无差。如果训练集和测试集图像的像素被以同样的方式随机置换,网络依旧能够被训练,且几乎不会有任何实际的区别。 第三,图像对几何变换的解释是稳定的。比如:若我们将一幅树的图像向左平移几个像素,它仍然是一幅树的图像。然而,这样的平移会改变网络接收的每一个输入。因此,全连接模型必须在每个位置单独学习代表树的像素模式:这无疑是效率低下的。 卷积层通过使用全图共享的参数,独立处理每一个局部图像区域。相比全连接层,卷积层使用更少的参数,能够利用相邻像素之间的空间关系,并且无需在每个位置重新学习像素的含义。一个主要由卷积层构成的网络称为卷积神经网络(CNN)。
1. 不变性与等变性
在之前的讨论中,我们提到图像的某些属性(比如树木的纹理)在经历变换后仍保持不变。本节将进一步明确这一概念,采用更加精确的数学表达。对于图像 x 的变换 t[x],如果函数 f[x]满足以下条件:
f [ t [ x ] ] = f [ x ] (10.1) f[t[x]]=f[x] \tag{10.1} f[t[x]]=f[x](10.1)
即函数 f[x]的输出与变换 t[x]无关,则称这个函数对该变换具有不变性。图像分类网络应该对图像的几何变换(如图 10.1a - b 所示)具有不变性,也就是说,即便图像经过平移、旋转、翻转或变形,网络 f[x]也能识别出图像中包含的对象相同。
若函数 f[x]对图像 x 在变换 t[x]下满足:
f [ t [ x ] ] = t [ f [ x ] ] (10.2) f[t[x]]=t[f[x]]\tag{10.2} f[t[x]]=t[f[x]](10.2)
这意味着,如果函数 f[x]的输出在变换 t[x]下以输入相同的方式发生变化,则称 f[x]对该变换具有等变性。针对每个像素的图像分割任务的网络对变换应当是等变的(如图 10.1c - f 所示);换句话说,如果图像被平移、旋转或翻转,网络 f[x]应返回一个经过相同变换处理的分割结果。
2. 适用于一维输入的卷积网络
卷积网络构建于一系列对平移显示等变性的卷积层之上。这些网络还通常融入池化
机制,以引入对平移的部分不变性。为了便于说明,我们先从较易于理解的一维(1D)
数据的卷积网络讲起。在第 10.3 节中,我们将讨论应用于图像数据的二维(2D)卷积。
2.1 一维卷积操作
卷积层利用卷积操作为基础,形成网络的一部分。在一维情况下,卷积把输入向量
x 转换成输出向量 z,其中每个输出 zi 都是周围输入的加权和。这些加权和在所有位置
上使用相同的权重,这组权重被称作卷积核或滤波器。定义输入被组合的区域大小为核
大小。对于核大小为三的情况,我们得到
z i = ω 1 x i − 1 + ω 2 x i + ω 3 x i + 1 (10.3) zi = ω_1x_{i−1} + ω_2x_i + ω_3x_{i+1}\tag{10.3} zi=ω1xi−1+ω2xi+ω3xi+1(10.3)
这里的 ω = [ ω 1 , ω 2 , ω 3 ] T ω = [ω1, ω2, ω3]^T ω=[ω1,ω2,ω3]T 就是所谓的卷积核(参见图 10.2)。值得注意的是,卷积操作对
平移保持等变性。即如果输入 x 发生平移,对应的输出 z 也会以同样的方式进行平移。
严格而言,这其实是一种互相关操作而非真正的卷积,因为在真正的卷积中,权重相对于输入会进行翻转(即