赞
踩
神经网络之多维卷积的那些事(一维、二维、三维)_雷恩Layne的博客-CSDN博客_多维卷积
原文链接:https://blog.csdn.net/qq_37555071/article/details/107629340
CNN的结构
CNN的网络结构如下:
输入层,Input,输入可以是灰度图像或RGB彩色图像(三通道)。对于输入的图像像素分量为 [0, 255],为了计算方便一般需要归一化(如果使用sigmoid激活函数,会归一化到[0, 1],如果使用tanh激活函数,则归一化到[-1, 1])
卷积层,C*,特征提取层,得到特征图,目的是使原信号特征增强,并且降低噪音;
池化层,S*,特征映射层,将C*层多个像素变为一个像素,目的是在保留有用信息的同时,尽可能减少数据量
光栅化:为了与传统的多层感知器MLP全连接,就是把池化层得到的特征图拉平
多层感知器(MLP):最后一层为分类器,多分类使用Softmax,二分类可以使用Logistic Regression
卷积过程包括:用一个可训练的滤波器fx去卷积一个输入的图像(第一阶段是输入的图像,后面的阶段就是卷积特征图),然后加一个偏置bx,得到卷积层Cx
下采样(池化)过程包括:每邻域四个像素求和变为一个像素,然后通过标量Wx+1加权,再增加偏置bx+1,然后通过一个sigmoid激活函数,产生一个缩小四倍的特征映射图Sx+1。(下图很重要,下面可训练参数量的计算就可以从这里看出)
卷积神经网络就是让权重在不同位置共享的神经网络,在下图中,局部区域圈起来的所有节点会被连接到下一层的一个节点上(卷积核,称为 kernel 或 filter 或 feature detector,filter的范围叫做filter size,比如 2x2的卷积核)
上图的运算过程可用如下公式表示(上图有重要作用,下面的连接数和神经元个数就可以从这里看出来):
CNN学习可以帮我们进行特征提取,比如我们想要区分人脸和狗头,那么通过CNN学习,背景部位的激活度基本很少。
CNN layer越多,学习到的特征越高阶,如下图所示:
layer 1、layer 2学习到的特征基本上是颜色、边缘等低层特征
layer 3开始稍微变得复杂,学习到的是纹理特征,比如网格纹理
layer 4学习到的是比较有区别性的特征,比如狗头
layer 5学习到的则是完整的,具有辨别性关键特征
光栅化
光栅化(Rasterization):为了与传统的MLP(多层感知机)全连接,把上一层的所有Feature Map的每个像素依次展开,排成一列。
图像经过下采样后,得到的是一系列的特征图,而多层感知器接受的输入是一个向量,所以需要将这些特征图中的像素依次取出,排列成一个向量。
LeNet5详解
1990年,LeCun发表了一篇奠定现在CNN结构的重要文章,他们构建了一个叫做LeNet-5的多层前馈神经网络,并将其用于手写体识别。就像其他前馈神经网络,它也可以使用反向传播算法来训练。它之所以有效,是因为它能从原始图像学习到有效的特征,几乎不用对图像进行预处理。
LeNet5共有7层(不包含输入层):
LeNet5-C1层
LeNet5的第一层是卷积层
输入图片大小:32*32
卷积窗大小:5*5(作者定义)
卷积窗种类:6(作者定义)
输出特征图数量:6 。
由于卷积窗种类是6,故输出的输出特征图数量也是6
输出特征图大小:(32-5+1)*(32-5+1)=28*28
输出特征图大小计算可参考神经网络之多维卷积的那些事中的特征图大小计算方式
可训练参数量:(5*5+1)*6或(5*5)*6+6
参数量就是卷积核中元素的个数+偏置bias,总共6种卷积核
计算量:(5*5+1)*6*28*28
每一个像素的计算量是(5*5+1),总共6*28*28个像素,所以总的计算量是(5*5+1)*6*28*28
神经元数量:(28*28)*6)
参考上面卷积的计算方式和图像就可以看出,计算出的一个结果(像素点)就是一个神经元
连接数:(5*5+1)*6*28*28
参考上面卷积的计算方式和图像就可以看出,输入特征图的每个像素是一个神经元,输出特征图的每个像素也是一个神经元,只要参与了计算,两个神经元之间就算做一个连接,因此卷积中连接数与计算数是一样的
LeNet5-S2层
LeNet5的第二层是池化层(池化核大小2*2,步长为2)
输入大小:(28*28)*6
采样区域(池化核大小):2*2 (作者定义)
下采样数量:6
这6个下采样的方式其实是一样的
输出特征图大小:14*14
输出特征图大小计算可参考神经网络之多维卷积的那些事中的特征图大小计算方式,卷积和池化输出特征图大小的计算方式是通用的
可训练参数量:(1+1)*6
池化层的可训练参数量不是池化核元素的个数,而是每一个池化都有一个权重w和偏置b,总共6个下采样,故可训练参数是(1+1)*6
计算量 :(2*2+1)*14*14*6
对于池化层的计算量,可能不同地方的描述不一样,我的理解是,采样区域是2*2 ,要找到最大的采样点,需要比较3次,也就是3次计算,才能找到最大值(如果采样区域是3*3,那么需要比较8次才能找到最大值),然后这个最大值再乘以权重w,加上偏置b,因此得到一个像素点的计算量是3+1+1=(2*2-1+1+1)=(2*2+1),总共14*14*6个像素点,可得总共的计算量为(2*2+1)*14*14*6
神经元数量:(14*14)*6
计算出的一个结果(像素点)就是一个神经元
连接数:(2*2+1)*[(14*14)*6]
每四个输入的像素点(输入四个神经元),输出的像素点为1个(输出一个神经元),再加上一个偏置的点(偏置神经元),可得每计算一个像素点的连接数是(2*2+1),总共(14*14)*6个像素点,故总的连接数为(2*2+1)*[(14*14)*6],可以看到,池化中计算量和连接数也是一样的
LeNet5-C3层
LeNet5的第3层是卷积层
输入图片大小:(14*14)*6
卷积窗大小:5*5(作者定义)
卷积窗种类:16(作者定义)
输出特征图数量:16
输出特征图大小:(14-5+1)*(14-5+1)=10*10
可训练参数量:(6*5*5+1)*16
每张图片的输入通道是6,我们需要用对应维度的卷积核做卷积运算,也就是要用6*5*5的卷积做运算,输出通道是16,因此要有16个这样的卷积核,每个卷积核再加上一个偏置bias,所以参数量是(6*5*5+1)*16,可参考神经网络之多维卷积的那些事
计算量:(6*5*5+1)*16*10*10
一个像素点的计算量为(6*5*5+1),总的输出像素个数为16*10*10,故总的计算量为(6*5*5+1)*16*10*10,这里要注意:多维卷积计算后需要把每个卷积的计算结果相加,这个相加的结果才是一个像素点,这个计算就忽略不计了
神经元数量:10*10*16
参考上面卷积的计算方式和图像就可以看出,计算出的一个结果(像素点)就是一个神经元
连接数:(6*5*5+1)*16*10*10
LeNet5-S4层
LeNet5的第四层是池化层(池化核大小2*2,步长为2)
输入大小:(10*10)*16
采样区域(池化核大小):2*2 (作者定义)
下采样数量:16
输出特征图大小:5*5
可训练参数量:(1+1)*16
计算量 :(2*2+1)*5*5*16
神经元数量:5*5*16
连接数:(2*2+1)*5*5*16
LeNet5-C5层
LeNet5的第5层是卷积层
输入图片大小:(5*5)*16
卷积窗大小:5*5(作者定义)
卷积窗种类:120(作者定义)
输出特征图数量:120
输出特征图大小:(5-5+1)*(5-5+1)=1*1
可训练参数量:(16*5*5+1)*120
计算量:(16*5*5+1)*1*1*120
神经元数量:1*1*120
连接数:(16*5*5+1)*1*1*120
LeNet5-F6层
LeNet5的第六层是全连接层
输入图片大小:(1*1)*120
卷积窗大小:1*1(作者定义)
卷积窗种类:84(作者定义)
输出特征图数量:84
输出特征图大小:1*1
可训练参数量:(120+1)*84(全连接层)
这里相当于84个线性模型,即MLP多层感知机
计算量:(120+1)*84
神经元数量:84
连接数:(120+1)*84(全连接层)
LeNet5-OUTPUT层
LeNet5的第7层是输出层
输入图片大小:1*84
输出特征图数量:1*10
输出1000000000,则表明是数字0的分类
计算公式
卷积层:设卷积核大小为k*k,步长为1,输入特征图(输入图片)大小为n*n,输入通道是a,输出通道是b(输出通道就是卷积核的种类数)
输出特征图大小:(n-k+1)*(n-k+1)=m*m
可训练参数量:(a*k*k+1)*b
计算量:(a*k*k+1)*b*m*m
神经元数量:m*m*b
连接数:(a*k*k+1)*b*m*m
卷积步长为n的输出特征图大小计算方式可参考神经网络之多维卷积的那些事
池化层:设池化核大小为k*k,步长是stride,输入特征图(输入图片)大小为n*n,输入通道是a,输出通道是a(池化层输入通道和输出通道是样的)
输出特征图大小:n − k s t r i d e + 1 = m \frac{ n-k}{stride} + 1=m
stride
n−k
+1=m
可参考神经网络之多维卷积的那些事中的特征图大小计算方式
可训练参数量:(1+1)*a
池化层可训练的参数量和池化核大小没有关系
计算量:(k*k+1)*(m*m*a)
神经元数量:m*m*a
连接数:(k*k+1)*(m*m*a)
————————————————
版权声明:本文为CSDN博主「雷恩Layne」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37555071/article/details/107629340
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。