4.1 LeNet5
LeNet5[1]诞生于1998年,是一种用于手写体数字识别的神经网络,是早期CNN中最有代表性的结构。LeNet5模型较小,共有五层(不包含输入层),包括两个卷积层,还有三个全连接层,其结构如图4-1所示。
图4-1 LeNet5网络结构[1]
下面将具体介绍LeNet5的结构。
输入层:LeNet接收的是32×32的手写数字图像。
卷积层C1:使用了6个5×5的卷积核(Kernel),每个特征图(Feature Map)的大小为28×28。每个卷积核都有5×5个连接权重和1个偏置项共计26个参数,所以C1层一共有26×6=156个参数。
下采样层S2:LeNet5为了降低计算的复杂度,同时保留特征信息,采用了一种常用的向下采样的方式。具体来说就是对C1层得到的6张28×28的特征图进行隔行采样使其尺寸变为原来的一半,如图4-2所示。
图4-2 下采样
卷积层C3:是一个卷积层,使用了16个5×5的卷积核,特征图大小为10×10。与C1层不同的是,C3与S2采用部分连接而非全连接,具体连接规则如表4-1[1]所示。
表4-1 LeNet连接规则
表中的行为S 2层特征图的标号,列为C 3层特征图的标号,X号表示建立连接。以第一列为例,与C3的第0号特征图连接的只有S2的第0、第1和第2号。采用这种连接方式的目的,一是减少参数量;二是打破输入的对称性,得到不同组合的特征,但后来研究发现这种做法并没有起到太大的作用。
下采样层S4:这一层对16个特征图进行下采样,每个特征图的大小为5×5。
卷积层C5:采用120个5×5的卷积核,特征图大小为1×1,这一层中的每个特征图都与上一层的16个图相连。
全连接F6:这一层有84个神经元的全连接层,连接C5输出的120维向量。这里使用84个神经元的原因是识别对象为手写数字,可打印的标准ASCII码是用7×12的比特图表示的,故此处设为84个。
输出层Output:由于数字字符一共有10类,所以这一层为10个神经元,采用的是RBF(径向基函数,Radial Basis Function)的模式,具体定义见式(4-1)。
其中xj为F6上的输出,wij为数字i的比特编码,i取0到9。RBF输出的值越接近于0,则输入越接近于i的ASCII编码图,表示当前网络输入的识别结果是字符i。换句话说,每个RBF单元计算输入向量和参数向量(目标向量,即代表数字i的向量)之间的欧式距离,输入离参数向量越近(越相似),RBF输出的越小。
可以看出早期的LeNet5虽然结构简单,但是已经包含了CNN的基本模块,即卷积层、池化层和全连接层,是其他网络模型的基础。