经典卷积神经网络结构:LeNet-5、AlexNet、VGG
LeNet-5
LeNet-5模型是专门为手写数字识别而设计的经典卷积神经网络。
从上图可以看出,LeNet-5总共由输入层、卷积层、池化层、卷积层、池化层、全连接层、全连接层、输出层组成。
1、输入层:一张32*32的灰度图像,只有一个颜色通道,深度为1。
2、卷积层:将输入与6个高为5,宽为5,深度为1的卷积核进行valid卷积。由于输入是灰度图,所以卷积核的深度也为1;又由于是valid卷积,步长为1,所以卷积后的结果为,高为28,宽为28,深度为6。28=(32-5)/步长1+1。
same卷积的尺寸与原尺寸(非卷积核尺寸)一致,即卷积层若为same卷积,输出的尺寸应该为32*32。
3、池化层:对2中卷积层输出的28*28*6的抽象矩阵进行valid最大值池化操作,使用6个2*2大小的矩阵进行valid最大值池化处理,步长为2,池化层的输出结果为14*14*6的矩阵。14=(28-2)/2+1。
池化不改变层数。
4、卷积层:将3中池化层的输出与16个大小为5*5*6的卷积核进行valid卷积,步长为1,输出结果是10*10*16。
5、池化层:对4的输出结果进行valid最大值池化,步长为2,池化窗口为2*2的操作,输出矩阵的维度为5*5*16。
6、全连接层:将5输出的矩阵拉直成一维向量,这个向量的长度为5*5*16=400。将该向量经过一个全连接神经网络处理,该全连接网络共有2个隐含层,其中输入层由400个神经元,第1个隐含层有120个神经元,第2个隐含层有84个神经元。
7、输出层。
AlexNet
AlexNet处理的是1000分类问题,它采用8层神经网络,其中包含5个卷积层和3个全连接层(其中3个卷积层后面加了最大值池化层),包含6亿3000万个连接,6000万个参数和65万个神经元。
下图为AlexNet的网络结构:
AlexNet的输入是一个227像素*227像素*3的3通道彩色图像
第一层是卷积层,有96个卷积核,大小为11*11(11*11*3),步长为4,进行valid卷积,使用ReLU激活函数。经过卷积之后,像素大小的计算过程为(227-11)/4+1=55,输出的像素为55,输出的深度为96,即输出的像素矩阵大小为55*55*96,参数为11*11*3*96+96。
第二层是池化层,池化层的大小是3*3(3*3*96),步长为2,进行valid最大值池化,像素大小的计算过程为(55-3)/2+1=27,即输出的像素矩阵大小为27*27*96,参数为0。
第三层是卷积层,有256个卷积核,大小为5*5(5*5*96),步长为1,进行same卷积,输出的像素矩阵大小为27*27*256,参数为5*5*96*256+256。
第四层是池化层,池化层的大小是3*3(3*3*256),步长为2,进行valid最大值池化,像素大小的计算过程为(27-3)/2+1=13,即输出的像素矩阵大小为13*13*256,参数为0。
第五层是卷积层,有384个卷积核,大小为3*3*3(3*3*256),步长为1,进行same卷积,输出的像素矩阵大小为13*13*384,参数为3*3*256*384+384。
第六层是卷积层,有84个卷积核,大小为3*3*3(3*3*384),步长为1,进行same卷积,输出的像素矩阵大小为13*13*84,参数为3*3*384*84+84。
第七层是卷积层,有256个卷积核,大小为3*3(3*3*84),步长为1,进行same卷积,输出的像素矩阵大小为13*13*256,参数为3*3*84*256+256。
第八层是池化层,池化层的大小为3*3(3*3*256),步长为2,进行valid最大值池化,像素大小的计算过程为(13-3)/2+1=6,即输出的像素矩阵大小为6*6*256,参数为0。
第九层是伸展层Flatten,参数为0。
第十层是全连接层,6*6*256与4096,输出4096,参数为6*6*256*4096+4096。
第十一层是全连接层,4096与4096,输出4096,参数为4096*4096+4096。
第十二层是全连接层,4096与a,输出a,参数为4096*a+a。
VGG
VGG模型主要通过不断加深网络结构来提升模型性能。