LeNet-5出自论文Gradient-Based Learning Applied to Document Recognition,是一种用于手写体字符识别的非常高效的卷积神经网络。除去输出层,LeNet-5 一共包含 7 层网络,每一层都包含可训练的参数。如下图所示,输入是一个 32x32 的图片,Cx 表示卷积层,Sx表示下采样(subsampling)层,以及全连接层表示为 Fx,x 表示的是神经网络层的索引。
LeNet-5 的架构细节
1.输入层
输入层输入数据提前通过填充的方式,形成32*32。注意:本层不算LeNet-5的网络结构,传统上,不将输入层视为网络层次结构之一。
2.C1层-卷积层(默认包含ReLU层)
输入图片:32*32
卷积核大小:5*5
卷积核种类:6
输出featuremap大小:28*28 (共6个)
神经元数量:28286
可训练参数:(55+1) * 6(每个滤波器55=25个unit参数和一个bias参数,一共6个滤波器)
连接数:(55+1)62828=122304
说明:这里只需要训练(5*5+1)*6=156个参数,而全链接数是122304,充分利用权值共享达到参数骤减。此处卷积层相当于小波变换(中的低通、中通、高通滤波器)或者傅里叶变化提取图像的低频信息、高频信息。
3.S2层-池化层(下采样层)
输入:28*28(共6个)
采样区域:2*2
采样方式:4个输入相加,乘以一个可训练参数,再加上一个可训练偏置。结果通过sigmoid
采样种类:6
输出featureMap大小:14*14(共6个)
神经元数量:14146
连接数:(22+1)61414
4.C3层-卷积层(默认包含ReLU层)
输入:14*14 (S2中所有6个或者几个特征map组合)
对于输入做特别说明:
C3中的每个特征map是连接到S2中的所有6个或者几个特征map的,表示本层的特征map是上一层提取到的特征map的不同组合。
存在的一个方式是:C3的前6个特征图以S2中3个相邻的特征图子集为输入。接下来6个特征图以S2中4个相邻特征图子集为输入。然后的3个以不相邻的4个特征图子集为输入。最后一个将S2中所有特征图为输入。
下面以图的形式展示,0~5表示S2层的6幅图,横轴0~15表示C3的feature maps,然后第一副feature map就取的是S2层0,1,2三幅图,使用同一个卷积核k1对这三幅图分别卷积再求和,所以输出的图像是一副;以此类推,第二副feature map就取的是S2层1,2,3三幅图,使用同一个卷积核k2对这三幅图分别卷积再求和。所以为了生成C3的16幅图,共需要16个卷积核:
至于为什么采取这种组合,个人认为:1.减少参数;2.同时保证多种组合特征提取的覆盖率。
卷积核大小:5*5
卷积核种类:16
输出featureMap大小:10*10 (共16个)
可训练参数:6*(355+1)+6*(455+1)+3*(455+1)+1*(655+1)
连接数:10101516=151600
5.S4层-池化层(下采样层)
输入:10*10(共16个)
采样区域:2*2
采样方式:4个输入相加,乘以一个可训练参数,再加上一个可训练偏置。结果通过sigmoid
采样种类:16
输出featureMap大小:5*5
神经元数量:5516=400
连接数:16*(2*2+1)55=2000
6.C5层-卷积层(默认包含ReLU层)
输入:5*5 (共16个)
卷积核大小:5*5
卷积核种类:120
输出featureMap大小:11(共120个,到这里说白了就是 1120维向量)
可训练参数/连接:120*(1655+1)=48120
说明:这里输入与卷积核size相同,则结果为1*1。
7.F6层-全连接层
输入:C5层的120维向量
计算方式:计算输入向量和权重向量之间的点积,再加上一个偏置,结果通过(sigmoid函数还是tanh函数,还没弄清)激活输出。
输出:11(共84个,到这里说白了就是 184维向量)
可训练参数:84*(120+1)=10164
说明这里为什么采用84作为隐藏层神经元个数:这一层使用7*12位图=84 来表示数字,一个原因是识别ascii表示的数字很有用,这样可以区别易混淆的数字,比如数字0和字母o很像。ASCII编码图如下:
8.输出层-全连接层
输入:84;输出:10
参数和连接数:84*10
共有10个节点,分别代表数字0到9,且如果节点i的值为0,则网络识别的结果是数字i。采用的是径向基函数(RBF)的网络连接方式。假设x是上一层的输入,y是RBF的输出,则RBF输出的计算方式是:
这个公式的意思是:当输入x的模式和权重w的模式非常接近的时候,y就最小。
如下图:
说明为什么采用RBF核函数:每个 RBF 单元的输出都是计算其输入向量和它参数向量之间的欧几里德距离。输入向量与参数向量相距越远,输出的 RBF 值越大。一个特定 RBF 的输出可以被解释为衡量输入模式与 RBF 相关联的类的模型之间的拟合。则有标签时,希望训练出来的参数和偏置可以使得y最小。RBF核函数如下图: