(1998, LeNet-5)Gradient-Based Learning Applied to Document Recognition

有了前面几篇论文的经验积累,Yan LeCun在1998年的这篇论文中正式提出了LeNet-5—第一个广为人知的经典CNN网络模型。

但是这篇文章的内容远不止提出了一个LeNet-5,整整75页的内容,专门LeNet-5的部分只有不到10页,位于论文的第二部分。

真实世界中的文档识别系统(document recognition system)是由多个模块(modules)组成的,典型地包括:

  • 文本定位(text location),针对整个文档图像,往往包含多行字符/多个单词,首先要找到其中的目标单词/文本行的位置,比如找到它的矩形包围框;
  • 分割(segmentation),定位之后的单词/文本行图像块包含多个字符,需要将其进行分割,得到单个字符(isolated character)图像块;
  • 单字符识别(character recognition),对分割后的每一个字符进行识别/分类,这是LeNet-5完成的工作;
  • 语言模型(language model),前面分割+识别过程可能会得到多个结果,使用语言模型从中选取最好的。

可见,LeNet-5分类模型仅仅构成了文档识别系统中的单字符识别模块。

之前传统的文档识别系统中的以上4个模块通常是单独优化,然后将每个模块进行级联(cascade),这种方法有两个主要缺点:

  • 复杂的优化过程,每一个模块需要进行单独优化,这是一个漫长的调参过程;
  • 次优化效果(sub-optimal ),级联系统的一个缺陷是可能会造成整体的次优化效果,比如分割模块和识别模块的准确率都是90%,但是两者级联之后,总的准确率可能会低于90% x 90%=81%。

解决以上级联系统的一个有效方法是构造一个统一的多模块网络,能够同时对所有子模块的参数进行全局优化。

除了提出LeNet-5,本文的另一个重要贡献是提出了一个图转换网络(Graph Transformer Networks,GTN),GTN就是这样一个完成文档识别所有工作的多模块系统,它可以使用基于梯度的优化算法进行全局优化。

总的来说,这篇文章的主要观点是:通过更少地依赖于手工设计(hand-designed)、更多地依靠自动化的学习(automatic learning),可以构造出更好的模式识别系统(pattern recognition system)

  • 单字符识别(character recognition)为例,传统的手工设计的特征提取器+可训练分类器的方案,使用单个LeNet-5网络代替,直接输入原始图像(raw image),输出字符类别;
  • 文档理解(document understanding)为例,传统的通过级联多个单独模块的文档识别系统的方法,可以被一个统一的(unified)GTN网络代替。
  • LeNet-5和GTN的共同之处是,更少地进行人工干预,一个任务由统一的单个网络完成,统一的一个损失函数,同时优化所有网络参数。

不得不说,这篇文章的思想,至今为止任然是AI各个领域的指导。比如目标检测中的R-CNN系列模型的发展,以及场景文本检测和识别领域的端到端(end-to-end)优化,都是20年前的这篇文章思想的具体实现,如此经典的论文有必要细细咀嚼。

下面主要对LeNet-5和GTN的细节进行简单整理。

1. LeNet-5

卷积网络结合了3个架构设计特点来保证一定程度上的平移、尺度和旋转不变性(shift,scale and distortion invariance):

  • 局部感受野(local receptive fields);
  • 权重共享(weight sharing);
  • 空间下采样(spatial sub-sampling)。

其中,局部感受野的思想最早可追述到1962年Hubel和Wiesel著名的发现:猫的视觉系统中包含局部敏感(locally-sensitive)和具有方向选择性(orientation-selective)的神经元。最早的使用到了局部连接/感受野的神经网络模型是Fukushima在1980年提出的神经认知机模型(Neocognitron),相关参考论文:

  • Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position;

对于图像内容来说,相隔越近的像素区域的相关性越高。针对视觉识别任务,使用局部感受野,CNN网络第一个卷积层的神经元可以提取图像中的初级视觉特征(elementary visual features)比如有向边(oriented edges),端点(end-points)和角点(corners)。这些特征可被随后的卷积层进一步组合形成更高级的特征。

关于权重共享,即一个feature map上面的每个unit对输入图像使用相同的一组卷积核,可以提取到整张输入图像中任何位置的相同特征,即,一组卷积核负责检测一组特定的特征。同时使用多组不同的卷积核用于提取输入图像中的不同特征。另外,使用权重共享的策略可以大大减小模型参数数量,防止模型过拟合。

一旦图像的特征被提取,其精确的位置信息变得不再那么重要,重要的是不同特征之间大致的相对位置。比如,针对数字识别,一旦我们知道了图像的左上角位置水平方向包含一个端点,右上角位置有一个角点,在图像的下面部分有竖直方向的端点,我们可以辨别输入图像是数字7

保留图像特征的精细位置不仅对识别结果没有贡献,甚至有害。因为不同人写的同一个字符,其特征的精确位置往往不同,因此,故意弱化图像特征的精确位置信息是有益的,只需要保留图像特征的大致位置信息即可。一个方法是逐渐减小feature map的空间分辨率,具体可通过一个下采样层(sub-sampling layers)来弱化图像特征的精确位置信息。此外,下采样层也可以大大减小网络的模型参数。

下面是LeNet-5的网络结构图:


整个LeNet-5包含7个可训练的权重层:

  • 图像的输入是32x32的尺寸,但其中字符区域一般占据居中位置的20x20的大小,将图像扩边到32x32的一个主要目的是考虑到最后的卷积层(最高级的特征检测器)可以检测到字符边界的特征信息如角点、端点等。这其实相当于考虑到了卷积网络的有效感受野,如果图像目标的特征太靠近图像边界,到最高级的feature map层时,最边上的特征可能已经丢失掉了。关于有效感受野的讨论可以参考2017年发表的这篇论文:Understanding the Effective Receptive Field in Deep Convolutional Neural Networks。另外,输入图像全部被归一化为均值=0,方差=1,据说这样可以加速训练;

  • C1是卷积层,包含6个28x28的feature map,kernel=5x5,stride=1,没有padding,C1层包含5x5x6+6=156个可训练参数;

  • S2是下采样层,包含6个14x14的feature map,kernel=2x2,stride=2,这里的下采样操作类似于平均池化(average pooling),不过包含可训练的层参数:每一个输出unit=W*(S11+S12+S21+S22)+Bias,即对应4个输入unit的值相加,乘以一个可训练的权重W,再加上一个可训练的偏置Bias。因此S2层包含6x2=12个可训练参数;

  • C3是卷积层,包含16个10x10的feature map,kernel=5x5,stride=1,没有padding,C3层包含5x5x(3x6+4x9+6x1)+16=1516个可训练参数。注意C3层中每一个feature map并不由S2中所有6个feature map产生,每一个输出的feature map只由C2层中特定的几个fature map作为输入,具体对应关系如下表:

为什么不将S3中的每一个feature map连接到C2中的所有特征层呢(经典的AlexNet、VGGNet等现代CNN的卷积层都是这样做的)?作者解释了当时这样设计的两个原因:

  1. 这种非完全的连接方式减小了一部分网络连接数量,也就是降低了模型的时间复杂度,以当时的硬件条件,这是很有必要的;
  2. 这种设计试图打破网络的对称性,S3层中不同的feature map被迫去提取C2层中不同的特征,因为它们获得了不同的输入;
  • S4是下采样层,包含16个5x5的feature map,kernel=2x2,stride=2,具体实施方式和C2层相同,S2层包含16x2=32个可训练参数;

  • C5是卷积层,包含120个1x1的feature map,kernel=5x5,因为S4的大小就是5x5,因此C5相当于一个全连接层,C5层包含5x5x16x120+120=48120个可训练参数;

  • F6是全连接层;包含84个unit,F6层包含120x84+84=10164个可训练参数;

  • 输出层包含10个unit,表示10个数字类别的概率,具体实施过程和全连接有点不同,不过不是关注的重点。

可以看到,LeNet-5的网络结构和著名的AlexNet、VGGNet网络是一致的,都是首先使用一系列的卷积层+下采样层提取图像特征,最后通过全连接层/MLP作为分类器。

论文的第三部分构造了著名的MNIST数据集,通过实验比较了LeNet-5和其他当时主流的分类模型在MNIST测试集上的准确率,结果表明LeNet-5吊打所有的非CNN分类模型。

2. GTN

待续。。。

你可能感兴趣的:((1998, LeNet-5)Gradient-Based Learning Applied to Document Recognition)