花书-卷积神经网络( 二 )


卷积运算通常用星号表示:
术语中,卷积的第一个参数(函数x)叫做输入,第二个参数(函数w)叫做核函数 。输出称作特征映射 。
在机器学习的应用中,输入通常是多维数组的数据,核通常是由学习算法优化得到的多维数组的参数 。
在图像中,如果把一张二维的图像I作为输入,需要使用一个二维的核K:
卷积是可交换的,可等价地写作:
卷积运算可交换性的出现是因为将核相对输入进行了翻转,从m增大的角度来看,输入的索引增大,核的索引在减小:
核函数的维度m是行数,n是列数,输入I的行数i+m,列数j+n.
一个在二维张量上的卷积运算:
9.2动机
卷积运算通过三个重要思想帮助改进机器学习系统:稀疏交互,参数共享,等变表示 。以及,卷积提供一种大小可变的输入方法 。
稀疏交互:卷积网络具有稀疏交互的特征 。这是使核的大小远小于输入的大小达到的 。在图像中,处理一张图像时,输入的图像可能包含成千上万个像素点,我们通过只占用几十到上百个像素点的核检测一些小的有意义的特征,如图像的边缘 。如果有m个输入和n个输出,矩阵乘法需要mxn个参数并且相应算法的时间复杂度为O(mxn).
参数共享:卷积运算中的参数共享保证我们只需要学习一个参数集合,而不是对于每一个位置都需要学习一个单独的参数集合 。没改变前向传播的运行时间(O(kxn)),但显著把模型存储需求降低至k个参数,并且k比m小很多个数量级,因此卷积在存储需求和统计效率极大地优于稠密矩阵乘法运算 。参数共享如图实现;
等变表示:卷积运算在处理时间序列数据时,通过卷积可以得到一个由输入中出现不同特征的时刻所组成的时间轴 。把输入中的一个事件向后延时,在输出中仍然会有完全相同的表示 。
9.3池化(把大图变小图,具有平移不变性)
最大池化:最大池化给出相邻矩形区域内的最大值 。池化函数使用某一位置的相邻输出的总体统计特征来代替网络在该位置的输出 。
其它常用的池化函数包括相邻形区域内的平均值,L2范数,基于中心像素距离的加权平均函数 。
卷积网络用于分类的结构示例:
维度变化:输入图像→卷积的输出(ReLU)→步幅为4的池化输出→卷积的输出(ReLU)→步幅为4的池化的输出→变形为向量的输出(16384个单元)→的输出(1000个类的概率) 。
原理:处理固定大小的图像的卷积神经网络 。在卷积层和池化层几层交替之后,卷积特征映射的张量被重新变形以展平空间维度 。网络的其余部分是一个普通的前馈网络分类器 。最后的卷积层为每个类输出一个特征映射 。
将特征映射进行平均得到的单个值,提供了顶部分类器的变量 。
9.4卷积与池化作为一种无限强的先验 9.5基本卷积函数的变体
卷积:在神经网络上下文讨论卷积时,通常不是特指数学文献中使用的那种标准的离散卷积运算 。
单个卷积核:具有单个核的卷积只能提取一种类型的特征 。
输入:输入通常不只是实值的网络,是由一系列观测数据的向量构成的网格 。例如,一幅彩色图像在每一个像素点都会有红,绿,蓝三种颜色的亮度 。
输出:在多层的卷积网络中,第二层的输入是第一层的输出,通常在每个位置包含多个不同卷积的输出 。
软件使用:当处理图像时,通常把卷积的输入输出都看做3维的张量,其中一个索引用于标明不同通道,另外两个索引标明在每个通道上的空间坐标 。软件使用批处理模式,所以会使用4维的张量,第4索引用于标明处理不同实例 。