五分钟了解卷积神经网络
扫描二维码
随时随地手机看文章
经网络结构图
图2 卷积神经网络结构图
卷积神经网络和全连接的神经网络结构上的差异还是比较大的,全连接的网络,相邻两层的节点都有边相连,而卷积神经网络,相邻节点只有部分节点相连。
全连接神经网络处理图像的最大问题在于全连接层的参数太多,参数太多的话容易发生过拟合而且会导致计算速度减慢,卷积神经网络可以减小参数个数的目的。
假设输入是一张图片大小为28*28*3,第一层隐藏层有500个节点,那么第一层的参数就有28*28*3*500+500=1176000个参数,当图片更大时,参数就更多了,而且这只是第一层。
那么为什么卷积神经网络可以达到减小参数的目的呢?
卷积神经网络最为关键的有卷积层,池化层,全连接层。
卷积层卷积层中每个节点的输入只是上一层神经网络的一小块,通常由卷积核来实现,卷积核是一个过滤器,可以想象成一个扫描窗口,扣到每张图片上,然后根据设置好的大小步长等等扫描图片,计算规则是被扣的图像像素矩阵跟卷积核的权重对应位置相乘然后求和,每扫描一次得到一个输出。卷积层所做的工作可以理解为对图像像素的每一小块进行特征抽象。可以通过多个不同的卷积核对同一张图片进行卷积,卷积核的个数,其实就是卷积之后输出矩阵的深度。卷积神经网络的参数个数与图片大小无关,只跟过滤器的尺寸、深度以及卷积核的个数(输出矩阵的深度)有关。假设是还是28*28*3的图片,卷积核的大小设为3*3*3,输出矩阵的深度为500,那么参数个数为3*3*3*500+500=14000个参数,对比全连接层,参数减少了很多。
图3 形象的卷积层示例
池化层池化层可以认为是将一张高分辨率的图片转化为低分辨率的图片。可以非常有效的缩小矩阵的尺寸,从而减小全连接层的参数个数,这样可以加快计算速率同时又防止过拟合,池化,可以减小模型,提高速度,同时提高所提取特征的鲁棒性。
使用2*2的过滤器步长为2,最大池化如下图所示:
图4 2*2过滤器最大池化示例图
我们可以将卷积层和池化层看成是自动特征提取就可以了。
通过上面直观的介绍,现在我们就知道为什么卷积神经网络可以达到减小参数的目的了?
和全连接神经网络相比,卷积神经网络的优势在于共享权重和稀疏连接。共享权重在于参数只与过滤器有关。卷积神经网络减少参数的另外一个原因是稀疏连接。输出节点至于输入图片矩阵的部分像素矩阵有关,也就是跟卷积核扣上去的那一小块矩阵有关。这就是稀疏连接的概念。
卷积神经网络通过权重共享和稀疏连接来减少参数的。从而防止过度拟合。
训练过程卷积神经网络的训练过程大致可分为如下几步:
第一步:导入相关库、加载参数
第二步:归一化,有利于加快梯度下降
第三步:定义参数及卷积神经网络结构
第四步:前行传播过程
第五步:成本函数
第六步:梯度下降更新参数
第七步:训练模型