第五章 卷积神经网络
卷积神经网络(Convolutional Neural Network,CNN或ConvNet)是一种具有局部连接、权重共享等特性的深层前馈神经网络。
卷积神经网络最早是主要用来处理图像信息。在用全连接前馈网络来处理图像时,会存在两个问题:(1)参数太多;(2)全连接前馈网络无法直接提取(可通过数据增强实现)图片的局部不变性特征。
目前的卷积神经网络一般是由卷积层、汇聚层和全连接层交叉堆叠而成的前馈神经网络,使用反向传播算法进行训练。
卷积神经网络有三个结构上的特性:局部连接、权重共享以及汇聚。这些特性使得卷积神经网络具有一定程度上的平移、缩放和旋转不变性。和前馈神经网络相比,卷积神经网络的参数更少。
卷积
也叫摺积,是分析数学中一种重要的运算。
一维卷积:经常用在信号处理中,用于计算信号的延迟累积。(可以说是在时间序列段上对值取加权平均)
二维卷积:主要用在图像处理上,是一维卷积的扩展。一幅图像在经过卷积操作后得到结果称为特征映射(Feature Map)。
互相关
是一个衡量两个序列相关性的函数,通常是用滑动窗口的点积计算来实现。
互相关和卷积的区别仅仅在于卷积核是否进行翻转。因此互相关也可以称为不翻转卷积。
卷积的变种
- 窄卷积(Narrow Convolution):步长s = 1,两端不补零p = 0,卷积后输出长度为n − m + 1。
- 宽卷积(Wide Convolution):步长s = 1,两端补零p = m − 1,卷积后输出长度n + m − 1。
- 等宽卷积(Equal-Width Convolution):步长s = 1,两端补零p = (m −1)/2,卷积后输出长度n。
卷积的数学性质
-
交换性
如果不限制两个卷积信号的长度,对于翻转卷积和不翻转卷积都有
-
导数
假设
,其中
,函数
为一个标量函数,则
卷积神经网络
一般由卷积层、汇聚层和全连接层构成。
用卷积来代替全连接
为了减少学习参数数量。
卷积层
不失一般性,假设一个卷积层的结构如下:
在输入为,输出为
的卷积层中,每一个输出特征映射都需要D个滤波器以及一个偏置。假设每个滤波器的大小为m × n,那么共需要P × D × (m × n) + P 个参数。
汇聚层
也叫子采样层,其作用是进行特征选择,降低特征数量,从而减少参数数量。
常用的汇聚有两种:最大汇聚(Max Pooling)和平均汇聚(Mean Pooling)。
典型的卷积神经网络结构
目前,整个网络结构趋向于使用更小的卷积核(比如1 × 1 和3 × 3)以及更深的结构(比如层数大于50)。此外,由于卷积的操作性越来越灵活(比如不同的步长),汇聚层的作用也变得越来越小,因此目前比较流行的卷积网络中,汇聚层的比例正在逐渐降低,趋向于全卷积网络。
参数学习
在卷积神经网络中,主要有两种不同功能的神经层:卷积层和汇聚层。而参数为卷积核以及偏置,因此只需要计算卷积层中参数的梯度。
几种典型的卷积神经网络
LeNet-5
AlexNet
Inception 网络
一个卷积层包含多个不同大小的卷积操作,称为Inception 模块。Inception 网络是由有多个Inception 模块和少量的汇聚层堆叠而成。
残差网络
是通过给非线性的卷积层增加直连边(的)方式来提高信息的传播效率。