赞
踩
本人小白,学习中有什么问题可以指出
卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深 度结构的前馈神经网络,是多层感知机(MLP)的变种,本质是一个多层感知机,但由于 其采用了局部连接和权值共享的方式,一方面减少了权值数量使得网络易于优化,另一方 面也降低了模型的复杂度,减少了过拟合的风险。 卷积神经网络在输入图像时,优势表现的更为明显,其可以使图像直接作为网络的输入, 避免了传统识别算法中复杂的特征提取及数据重建的过程,在二维图像的处理过程中有很 大的优势,如网络能够自行抽取图像的特征包括颜色、纹理、形状及图像的拓扑结构,在 处理二维图像的问题上,特别是识别位移、缩放及其他形式扭曲不变性的应用上具有良好 的鲁棒性和运算效率等。
卷积神经网络总体由输入层、隐含层、输出层构成,隐含层则主要由卷积层、池化层、全 连接层等构成,其大致组成如上图。
通过卷积运算我们可以提取出图像的特征,通过卷积运算可以使得原始信号的某些特征增 强,并且降低噪声,卷积运算大致如下图所示。
图中左边的是输入的图像(5×5),中间是卷积核(3×3),右边是卷积的结果(3×3)。 运算时将卷积核从图像的左上角开始,从左到右从上到下,依次进行步长为1的卷积,具 体卷积运算是将卷积核内的系数乘上图像对应位置的数值,然后将所有数值累加,得到特征图某一像素的值。例如图中的155=(-1)×0+(-2)×0+(-1)×75+0×0+0×75+0×80+1×0 +2×75+1×80。从图中我们可以看出来,单纯的进行卷积的话会使图片尺寸变小,因此 为减少图像特征的损失,我们通常会对输入的图像进行填充,填充数值通常为0或重复边 界填充。假设输入的图像尺寸为l,对于某一边的填充层数为p,卷积核大小为f,步长为 w,输出的图像尺寸为L,那么:
L=(l+2×p-f)÷w+1
一般而言,为保证提取特征的效果,我们在卷积的时候不会改变特征图的大小,及宽和高 不变。
池化层一般是在尽可能保证特征不损失的情况下,缩小特征图的大小的所进行的操作,通 常进行的池化分为最大池化和均值池化,一般而言,均值池化能减小因邻域大小受限而造 成的估计值方差增大而产生的误差,从而保留图像的背景信息,最大池化则能减小银卷积 层参数误差造成估计均值的偏移而产生的误差,从而更多的保留纹理信息。上图是4×4的 图像进行2×2、步长为2的池化后的结果。
卷积神经网络中的全连接层等价于传统前馈神经网络中的隐含层。全连接层通常搭建在卷 积神经网络隐含层的最后部分,并只向其它全连接层传递信号。特征图在全连接层中会失 去3维结构,被展开为向量并通过激励函数传递至下一层 。 在一些卷积神经网络中,全连接层的功能可部分由全局均值池化(global average pooling)取代,全局均值池化会将特征图每个通道的所有值取平均,即若有7×7×256的 特征图,全局均值池化将返回一个256的向量,其中每个元素都是7×7,步长为7,无填充 的均值池化 。
以前常用的激励函数是Sigmoid函数和tanh函数,不过近年来在卷积神经网络中较为常用 的是ReLu(线性整流)函数,使用ReLu和之前的sigmoid函数作用是一样的,不过ReLu的收敛速度会比其他两个快很 多,而且更容易学习优化,因其分段线性的特性,使得其前传后传求导都是分段线性的, 在一定程度上缓解了梯度消失和过拟合的问题,在深层网络训练时,tanh和sigmoid都会 在端值趋于饱和,造成训练速度过慢,因此常默认采用ReLu函数。不过ReLu函数会有死 亡问题,其主要原因是学习率过大,使得输入数据在过神经元的时候输出值小于0了,然 后再过ReLu就没效果了,因此要注意学习率不能过大。
CNN在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系, 而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对卷积网络加以训 练,网络就具有输入输出对之间的映射能力。 卷积网络执行的是监督训练,所以其样本集是由形如:(输入向量,理想输出向量)的向 量对构成的。所有这些向量对,都应该是来源于网络即将模拟系统的实际“运行”结构, 它们可以是从实际运行系统中采集来。
1)参数初始化: 在开始训练前,所有的权都应该用一些不同的随机数进行初始化。“小随机数”用来保证 网络不会因权值过大而进入饱和状态,从而导致训练失败;“不同”用来保证网络可以正 常地学习。实际上,如果用相同的数去初始化权矩阵,则网络无学习能力。
2)训练过程包括四步 ① 第一阶段:前向传播阶段 i 从样本集中取一个样本,输入网络 ii 计算相应的实际输出;在此阶段信息从输入层经过逐级的变换,传送到输出层,这个过 程也是网络在完成训练之后正常执行时执行的过程 ② 第二阶段:后向传播阶段 iii 计算实际输出与相应的理想输出的差 iv 按照极小化误差的方法调整权值矩阵 整个网络的具体训练步骤:
1、选定训练组,从样本集中分别随机地寻求N个样本作为训练组;
2、将各权值、阈值,置成小的接近于0的随机值,并初始化精度控制参数和学习率;
3、从训练组中取一个输入模式加到网络,并给出它的目标输出向量;
4、计算出中间层输出向量,计算出网络的实际输出向量;
5、将输出向量中的元素与目标向量中的元素进行比较,计算出输出误差;对于中间层的 隐单元也需要计算出误差;
6、依次计算出各权值的调整量和阈值的调整量;
7、调整权值和调整阈值;
8、当经历M后,判断指标是否满足精度要求,如果不满足,则返回(3),继续迭代;如果 满足就进入下一步;
9、训练结束,将权值和阈值保存在文件中。这时可以认为各个权值已经达到稳定,分类 器已经形成。再一次进行训练,直接从文件导出权值和阈值进行训练,不需要进行初始化。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。