卷积神经网络典型CNN
- LeNet:最早用于数字识别的CNN
- LeNet5:现在常说的一般就是LeNet5
- AlexNet:2012ILSVRC冠军,远超第二名的CNN,比LeNet更深,用多层小卷积叠加来替换单个的大卷积
- ZF Net:2013ILSVRC冠军
- GoogLeNet:2014ILSVRC冠军
- VGGNet:2014ILSVRC比赛中算法模型,效果率低于GoogleNet
- ResNet:2015ILSVRC冠军,结构修正以适应更深层次的CNN训练
卷积神经网络典型CNN-LeNet
卷积神经网络典型CNN-LeNet5
网络结构
C1层是一个卷积层(卷积+激励)
- input:1*32*32
- filter:1*5*5
- stripe:1
- padding:0
- filter size/depth:6
- output:6*28*28
- 神经元数目:6*28*28
- 参数个数:(1*5*5+1)*6=156。每个特征图内共享参数,因此参数总数:共(5*5+1)*6=156个参数
- 连接方式:普通的卷积连接方式
- 每个卷积神经元的参数数目:5*5=25个weight参数和一个bias参数
- 链接数目:(5*5+1)*6*(28*28)=122304个链接
S2层是一个下采样层(池化)
- input:6*28*28
- filter:2*2
- padding:0
- stripe:2
- output:6*14*14。每个图中的每个单元与C1特征图中的一个2*2邻域相连接,不重叠。因此,S2中每个特征图的大小是C1中的特征图大小的1/4
- 神经元数目:6*14*14
- 参数个数:0
- 连接方式:普通的最大池化方式
=========================================================================
现在 lenet5 多用改进的池化,池化方式如下
- S2层每个单元的4个输入相加,乘以一个可训练参数w,再加上一个可训练偏置b,结果通过sigmoid函数计算
- 连接数:(2*2+1)*1*14*14*6=5880个
- 参数共享:每个特征图内共享参数,因此有2*6=12个可训练参数
C3层是一个卷积层(卷积+激励)
- input:6*14*14
- filter:?*5*5 6*5*5
- stripe:1
- padding:0
- filter size/depth:16
- output:16*10*10
- 神经元数目:16*10*10
- 参数个数:(3*5*5+1)*6+(4*5*5+1)*9+(6*5*5+1)*1=1516
- 连接方式(S2->C3) 不是普通的卷积操作,是卷积操作的变种。"最终输出的16个fetaure map中,对应的前六个卷积核是和s2中输出的六个feature map中的任意3个feature map做卷积,中间九个卷积核是和s2中输出的六个feature map中的任意4个feature map做卷积,最后一个卷积核是和六个feature map做卷积"。
- 好处:
- 1. 不需要使用全部的feature map,这样有连接的feature map的连接数/参数数量可以保持在一定范围,直白来讲:相对于传统的卷积操作,降低了网络的参数数据量
- 2. 可以打破网络的对称结构,不同的卷积核可以得到不同的特征信息
- 好处:
S4层是一个下采样层(池化)
- input:16*10*10
- filter:2*2
- padding:0
- stripe:2
- output:16*5*5
- 神经元数目:16*5*5
- 参数个数:0
- 连接方式:普通的最大池化方式
=========================================================================
现在 lenet5 多用改进的池化,池化方式如下
- S4层每个单元的4个输入相加,乘以一个可训练参数w,再加上一个可训练偏置b,结果通过sigmoid函数计算
- 连接数:(2*2+1)*5*5*16=2000个
- 参数共享:特征图内共享参数,每个特征图中的每个神经元需要1个因子和一个偏置,因此有2*16个可训练参数。
C5层是一个卷积层(卷积+激励)
- input:16*5*5
- filter:16*5*5(没有共享卷积核)
- stripe:1
- padding:0
- filter size/depth:120
- output:120*1*1
- 神经元数目:120*1*1
- 参数个数:(16*5*5+1)*120=48120
- 连接数:(16*5*5+1)*120=48120
- 连接方式:普通的卷积操作。好处、作用:当网络结构不变,如果输入的大小发生变化,那么C4的输出就不是120啦。120个神经元,可以看作120个特征图,每张特征图的大小为1*1,每个单元与S4层的全部16个单元的5*5邻域相连(S4和C5之间的全连接)
F6层是一个全连接层
- input:120
- output:84
- 神经元数目:84
- 参数个数:(120+1)*84=10164
- 连接数:(120+1)*84=10164
- 有84个单元(之所以选这个数字的原因来自于输出层的设计),与C5层全连接。84:stylized image:7*12
输出层采用欧氏径向基函数单元
- input:84
- output:10
- 神经元数目:10
- 参数数目:84*10=840
- 给定一个输入模式,损失函数应能使得F6的配置与RBF参数向量(即模式的期望分类)足够接近。
- 每类一个单元,每个单元连接84个输入;每个输出RBF单元计算输入向量和参数向量之间的欧式距离。
- RBF输出可以被理解为F6层配置空间的高斯分布的对数似然【-log-likelihood】