2.1.1 LetNet-5
LeNet-5(LeCun et al.,1998)的网络结构如图2-1所示,从下往上看,网络输入是一个单通道的灰度图像,网络输出是对该图像类别的预测。整个LeNet-5 网络共有 7层,包括2个卷积层(Convolution)、2个汇合层(Pooling)和3个全连接层(Fully-Connected,FC),最后的Softmax 激活函数(Activation)通常不单独认为是一层。
图2-1 LeNet-5网络结构图
除此之外,还有一种网络层数计算方法是只看其中的卷积层和全连接层的层数,即只看网络中有可学习参数的层数,这样LeNet-5 可以认为有5层,包括2个卷积层和3个全连接层。这种网络层数计算方法被使用得更多,因此本书默认将采用这种层数计算方法。另外补充一点,BN(Batch Normalization,批量规范化)层虽然也包括可学习的参数,但是在计算层数时通常不算为一层。
AlexNet在每个卷积层和全连接层后还有非线性激活函数,为了节省空间,图2-1中没有画出,本书中的插图默认都会省略非线性激活函数层。此外,遵循大部分学术论文的习惯,插图中的网络结构默认采用自下而上或者自左向右的顺序。
图2-1中涉及4类层,本书中的插图默认都会使用这种表示:
● “conv1:卷积层,,1->6”表示该层为卷积层,名称为conv1,卷积核(Kernel)维度为,输入通道数为1(因为网络输入是单通道的灰度图像),输出通道数为6,本书插图中的卷积层用绿色表示,将卷积核维度为的卷积层简称为卷积。
● “pool1:最大汇合层,”表示该层为汇合层,名称为pool1,卷积核维度为,本书插图中的汇合层(包括最大汇合层、平均汇合层等)用黄色表示,将卷积核维度为的汇合层简称为汇合;
● “fc3:全连接层,400->120”表示该层为全连接层,名称为fc3,输入神经元数为400,输出神经元数为120,本书插图中的全连接层用蓝色表示。
● “Softmax”表示Softmax 激活函数层,本书插图中的激活函数层(包括Softmax、ReLU等)、BN层,以及其他没有可学习参数的层或操作用红色表示。
由于LeNet-5网络整体是一个10分类问题,因此LeNet-5的最后一个全连接层fc5的输出神经元数为10,对应10个类别。LeNet-5中原始的汇合层计算过程要稍微复杂一些,图2-1中直接使用现在更主流的最大汇合层代替。LeNet-5整个网络有6万个参数,网络取名源自其作者Yann LeCun的姓LeCun。
LeNet-5在实际应用中被用于0~9的手写数字识别,这是一个10分类问题。当时由于LeNet-5对于手写数字识别可以达到99%以上的准确率,因此被成功用于美国邮政系统中识别手写邮政编码。此外,LeNet-5也可用于在线识别手写数字以及对支票中的手写数字进行识别。当时由于神经网络的优化难度比较大,又是“黑盒模型”,可解释性差,相比之下,SVM(Support Vector Machine,支持向量机)(Cortes & Vapnik,1995)数学理论优美、可解释性强,因此正值神经网络发展的第二次低谷期,但Yann LeCun等人坚持在神经网络领域进行研究。LeNet-5的意义在于,尽管现在的深度神经网络的深度和网络性能上已经远超过LeNet-5,但是LeNet-5是重要的奠基性工作,其网络设计的基本理念一直延续至今。由于Yann LeCun在深度学习领域的突出成就,他和Geoffrey Hinton、Yoshua Bengio一起获得了2019年的图灵奖(Turing Award)。图灵奖是计算机界的最高奖项,相当于“计算机界的诺贝尔奖”。