经典卷积神经网络——LeNet-5

本文内容同个人微信号推送文章:经典卷积神经网络(Classic Convolutional Neural Networks)

LeNet-5(1998)

LeNet-5是Yann LeCun在1998年提出的卷积神经网络算法,最初用于解决手写识别的问题。

LeNet-5的网络结构

LeNet-5的网络结构如下图所示:

LeNet-5网络由7层组成。每层有多个特征图(Feature Map),每个特征图通过一种卷积滤波器提取输入的一种特征。每个特征图有多个神经元。

输入:输入为32*32的灰度图像。即输入为一个2维度的矩阵。

Layer1卷积层:6个大小为5*5的卷积核,步长为1。因此输出为28*28*6。需要训练的参数个数为:5*5*6+6=156,每个卷积核大小为5*5,共有6个卷积核,最后加上6个偏置项。

Layer2池化层(降采样层):2*2的池化层,使用平均池化方法,步长为2。因此输出为14*14*6。采样的方式为将4个输入相加,乘以一个可训练的参数,再加上一个可训练的偏置项,结果通过sigmoid函数(与平常熟知的平均池化不同)。需要训练的参数个数为:2*6=12个。

Layer3卷积层:16个大小为5*5的卷积核,步长为1。因此输出为10*10*16。在这一层中,输入为Layer2中所有6个或者几个特征的map组合。在该层中,前6个特征图以Layer2中3个相邻的特征图子集为输入,接下来的6个特征图以Layer2中4个相邻特征图的子集作为输入。然后的3个以不相邻的4个特征图子集作为输入,最后一个将Layer2中所有的特征图作为输入。下图说明了从Layer2的6个特征图得到Layer3的16个特征图的过程:

图中,最左边的0-5为Layer2的6个特征图,最上边的0-15为Layer3的6个特征图。Layer3的前6个特征图(0-5)与Layer2层相连的3个特征图相连接。之后的6个特征图与Layer2中相连的4个特征图相连接,后面的3个特征图与Layer2中不相连的4个特征相连接,最后一个与Layer2中所有特征连接。而输出的图像大小仍旧为10*10。

因此,需要训练的参数个数为:6*(3*5*5+1)+6*(4*5*5+1)+3*(4*5*5+1)+1*(6*5*5+1)=1516

Layer4池化层(降采样层):2*2的池化层,使用平均池化方法,步长为2。因此输出为5*5*16。采样的方式为将4个输入相加,乘以一个可训练的参数,再加上一个可训练的偏置项,结果通过sigmoid函数(与平常熟知的平均池化不同)。需要训练的参数个数为:2*16=32。

Layer5卷积层(全连接层的输入层):将Layer4的16个单元特征输入,卷积核的大小为5*5,卷积核的个数为120个。输出为1*1*120。即120个卷积结果。需要训练的参数个数为(5*5*16+1)*120=48120。该层将作为全连接层的输入层。

Layer6全连接层:该层有84个神经元。计算输入向量与权重向量之间的点积,再加上一个偏置,结果通过sigmoid函数输出。可训练的参数个数为(120+1)*84=10164。

Layer7softmax分类层:对于数字识别来说,该层有10个结点,分别表示数字0到9。该层的参数个数为84*(10+1)=850。该层采用的是径向基函数(RBF)的网络连接方式。假设x是上一层的输入,y是RBF的输出,则RBF输出的计算方式为:

式子中i的值为0到9,j的值为0到83(84-1,因为Layer6层有84个结点)。RBF的值越接近于0,则越接近于识别的结果数字。

下图展示了LeNet-5识别数字3的过程:

0

Leave a Reply

Your email address will not be published.