卷积神经网络
卷积神经网络基础
基本概念
定义
卷积(Convolution),也叫褶积,是分析数学中一种重要的运算。在信号处理或图像处理中,经常使用一维或二维卷积。 这里我们只考虑离散序列的情况。
以图像处理为例,输入信息
X
X
X和卷积核(滤波器)
W
W
W的二维卷积定义为
Y
=
W
∗
X
Y=W*X
Y=W∗X
- 注意根据卷积定义,计算时需要对卷积核进行翻转(指旋转180°),观察上例中-1和1的位置变化。
事实上在机器学习和图像处理领域,通常使用不翻转卷积替代,即互相关(Cross-Correlation),其公式为
Y
=
W
⊗
X
=
r
o
t
180
(
W
)
∗
X
Y=W \otimes X=rot180(W)*X
Y=W⊗X=rot180(W)∗X
- 计算时卷积核不翻转。
步长(Stride)
是指卷积核在滑动时的时间间隔;
填充(Padding)
是在矩阵的边界上填充一些值,以增加矩阵的大小,通常用0或者复制边界像素来进行填充。
网络结构
卷积神经网络一般由卷积层、汇聚层和全连接层构成。
卷积层
在全连接前馈神经网络中,如果第
l
l
l层有
M
l
M_l
Ml 个神经元,第
l
−
1
l-1
l−1层有
M
l
−
1
M_{l-1}
Ml−1 个神经元,连接边有
M
l
×
M
l
−
1
M_{l}\times M_{l-1}
Ml×Ml−1个,也就是权重矩阵有
M
l
×
M
l
−
1
M_{l}\times M_{l-1}
Ml×Ml−1个参数。当
M
l
M_l
Ml 和
M
l
−
1
M_{l-1}
Ml−1都很大时,权重矩阵的参数非常多,训练的效率会非常低。
如图使用卷积层就可以实现局部连接和权重共享,连接数和权重都大大减少。
可以理解为一个卷积核只捕捉输入数据中的一种特定的局部特征。因此,如果要提取多种特征就需要使用多个不同的卷积核。
汇聚层(Pooling Layer)
卷积层虽然可以显著减少网络中连接的数量,但特征映射组中的神经元个数并没有显著减少。如果后面接一个分类器,分类器的输入维数依然很高,很容易出现过拟合。为了解决这个问题,可以在卷积层之后加上一个汇聚层,从而降低特征维数,避免过拟合。
常用的汇聚函数有两种:
- 最大汇聚:选择这个区域内所有神经元的最大活性值作为这个区域的表示,如下图所示
- 平均汇聚:取区域内所有神经元活性值的平均值
汇聚层也可以看作一个特殊的卷积层,卷积核为max函数或 mean函数。
基本卷积神经网络
LeNet-5
LeNet-5[LeCun et al., 1998] 1虽然提出的时间比较早,但它是一个非常成功的神经网络模型。网络结构如下:
AlexNet
AlexNet[Krizhevsky et al., 2012]2 是第一个现代深度卷积网络模型,其首次使用了很多现代深度卷积网络的技术方法,比如使用GPU 进行并行训练,采用了 ReLU 作为非线性激活函数,使用 Dropout 防止过拟合,使用数据增强来提高模型准确率等。网络结构如下:
ResNet
残差网络(Residual Network,ResNet) 通过给非线性的卷积层增加直连边(也称为残差连接)的方式来提高信息的传播效率。
假设在一个深度网络中,我们期望一个非线性单元(可以为一层或多层的卷积层)𝑓(𝒙; 𝜃)去逼近一个目标函数为ℎ(𝒙)。如果将目标函数拆分成两部分:恒等函数𝒙和残差函数ℎ(𝒙) − 𝒙。
根据通用近似定理,一个由神经网络构成的非线性单元有足够的能力来近似逼近原始目标函数或残差函数,但实际中后者更容易学习 [He et al., 2016]3。残差单元如图所示,残差网络就是将很多个残差单元串联起来构成的一个非常深的网络。
Inception
在卷积网络中,如何设置卷积层的卷积核大小是一个十分关键的问题。在Inception 网络中,一个卷积层包含多个不同大小的卷积操作,称为Inception 模块。Inception网络是由有多个Inception模块和少量的汇聚层堆叠而成。
Inception 网络有多个版本,其中最早的 Inception v1 版本就是非常著名的GoogLeNet [Szegedy et al., 2015]4。模块结构如下:
常用数据集
MNIST
MNIST 数据集主要由一些手写数字的图片和相应的标签组成,图片一共有 10 类,分别对应从 0~9。
PASCAL VOC
目标分类(识别)、检测、分割最常用的数据集之一。第一届PASCAL VOC举办于2005年,2012年终止。常用的是PASCAL 2012,一共分成20类。
- person
- bird, cat, cow, dog, horse, sheep
- aeroplane, bicycle, boat, bus, car, motorbike, train
- bottle, chair, dining table, potted plant, sofa, tv/monitor
MS COCO
数据集以scene understanding为目标,主要从复杂的日常场景中截取。包含目标分类(识别)、检测、分割、语义标注等数据集。 ImageNet竞赛停办后,COCO竞赛就成为是当前目标识别、检测等领域的一个最权威、最重要的标杆。
提供的标注类别有80 类,有超过33 万张图片,其中20 万张有标注,整个数据集中个体的数目超过150 万个。官网:http://cocodataset.org
- 人:1类
- 交通工具:8类,自行车,汽车等
- 公路常见:5类,信号灯,停车标志等
- 动物:10类,猫狗等
- 携带物品:5类,背包,雨伞等
- 运动器材:10类,飞盘,滑雪板,网球拍等。
- 厨房餐具:7类,瓶子,勺子等
- 水果及食品:10类
- 家庭用品:7类,椅子、床,电视等
- 家庭常见物品:17类,笔记本,鼠标,遥控器等
ImageNet
始于2009年,李飞飞与Google的合作:“ImageNet: A Large-Scale Hierarchical Image Database”。
- 总图像数据:14,197,122
- 总类别数:21841
- 带有标记框的图像数:1,034,908
本文参考《动手深度学习》
LeCun Y, Bottou L, Bengio Y, et al., 1998. Gradient-based learning applied to document recognition
[J]. Proceedings of the IEEE, 86(11):2278-2324. ↩︎Krizhevsky A, Sutskever I, Hinton G E, 2012. ImageNet classification with deep convolutional neural networks[C]//Advances in Neural Information Processing Systems 25. 1106-1114. ↩︎
He K, Zhang X, Ren S, et al., 2016. Deep residual learning for image recognition[C]//Proceedings
of the IEEE conference on computer vision and pattern recognition. 770-778. ↩︎Szegedy C, Liu W, Jia Y, et al., 2015. Going deeper with convolutions[C]//Proceedings of the IEEE
Conference on Computer Vision and Pattern Recognition. 1-9. ↩︎