Deep Learning Book 学习笔记(9)

Convolutional Networks

Posted by Wenlong Shen on May 12, 2018

这可是我花了一下午才整明白的卷积!

卷积神经网络更多地用于处理具有类似网格结构的数据,如时间序列数据(一维)和图像数据(二维)等。

卷积运算

卷积运算可以看作是一个函数在另一个函数上的加权叠加,同时,可以将二元函数卷成一元函数从而达到降维的作用:

\[s(t)=\int x(a)w(t-a)da\]

卷积运算通常用星号表示:\(s(t)=(x*w)(t)\)。在术语中,卷积的第一个参数\(x\)为输入,第二个参数\(w\)为核函数,输出为特征映射。相应地,我们还可以给出离散形式、多维形式等。

动机

卷积运算通过三个重要的思想来帮助改进机器学习系统: 稀疏交互(sparse interactions)、参数共享(parameter sharing)、等变表示(equivariant representations)。

池化

卷积网络中一个典型层包含三级,在第一级中,并行地计算多个卷积产生一组线性激活响应;在第二级中,每一个线性激活响应将会通过一个非线性的激活函数,例如整流线性激活函数,这一级有时也被称为探测级(detector stage);在第三级中,我们使用池化函数(pooling function)通过某一位置的相邻输出的总体统计特征来代替网络在该位置的输出。

使用池化可以看作是增加了一个无限强的先验:这一层学得的函数必须具有对少量平移的不变性,当这个假设成立时,池化可以极大地提高网络的统计效率。同时,池化综合了全部邻居的反馈,这使得池化单元少于探测单元成为可能。

卷积与池化作为一种无限强的先验

先验被认为是强或者弱取决于先验中概率密度的集中程度。弱先验具有较高的熵值,例如方差很大的高斯分布,这样的先验允许数据对于参数的改变具有或多或少的自由性。强先验具有较低的熵值,例如方差很小的高斯分布,这样的先验在决定参数最终取值时起着更加积极的作用。一个无限强的先验需要对一些参数的概率置零并且完全禁止对这些参数赋值,无论数据对于这些参数的值给出了多大的支持。

把卷积神经网络当作一个具有无限强先验的全连接网络来实现会导致极大的计算浪费。但把卷积神经网络想成具有无限强先验的全连接网络可以帮助我们更好地洞察卷积神经网络是如何工作的。

基本卷积函数的变体

实际应用中的函数总是略有不同。首先,当我们提到神经网络中的卷积时,我们通常是指由多个并行卷积组成的运算。其次,输入通常也不仅仅是实值的网格,而是由一系列观测数据的向量构成的网格。在一些情况下,我们并不是真的想使用卷积,而是想用一些局部连接的网络层,在这种情况下,我们的多层感知机对应的邻接矩阵是相同的,但每一个连接都有它自己的权重,这有时也被称为非共享卷积。还有一种折衷的方法为平铺卷积,即并不是对每一个空间位置的权重集合进行学习,而是学习一组核使得当我们在空间移动时它们可以循环利用。这意味着在近邻的位置上拥有不同的过滤器,就像局部连接层一样,但是对于这些参数的存储需求仅仅会增长常数倍,这个常数就是核的集合的大小,而不是整个输出的特征映射的大小。

结构化输出

卷积神经网络可以用于输出高维的结构化对象,而不仅仅是预测分类任务的类标签或回归任务的实数值。

经常出现的一个问题是输出平面可能比输入平面要小,网络空间维数的最大减少来源于使用大步幅的池化层。为了产生与输入大小相似的输出映射,我们可以避免把池化放在一起。另一种策略是单纯地产生一张低分辨率的标签网格。最后,原则上可以使用具有单位步幅的池化操作。

数据类型

卷积网络使用的数据通常包含多个通道,每个通道是时间上或空间中某一点的不同观测量。下表给出了一些例子:

  单通道 多通道
1维 音频波形:卷积的轴对应于时间。我们将时间离散化并且在每个时间点测量一次波形的振幅。 骨架动画数据:计算机渲染的3D 角色动画是通过随时间调整“骨架”的姿势而生成的。在每个时间点,角色的姿势通过骨架中的每个关节的角度来描述。我们输入到卷积模型的数据的每个通道,表示一个关节关于一个轴的角度。
2维 已经使用傅立叶变换预处理过的音频数据:我们可以将音频波形变换成2维张量,不同的行对应不同的频率,不同的列对应不同的时间点。在时间轴上使用卷积使模型等效于在时间上移动。在频率轴上使用卷积使得模型等效于在频率上移动,这使得在不同八度音阶中播放的相同旋律产生相同的表示,但处于网络输出中的不同高度。 彩色图像数据:其中一个通道包含红色像素,另一个包含绿色像素,最后一个包含蓝色像素。在图像的水平轴和竖直轴上移动卷积核,赋予了两个方向上平移等变性。
3维 体积数据:这种数据一般来源于医学成像技术,例如CT扫描等。 彩色视频数据:其中一个轴对应着时间,另一个轴对应着视频帧的高度,最后一个对应着视频帧的宽度。

随机或无监督的特征

通常,卷积网络训练中最昂贵的部分是学习特征。输出层的计算代价通常相对不高,因为在通过若干层池化之后作为该层输入的特征的数量较少。当使用梯度下降执行监督训练时,每步梯度计算需要完整地运行整个网络的前向传播和反向传播。减少卷积网络训练成本的一种方式是使用那些不是由监督方式训练得到的特征。

有三种基本策略可以不通过监督训练而得到卷积核。其中一种是简单地随机初始化它们。另一种是手动设计它们,例如设置每个核在一个特定的方向或尺度来检测边缘。最后,可以使用无监督的标准来学习核。