LeNet-5 的结构
一。输入层:
输入的图像大小是 32x32pixel的图像,其中而数据库中是20x20的信息在28x28pixel的中心。拓展图像是为了高层特征可以位于高层感受野中心。例如图中A的上方的拐点,如果没有拓展图像输入,则其对应在S2中的位置很有可能位于feature map的最上方,无法处于任何感受野的中心。
二。隐藏层
1. C1 卷积层:kernel size=5x5,步长为1,无填充,生成6个feature map
参数个数为(5x5+1)x6=156(其中5x5对应kernel size,+1为bias,6为feature map 数目)。
连接数为156x28x28=122304(156为参数个数,其中feature map上每个像素点对应156个链接)。
2. S2 下采样层(Pooling): kernel size=2x2,步长为2,无填充。
下采样的作用: 利用图像的局部相关性原理,对图像进行子抽样,可以减少数据处理量,同时又保留有用的信息。
参数个数为 6x(1+1)=12。(因为LeNet-5采用的sigmoid(a*average(x)+b)作为池化函数)
链接个数为6x14x14x(2x2+1)=5880。六个feature map,总共6x14x14个feature,每个feature由4个C2特征+1个bias。
3. C3 卷积层:kernel size=5x5,步长为1,无填充,生成16个feature map。
C3中的每一个Feature Map连接到S2的所有6个Feature Map或者是几个Feature Map。表示本层的Feature Map是上一层提取的Feature Map的不同组合。为什么不把S2的每一个Feature Map连接到C3的每一个Feature Map中?原因有2: 第一,不完全连接机制连接的数量保持在合理范围,第二,这样破坏了网络的对称性,由于不同的Feature Map有不同的输入,所以迫使他们抽取不同的特征(理想状态特征互补)。
C3与S2的连接关系
C3的前6个Feature Map以S2中的3个相邻的Feature Map子集为输入,接下来的6个Feature Map以S2中相邻的4个Feature Map作为输入,接下来的3个以不相邻的4个Feature Map子集作为输入,最后一个将S2中所有的Feature Map作为输入的话,C3将会有1516个可训练参数和151600个连接。
参数个数为(5x5x3+1)x6+(5x5x4+1)x9+(5x5x6+1)=1516个。括号内部为kernel_size x kernel_size x feature_map_num + bias_num,表示从feature_map_size卷积得到的feature map所需要的参数个数;括号外为相应得到feature map的数目
4.S4下采样层 (Pooling):,kernel size=2x2,步长为2,无填充。
参数个数为16x2=32
链接个数为5x5x16x(2x2+1)=2000。(5为新生成feature map的size,16为feature map的数目,2为kernel size,1为bias。
5. C5 卷积层: kernel size=5x5,步长为1,无填充,全连接生成120个feature map。
参数个数为120x(5x5x16+1)=48120
链接个数等于参数个数,因为新生成feature map的size为1。
6.F6 全连接层:输入120个,输出84个
链接个数=参数个数=(120+1)x84,其中+1为bias。
全连接层的激活函数为Atanh(Sx),其中A和S为超参数。
输出表述是将给定的label转换为一个向量,作为神经网络的真值。
文章中是把图片对应的字符在7x12的bitmap上画出,白值为-1,黑值为1,其中84个像素平铺之后的向量对应为相应字符的表述,作为真值与F6连接。这样做的优点有: