该文为卷积神经网络的基础介绍
卷积神经网络是源于人工神经网络的深度学习方法,在深度学习中是极具代表性的网络结构。CNN相较于传统的算法避免了繁琐的前期处理(人工提取训练样本特征等),可以直接作用于原始的训练样本上(如图片、语音、文本等)。
1)卷积神经网络的基本结构
2)卷积神经网络的特点
3)卷积神经网络参数更新
4)卷积神经网络的应用
卷积神经网络的基本结构包含输入层、卷积层、池化层、全连接层和输出层。卷积层和池化层都能实现将特征映射降维,即特征提取。为了提取较多的特征,我们将会自行设置卷积层中卷积核的个数,因此,特征映射的数量往往会比较多。卷积得到的特征进入池化降维,然后展开并排列成为一个向量,这就是自动提取的特征向量,再进入分类器。分类器通常由一个全连接前馈神经网络构成,特征向量作为该分类器的输入,输出为分类器以最大概率判定该特征样本的类别。
卷积神经网络的结构,如图3.1所示:
1)输入层
该层是将输入的图片、文本或者语音等进行预处理,转化为计算机能够理解的数值型数据。例如,当输入数据为文本类型时,输入层的工作应该会包括分词、去停用词、文本表示等。
2)卷积层
卷积层是由多个卷积过程组成,而同一个卷积过程是通过同一个卷积核在输入数据矩阵上按照步长移动,两者对应数值相乘再求和,得到一个降维新矩阵,当步长为1时,这个新矩阵的维度=输入矩阵维度-卷积核矩阵维度+1。降低噪声,使原始特征中某些特征增强。此外,多个卷积过程得到多个降维新矩阵,这也相当于增加了训练集,对模型进行数据增量训练,使模型更稳健。
如图3.2,图中输入矩阵大小为5*5,卷积核大小为3*3,从左往右以步长为1的大小移动,从上往下也以同样的步长移动,然后与之对应所覆盖的输入矩阵相乘再求和。得到的降维新矩阵大小为3*3。图上所用到的输入矩阵为[1,1,1;0,1,1;0,0,1],卷积核为[1,0,1;0,1,0;1,0,1],第一个卷积,相乘求和为:
以此类推,该卷积所得卷积特征层为:[4,3,4;2,4,3;2,3,4]
若有多个卷积核,则每个卷积核都在输入矩阵上进行卷积,也就得到多个卷积特征矩阵。
3)激活层
在进入池化层前,需要通过一个激活函数判断卷积后的特征输出是否到达阈值,是则保留特征,反之则去除,这也是一种特征选择的体现。同时加入非线性因素,使得模型更具有泛化能力。常用的激活函数有:
4)池化层
池化是作用于卷积激活所得的特征矩阵上,其主要作用是去除该特征矩阵中不重要的特征信息,进而减少网络参数的量,减少过拟合。池化过程也可看成一个特殊的卷积过程,常用的方法有最大池化和均值池化。如图,在步长为2的最大池化中,选取最大的特征值保留,其余就忽略掉。在步长为2的平均池化中,对每个池化窗口里的特征值进行平均,取平均值保留。
5)扁平化
扁平化又称拉直,是将池化后的特征结果压缩并拉直为一维向量,作为全连接层的输入。如图,以最大池化结果为例:
6)全连接层
在进入全连接层之前,可设定一个Dropout值,将扁平化的一维特征向量随机去除一部分特征值,这是为防止训练模型的过拟合。即如图:
7)softmax层
softmax层是用于分类的,它将全连接的输出映射在区间为(0,1)内,可看成概率来理解,概率大所对应的位置就是输入矩阵的类别。计算方法为:
以上就是卷积神经网络的前向过程,当然卷积层和池化层也可以有多个,如VGG16和VGG19,它们的卷积层和池化层都是多层,可以一层卷积层后紧接一层池化层,也可以多个卷积激活层后接多个池化层。结构越复杂,虽然在训练集上拟合效果较好,但运行速度会减慢。
卷积神经网络是一个有监督的学习网络结构,通过标签与网络输出值间所使用损失函数衡量的损失反馈回去进行参数更新。
2.1梯度下降
大数据的时代,需要训练的样本非常大,传统的参数优化计算速度跟不上,且难以找到最优解,故在深度学习中常用的是梯度下降法。
为评估模型拟合效果,通常先使用损失函数来度量拟合程度,损失函数越小,就意味着拟合程度就越好,对应的模型参数也就是最优参数。通过最小化损失函数对各参数求导更新参数,可一步一步迭代求最优解,得到最小损失函数和其对应的模型参数值。梯度下降法根据采用不同样本量的方法可分为:全量梯度下降法、随机梯度下降法、小批量梯度下降法。
2.1.1 全量梯度下降方法
每次都需要使用整个训练集进行学习,其优点在于每次更新都会朝着全局最优的方向前进。最后能够保证,若是凸函数,则收敛于全局最优点,若是非凸函数,则可能会收敛于局部最优点。全量梯度下降的缺点在于每次学习时间太长,如果训练集很大,就会需要消耗大量的内存,影响运行速度,并且不能进行在线模型参数更新。
这三种梯度下降法,各有千秋,从训练速度来说,随机梯度下降最快,小批量梯度下降次之,全量梯度下降最慢。原因在于:全量梯度下降采用全部训练样本,训练速度慢,但可以收敛到全局最优解。随机梯度下降法每次只随机采用一个样本来进行迭代,虽然训练速度很快,但由于仅仅用一个样本决定梯度方向,导致解很有可能不是全局最优解,而是局部最优解,并且随机性过强,不能很快收敛。小批量梯度下降综合前两者的优点,速度比全量梯度下降快,收敛速度也比随机梯度下降快,不容易陷入局部最优。
卷积神经网络的总结,主要有以下几个特点:
a)局部感知。利用神经网络的分层结构与局部连接的特点,赋予一组相同的网络权重,作用于上层网络不同位置的输入,映射得到一个维度较低点的神经网络结构。这一结构降低了网络参数量,同时对局部空间输入产生了很强的响应,可将这些局部特征堆叠起来,更能反映其输入值的本质特征和局部特征。
b)权值共享。卷积核的大小远小于输入矩阵的大小,它在同一输入结构中以相同步长反复移动使用的,使得输入特征具有相同的权重和偏置,形成对应的特征映射。这样的设置大大减少了学习参数的数量,提高学习效率,有很好的泛化能力。
3.1优点
1.共享卷积核,对高维数据处理无压力;
2.无需手动选取特征,训练好权重,即得特征;
3.分类效果好
3.2缺点
1、需要调参,需要大量样本量,训练最好要GPU;
2、物理含义不明确
1)自然语言处理
2)计算机视觉
3)语音识别
参考文献
[1] https://www.cnblogs.com/xingkongyihao/p/9489635.html
[2] https://blog.csdn.net/chansonzhang/article/details/84674179
[3] https://blog.csdn.net/yunpiao123456/article/details/52437794
[4] https://blog.csdn.net/jiaoyangwm/article/details/80011656
(部分文字、图片来自网络,如涉及侵权,请及时与我们联系,我们会在第一时间删除或处理侵权内容。电话:4006770986 邮箱:zhangming [at]eefung.com 负责人:张明)