top of page
アンカー 1

一、前文回顾

最近我的工作激情就像激活函数一样,虽然我在努力朝着最大值走,却不小心掉进了极小值点,而且好半天爬不出来,以至于准备很久的卷积神经网络内容一直没有整理出来。

※卷积神经网络简写CNN(ConvoluTIonal Neural Network)


二、什么是卷积

卷积神经网络最基本的操作就是卷积运算,那么什么是卷积运算?看下图

图中蓝色框代表的是图片的每个像素值,红色框我们称为一个卷积核,具体算法就是蓝色框九宫格的每个数字和对应红色九宫格的数字相乘,然后再相加求和就是一个输出值。以第一个蓝色九宫格为例:0*0+2*(-1)+0*0+1*1+3*0+1*1+2*1+0*0+3*(-1) = -1

而卷积神经网络的做法就是用卷积核在输入图像上不断去扫描(参考下图),然后就会生成一个输出。


三、为什么要卷积

我们知道传统神经网络的每个神经元都和前一层的每一个神经元相连接(这也叫全连接网络),当输入层的特征维度变得很高时,这时全连接网络需要训练的参数就会增大很多,计算速度就会变得很慢。而在卷积神经网络,卷积层的神经元只与前一层的部分神经元节点相连,即它的神经元间的连接是非全连接的,且同一层中某些神经元之间的连接的权重w和偏移b是共享的,这样大量地减少了需要训练参数的数量。

传统神经网络都是对每个像素点进行单独计算,而这恰恰丢失掉了图像在二维空间的特征信息,具体来讲就是,每一个像素点和它周围的八个像素点(甚至更多)都是有关联的,而卷积运算的权值共享属性刚好弥补了这个缺点,所以比起传统神经网络参数更少精度更高。


四、卷积神经网络的结构

①输入层:用于数据的输入

②卷积层:卷积层是卷积核在上一级输入层上通过逐一滑动窗口计算而得,卷积核中的每一个参数都相当于传统神经网络中的权值参数,与对应的局部像素相连接,将卷积核的各个参数与对应的局部像素值相乘之和,得到卷积层上的结果。一般地,使用卷积核进行特征提取和特征映射。

③激励层:由于卷积也是一种线性运算,因此需要增加非线性映射。使用的激励函数一般为ReLu函数:f(x)=max(x,0)。

④池化层:进行下采样,对特征图稀疏处理,减少数据运算量。通过卷积层获得了图像的特征之后,理论上可以直接使用这些特征训练分类器(如softmax),但这样做将面临巨大的计算量挑战。为了进一步降低网络训练参数及模型的过拟合程度,需要对卷积层进行池化/采样(Pooling)处理。池化/采样的方式通常有以下两种:a)Max-Pooling:选择Pooling窗口中的最大值作为采样值;b)Mean-Pooling:将Pooling窗口中的所有值相加取平均,以平均值作为采样值。

⑤全连接层:卷积神经网络尾部进行重新拟合,减少特征信息的损失。(类似于传统神经网络)

⑥输出层:用于最后输出结果


五、神经网络的优缺点

优点:

· 权值共享减少网络的训练参数,降低了网络结构的复杂性,适用性更强。

· 虽然参数减少但是性能比起传统神经网络更精确。

缺点:

· 需要大样本量,训练最好要GPU。

· 从结果来看卷积很厉害,但是具体抽象到物理层面却又很难解释它为什么那么厉害。


bottom of page