LeNet1998-基于梯度学习的文件识别

 

摘要:

 多层神经网络训练的反向传播算法构成了一个成功的基于梯度的学习技术的最好例子。给定适当的网络结构,可以使用基于梯度的学习算法来合成复杂的决策表面,该复杂的决策表面可以用最小的预处理来对诸如手写字符的高维模式进行分类。本文综述了手写字符识别的各种方法,并将它们与标准手写数字识别任务进行比较。卷积神经网络,特别是设计用于处理2D形状的变异性,显示出优于所有其他技术。

现实生活中的文档识别系统由多个模块组成,包括字段提取、分割、识别和语言建模。一种新的学习模式,称为图形变压器网络(GTN),允许这样的多模块系统在全球范围内使用基于梯度的方法进行训练,以最小化整体性能测量。

描述了两种在线手写识别系统。实验证明了全局训练的优点和图形变压器网络的灵活性。

还描述了一种用于读取银行支票的图形变压器网络。它使用卷积神经网络字符识别器结合全球训练技术来提供商业和个人支票的记录精度。

GT Graph transformer 石墨变压器

GTN Graph transformer network 图形变压器网络

HMM Hidden Markov model 隐形马尔可夫模型

HOS Heuristic over segmentation 

K-NN K-nearest neighbor K邻近

NN Neural network 神经网络

OCR Optical character recognition 光学字符识别

扫描二维码关注公众号,回复: 4418164 查看本文章

PCA Principal component analysis 主成分分析

RBF Radial basis function 径向基函数

RS-SVM Reduced-set support vector method 减少支持向量机方法

SDNN Space displacement neural network 神经网络空间位移

SVM Support vector method 支持向量机

TDNN Time delay neural network 时间延迟神经网络

V-SVM Virtual support vector method 支持虚拟向量方法

1. 介绍

 在过去的几年中,机器学习技术,特别是当应用到神经网络,已经在模式识别系统的实际设计越来越重要的作用,也可以说,学习技术的可用性已经在一个关键的因素模式识别的应用,如连续语音识别和手写识别最近的成功。

本文的主要信息是,可以通过更多地依赖于自动学习,而较少的手工设计的启发式方法来构建更好的模式识别系统。通过机器学习和计算机技术的最新进展是可能的。使用字符识别作为一个案例研究,我们表明,手工制作的特征提取可以有利地取代了精心设计的学习机器,直接操作像素图像使用文献理解作为一个案例研究,我们展示了传统的方式建立识别,通过手动集成独立设计的模块的系统可以由一个统一的和有原则的设计范例(图形变压器网络)来实现,它允许训练所有模块来优化全局性能准则。

自从模式识别的早期,人们已经知道,自然数据库、语音、字形或其他类型的模式的变异性和丰富性,使得几乎完全不可能用手完全建立一个精确的识别系统。因此,大多数模式识别系统使用自动学习技术和手工制作的算法的组合来构建。识别单个模式的常用方法包括将系统划分为图1所示的两个主要模块。第一个模块,称为特征提取器,变换输入模式,使得它们可以由低维向量或短符号串表示,在不改变其本质的模式下(a)可以容易地匹配或比较,并且(b)相对于输入的变换和失真是相对不变的。特征提取器包含大多数先验知识,并且对任务相当具体。它也是大多数设计努力的焦点,因为它通常是手工制作的。另一方面,分类器通常是通用的和可训练的。这种方法的主要问题之一是,识别精度在很大程度上取决于设计者想出合适的特征集。这是一项艰巨的任务,不幸的是,必须重新解决每一个新问题。大量的模式识别文献致力于描述和比较不同特征集对于特定任务的相对优点。

从历史上看,需要适当的特征提取器是由于这样一个事实,即分类器所使用的学习技术仅限于易于分离的类的低维空间。在过去的十年中,三个因素的结合改变了这种看法。首先,具有快速运算单元的低成本机器的可用性允许更多地依赖于蛮力的“数值”方法而不是算法改进。第二,大型数据库的可用性问题,市场大,兴趣广泛,如手写识别。已经使设计者更多地依赖真实数据和较少手工制作的特征提取来构建识别系统。第三个非常重要的因素是强大的机器学习技术的可用性,可以处理高维输入,可以产生复杂的决策函数,喂这些大数据集。可以说,最近在语音和手写识别系统精度的进步,在很大程度上是由于越来越依赖于学习技术和大量的训练数据集。为证明这一事实,很大比例的现代商业OCR系统使用一些形式的用反向传播训练的多层神经网络。

在这项研究中,我们考虑的手写体汉字识别的任务(章节I和II)和比较几个学习技术性能的一个基准数据集上的手写体数字识别(第三章节)。而更多的自动学习是有益的,没有学习方法可以在不需要少量的有关任务的先验知识下成功。在多层神经网络的情况下,将知识整合的一个好方法是调整任务的结构。卷积神经网络[2]在第二节介绍,利用本地连接模式,通过对权重限制,将知识二维形状的不变性,的一个专用的神经网络结构的例子。几种方法的比较孤立的手写体数字识别是在第三节。第四节介绍了从单个字符的识别到文档中单词和句子的识别,结合多个模块进行训练以减少整体误差的思想。如果模块操纵有向图,则最好使用多模块系统识别可变长度对象,如手写字。这引出了可训练图形变压器网络(GTN)的概念,将在第五节中介绍它。第五节描述了现在用于识别单词或其他字符串的启发式过分割的经典方法。在第六节中提出了区分和非判别的基于梯度的技术来识别单词级别的识别器,而不需要手动分割和标记。第七节提出了有希望的空间位移神经网络方法,这消除了需要通过扫描识别器在所有可能的位置上的输入的分割启发式。在第八节中,证明了基于一般图合成算法的GTN可以被构造为多个广义变换。在语音识别中常用的GTNS和Hidden Markov模型之间的连接也被处理。第九节描述了一个全局训练的GTN系统,用于识别在笔计算机中输入的手写体。这个问题被称为“联机”手写识别,因为机器必须在用户写入时立即产生反馈。该系统的核心是卷积神经网络。该结果清楚地表明了在单词级训练识别器的优点,而不是在预分割的、手标记的、孤立的字符上训练它。第十节描述了一个完整的用于读取手写和机器打印的银行支票的基于GTN的系统。该系统的核心是卷积神经网络,在第二节称为LeNET-5。该系统在NCR公司的银行业支票识别系统中具有商业用途。美国的几个银行每月都在阅读数百万张支票。

    A. 从数据中学习

自动机器学习有多种方法,但近年来被神经网络社区推广的最成功的方法之一可以称为基于数值的或基于梯度的学习。学习机计算一个函数Y ^ p = F ( Z ^ p,W),其中Z^p是第p个输入模式,W代表系统中可调整参数的集合。在模式识别设置中,输出Y^p可以被解释为模式Z^p的识别类标签,或者与每个类相关联的分数或概率。一个损失函数E^P=D(D^p,F(W,Z^p)),测量D^p之间的差异,“正确”或模式Z^p的期望输出,系统产生的输出。平均损失函数E _ t_r_a_i_n (W)是错误E^p在一组标记的例子称为训练集{{(z^1,D^1),......(Z^p,D^p)}}上的平均值。在最简单的设置,学习的问题在于找到W的价值,即最大限度地减少E _ t_r_a_i_n (W)。在实践中,对训练集的系统的性能是不关注的。更多的相关措施是这一领域的系统的错误率,这将是在实践中的应用。这种性能是通过测量一组样本的准确性不相交于训练集的估计,称为测试集。许多理论和实验工作[3][4][5],显示了在测试集期望错误率E_t_e_s_t和在训练测试集E_t_r_a_i_n上的错误率的差距,随着训练样本数量的减少而减少

 E_t_e_s_t-E_t_r_a_i_n=k(h/P)^a                               (1)  

其中,P是训练样本的数量,h是衡量“有效容量”的量度或者机器的复杂度[6][7],a是在0.5到1.0之间的数,k是常数。当训练样本数目增加时,该差距总是减小。此外,随着容量H的增加,E_t_r_a_i_n减小。因此,当增加容量h时,E_t_r_a_i_n的减小和差距的增加之间存在折衷,容量h的最佳值达到最小泛化误差E_t_e_s_t。大多数学习算法试图最小化E_t_r_a_i_n和对差距的一些估计。其形式化版本称为结构风险最小化[6][7],并且基于定义与参数空间的子集序列相对应的容量增加的学习机器序列,使得每个子集是先前子集的超集。在实际应用中,结构风险最小化是通过最小化E_t_r_a_i_n+ \beta H(W)实现的,其中函数H(W)称为正则化函数,而\beta是常数。H(W)被选择,使得它在属于参数空间的高容量子集的参数W上取大的值。最小化H(W)实际上限制了参数空间的可访问子集的容量,通过控制训练误差最小化和训练误差与测试误差之间的期望差距最小化之间的折衷。

    B. 基于梯度的学习

关于一组参数最小化函数的一般问题是计算机科学中许多问题的根源。基于梯度的学习利用了这样一个事实:与离散(组合)函数相比,通常更容易最小化一个相当光滑的连续函数。损失函数可以通过估计参数值的小变化对损失函数的影响而最小化。这是通过相对于参数的损失函数的梯度来测量的。当梯度向量可以解析计算(而不是通过摄动进行数值计算)时,可以设计出高效的学习算法。这是许多基于梯度的学习算法与连续值参数的基础。在本文描述的过程中,参数W集是一个实值向量,关于该向量,E(W)是连续的,并且几乎处处是可微的。在这种设置中最简单的最小化过程是梯度下降算法,其中W被迭代地调整如下:

W_k=W_k_-1 - \varepsilon\frac{\partial E(W)}{\partial W}                               (2)

在最简单的情况下,\varepsilon 是标量常数。更复杂的程序使用变量 \varepsilon,或者用它代表对角矩阵,或者用它代表牛顿或拟牛顿方法中的逆Hessian矩阵的估计。共轭梯度法[8]也可以使用。然而,附录B表明,尽管文献中有许多相反的说法,但是这些二阶方法对于大型学习机器的有效性非常有限。

一个流行的最小化过程是随机梯度算法,也称为在线更新。它使用一个嘈杂的或近似的版本的平均梯度一致更新参数向量。在最常见的例子中,W是基于单个样本更新的:

W_k=W_k_-1 - \varepsilon\frac{\partial E^P^k(W)}{\partial W}                          (3)

通过这个过程,参数向量围绕平均轨迹波动,但是通常比规则梯度下降和二阶方法在具有冗余样本的大型训练集(例如在语音或字符识别中遇到的那些)上更快地收敛。原因是在附录B中解释。自1960[9][10][11]年以来,这些算法应用于学习的性质在理论上已经被研究,但是直到80年代中期才出现对于非平凡的任务的实际成功。

    C. 基于梯度的学习

自20世纪50年代后期以来,基于梯度的学习过程已经被使用,但它们大多局限于线性系统。这种简单的梯度下降技术对于复杂机器学习任务的惊人有用性直到以下三个事件发生后才被广泛实现。第一个事件是认识到尽管存在相反的预警[12],但损失函数中的局部极小值在实践中似乎不是主要问题。当注意到局部极小值似乎不是早期的基于非线性梯度的学习技术如Boltzmann机[13][14]的成功时,这一点就变得明显了。第二项活动是Rumelhart、Hinton和Williams[15]等人推广一种简单而有效的程序,即反向传播算法,以计算由几层处理组成的非线性系统中的梯度。第三个事件是证明将反向传播方法应用于具有反曲单元的多层神经网络可以解决复杂的学习任务。反向传播的基本思想是可以通过从输出到输入的传播来有效地计算梯度。这种思想在六十年代[16]早期的控制理论文献中有所描述,但是它在机器学习中的应用当时并没有被普遍实现。有趣的是,神经网络学习中的早期反向传播推导没有使用梯度,而是使用中间层单元的“虚拟目标”[17][18]或最小干扰参数[19]。在控制理论文献中使用的拉格朗日形式为推导反向传播[20]以及将反向传播推广到递归网络[21]和异构模块网络[22]提供了最好的严格方法。在IE-I节中给出了通用多层系统的样本推导。局部极小值似乎不是多层神经网络的一个问题,这是一个理论上的谜团。可以推测,如果网络对于任务而言过大(在实践中通常是这种情况),则参数空间中的“额外维度”的存在降低了不可达区域的风险。反向传播是迄今为止应用最广泛的神经网络学习算法,并且可能是任何形式的应用最广泛的学习算法。

    D. 在实际手写识别系统中的学习

单独手写体字符识别在文献(参见[23][24])中已经广泛研究,并且是神经网络[25]的早期成功应用之一。第三章节报告了个人手写体数字识别的对比实验。它们表明,用基于梯度的学习训练的神经网络比用相同的数据在这里测试的所有其他方法表现得更好。最好的神经网络称为卷积网络,旨在学习直接从像素图像中提取相关特征(参见第二章节)。

 然而,手写体识别中最困难的问题之一是不仅要识别单个字符,还要在单词或句子中从相邻字符中分离出字符,这个过程称为分段。这样做的技术已经成为标准,被称为Heuristic Over-seamentation(启发式过缝法)。它包括使用启发式图像处理技术在字符之间产生大量潜在的剪切,然后基于识别器为每个候选字符给出的分数来选择剪切的最佳组合。在这种模型中,系统的精度取决于由启发式方法生成的切片的质量,以及识别器区分正确分割的字符与字符块、多个字符或其他不正确分割的字符的能力。训练一个识别器来执行这个任务是一个重大的挑战,因为很难创建一个标签数据库的不正确分段字符。最简单的解决方案是通过分段器运行字符串的图像,然后手动标记所有的字符假设。不幸的是,这不仅是一个非常繁琐和昂贵的任务,它也很难做到标签一致。例如,一个剪切4的右半部分应该被标记为1还是非字符?切8的右半部分应该是3吗?

第五节中描述的第一种解决方案是在整个字符串级别而不是在字符级别内置系统。基于梯度学习的概念可以用于此用途。用衡量错误答案的概率的最小化总体损失函数训练该系统。第五节探索各种方法来确保损失函数是可微的,因此适合使用基于梯度的学习方法。第五节介绍了有向无环图的使用,其圆弧携带数值信息作为表示备选假设的方法,并介绍了GTN的思想。

第七节中描述的第二个解决方案是完全消除分割。其思想是将识别器扫过输入图像上的每个可能位置,并依赖于识别器的“字符点选”特性,即,它能够正确地识别其输入字段中的中心良好的字符,甚至在其它字符存在的情况下,同时拒绝不包含中心字符的图像[26][27]。然后,通过将识别器扫过输入而获得的识别器输出序列被馈送到考虑语言约束的图形变换器网络,并最终提取最有可能的解释。这个GTN有点类似于隐马尔可夫模型(HMM),这使得该方法让人想起经典语音识别[28][29]。虽然这种技术在一般情况下会非常昂贵,但是使用卷积神经网络特别有吸引力,因为它可以显著节省计算成本。

 E. 全球可训练系统

如前所述,大多数实用的模式识别系统由多个模块组成。例如,文档识别系统由提取感兴趣区域的字段定位器组成。字段分割器,将输入图像切割成候选字符的图像。识别器,对每个候选字符和上下文后处理器进行分类和评分,一般基于随机语法,它从识别器生成的假设中选择语法上正确的最佳答案。在大多数情况下,从一个模块传送到另一个模块的信息最好用附在圆弧上的数字信息的图表示。例如,识别器模块的输出可以表示为非循环图,其中每个弧包含候选字符的标签和得分,并且其中每个路径表示输入字符串的替代解释。通常,每个模块都手动优化,或者有时在其上下文之外进行训练。例如,字符识别器将被训练在预分割字符的标记图像上。然后对整个系统进行组装,并手动调整模块参数的子集,使整体性能最大化。这最后一步非常乏味,耗时,而且几乎肯定是次优的。

更好的替代方法是以某种方式训练整个系统,以便最小化全局错误度量,例如在文档级别上字符错误分类的概率。理想情况下,我们希望找到一个相对于系统中的所有参数都很好的最小全局损失函数。如果测量性能的损耗函数E可以相对于系统的可调参数W微分,那么我们可以使用基于梯度的学习找到E的局部最小值。然而,乍一看,似乎系统的纯粹性和复杂性会使这个方法棘手。

为了保证全局损失函数E^p(Z^p,W)是可微的,整个系统被构建为可微模块的前馈网络。每个模块必须是连续的,并且几乎全部的模块的内部参数(例如,在字符识别模块的情况下的神经网络字符识别器的权重)以及关于模块的输入都是可微的来实现功能。如果是这种情况,可以使用众所周知的反向传播过程的简单概括,有效地计算损失函数相对于系统中的所有参数的梯度[22]。例如,让我们考虑构建为模块级联的系统,每个模块实现函数X_n=F_n(W_n,X_n_-_1),其中X_n是表示模块输出的向量,W_n是模块中可调参数的向量(W的子集),X_n_-_1是模块的输入向量(同时也是之前的模块输出向量)。输入X_0到第一模块的是输入模式Z^p。如果E^p关于X_n的偏导数是已知的,那么E^p关于W_nX_n_-_1的偏导数可以使用向后递归来计算

 \frac{\partial E^p}{\partial W_n}=\frac{\partial F}{\partial W}(W_n,X_n_-1)\frac{\partial E^p}{\partial X_n}             

 \frac{\partial E^p}{\partial X_n_-1}=\frac{\partial F}{\partial X}(W_n,X_n_-1)\frac{\partial E^p}{\partial X_n}                    (4)

其中,\frac{\partial F}{\partial W}(W_n,X_n_-1) 是在点(W_n,X_n_-_1)求得的F关于W的雅可比,而\frac{\partial F}{\partial X}(W_n,X_n_-1)是F关于X的雅可比。向量函数的雅可比是包含所有输出关于所有输入的偏导数的矩阵。第一种估计计算E^p(W)梯度的一些项,而第二个方程产生向后递推,如众所周知的神经网络反向传播过程。我们可以平均梯度的训练模式,以获得全梯度。有趣的是,在许多情况下,不需要显式地计算雅可比矩阵。上面的公式使用具有偏导数向量的雅可比乘积,通常不预先计算雅可比乘积而直接计算该乘积更容易。通过与普通的多层神经网络进行类比,除了最后一个模块之外,其他模块都被称为隐层,因为它们的输出不能从外部观察到。与上述简单的模型级联相比,更复杂的情况是,偏导数表示法变得有些模糊和笨拙。在更一般的情况下,可以使用拉格朗日函数完成完全严格的推导[20][21][22]。

传统的多层神经网络是上述状态的特殊情况,其中状态信息X_n用固定大小的矢量表示,并且其中模块是矩阵乘法(权重)和分块S形函数(神经元)的交替层。然而,如前所述,复杂识别系统中的状态信息最好用附带数值信息的曲线来表示。在这种情况下,每个被称为图形变换器的模块以一个或多个图形作为输入,并产生图形作为输出。这样的模块的网络被称为图形变压器网络(GTN)。第四、六、八节提出了GTNS的概念,指出基于梯度的学习可以训练所有模块中的所有参数,从而最小化全局损失函数。当状态信息由基本离散的对象(例如图形)表示时,可以计算梯度,但是可以避免这种困难,这似乎是自相矛盾的,如后面所示。

 2. 用于单独字符识别的卷积神经网络

通过梯度下降训练的多层网络能够从大量的示例集合中学习复杂的、高维的、非线性的映射,这使得它们成为图像识别任务的明显候选者。在传统的模式识别模型中,手工设计的特征提取器从输入中收集相关信息,并消除不相关的变化量。可训练分类器然后将所得到的特征向量归类为类。在该方案中,标准的、完全连接的多层网络可以用作分类器。一个潜在的更有趣的方案是尽可能多地依赖于特征提取器本身的学习。在字符识别的情况下,网络可以用几乎原始输入(例如大小归一化图像)来馈送。虽然这可以通过一个普通的全连接的前馈网络来完成,但是对于字符识别等任务来说,仍然存在一些问题。

首先,典型的图像是大的,通常有几百个变量(像素)的。一个完全连接的第一层,比如第一层有100个隐藏单元,已经包含数万个权重。这样大量的参数增加了系统的容量,因此需要更大的训练集。此外,存储如此多的权重的内存需求可能会排除某些硬件实现。但是,用于图像或语音应用的非结构化网络的主要缺陷在于,它们没有关于平移的内置不变性,或者输入的局部失真。在发送到神经网络的固定大小的输入容器之前,字符图像,或其他2D或1D信号,必须被近似大小归一化,并且以输入字段为中心。不幸的是,没有一种预处理是完美的:手写常常在字层面上标准化,这会导致单个字符的大小、倾斜和位置变化。这与写作风格的可变性相结合,将导致输入对象中的显著特征位置的变化。原则上,具有足够大小的完全连接的网络可以学习产生对于这种变化不变的输出。然而,学习这样的任务可能导致多个具有相似权重模式的单元,这些权重模式位于输入中的不同位置,以便检测在输入中出现的不同特征。学习这些权重配置需要大量的训练实例来覆盖可能变化的空间。在下文描述的卷积网络中,通过强制跨空间复制权重配置来自动获得移位不变性。

第二,完全连接架构的不足之处是完全忽略了输入的拓扑结构。输入变量可以以任何(固定的)顺序呈现而不影响训练的结果。相反,图像(或语音的时频表示)具有强的二维局部结构:在空间上或时间上邻近的变量(或像素)是高度相关的。局部相关性是众所周知的在识别空间或时间对象之前提取和组合局部特征的优点的原因,因为相邻变量的配置可以被分类成少数类别(例如,边缘、角......)。卷积网络通过限制隐藏单元的接收域为局部来强制提取局部特征。

A. 卷积网络

卷积网络结合了三种架构思想以确保一定程度的移位、比例和失真不变性:局部接收字段、共享权重(或权重复制)以及空间或时间子采样。一个典型的卷积网络用于识别字符,被称为LeNet-5,如图2所示。输入平面接收近似大小归一化和中心的字符图像。层中的每个单元从位于前一层中的小邻域中的一组单元接收输入。在输入端连接单元到局部接受域的想法在60年代初回到了感知器,并且几乎与Hubel和Wiesel发现猫视觉系统中的局部敏感的定向选择性神经元[30]同时发生。在视觉学习[31, 32, 18、33, 34, 2]的神经模型中已经多次使用局部连接。利用局部的接收场,神经元可以提取基本的视觉特征,如定向边缘、端点、角点(或其他信号中的类似特征,如语音谱图)。然后,这些特征由随后的层组合以检测高阶特征。如前所述,输入的失真或移位可导致显著特征的位置变化。此外,对图像的一部分有用的基本特征检测器可能对整个图像有用。这种信息可以通过强制一组单位具有相同的权重向量[32、15、34]来应用,这些单位的接收场位于图像的不同位置。层中的单元在平面内组织,其中所有单元共享相同的权重集合。在这样的平面中的单元的输出集合称为特征映射。在特征映射中的单元都被约束以在图像的不同部分上执行相同的操作。一个完整的卷积层由多个特征映射(具有不同的权重向量)组成,从而可以在每个位置提取多个特征。一个具体的例子是图2所示的第一层LeNET-5。在LeNET-5的第一隐藏层中的单元被组织在6个平面中,每个平面是特征映射。特征图中的单元具有25个输入,连接到输入中的5个5区域,称为单元的接收字段。每个单元有25个输入,因此25个可训练的系数加上可训练的偏置。特征图中相邻单元的接收域集中在前一层中相应的相邻单元。因此相邻单元的接收场重叠。例如,在Lenet-5的第一隐藏层中,水平相邻单元的接收字段重叠4列和5行。如前所述,特征映射中的所有单元共享相同的一组25个权重和相同的偏置,因此它们在输入上的所有可能位置检测相同的特征。层中的其他特征映射使用不同的权重和偏置集,从而提取不同类型的局部特征。在Lenet-5的情况下,在每个输入位置,由六个特征映射中相同位置的六个单元提取六种不同类型的特征。特征图的顺序实现将使用具有本地接收字段的单个单元扫描输入图像,并将该单元的状态存储在特征图中的相应位置。这个运算相当于一个卷积,接着是一个加性偏置和压缩函数,因此称为卷积网络。卷积的核心是由特征映射中的单元使用的一组连接权重。卷积层的一个有趣的特性是,如果输入图像移位,则特征映射的输出将移位相同量,否则将保持不变。该属性是基于卷积网络对输入的移位和失真的鲁棒性的基础。

一旦检测到特征,其精确位置就变得不那么重要了。只有它相对于其他特征的近似位置是相关的。例如,一旦我们知道输入图像包含左上部的大致水平段的端点、右上部的拐角和图像下部的大致垂直段的端点,我们就可以知道输入图像是7。这些特征中的每一个的精确位置不仅与识别模式无关,而且可能对识别模式有害,因为位置可能因字符的不同实例而变化。降低特征映射中特征位置编码的精度的简单方法是降低特征映射的空间分辨率。这可以通过执行局部平均和子采样、降低特征图的分辨率以及降低输出对移位和失真的灵敏度的所谓的子采样层来实现。LeNET5的第二隐藏层是子采样层。该层包括六个特征映射,一个用于前一层中的每个特征映射。每个单元的接收场在先前层对应的特征图中是2×2区域。每个单元计算其四个输入的平均值,乘以可训练系数,添加可训练偏差,并通过一个sigmoid函数传递结果。邻接单元具有非重叠的连续接收域。因此,子采样层特征映射有一半的行和列作为前一层中的特征映射。可训练系数和偏置控制了S形非线性的影响。如果系数小,则该单元以准线性模式工作,而子采样层仅模糊输入。如果系数大,则根据偏置的值,子采样单元可以被视为执行“噪声OR”或“噪声AND”函数。连续的卷积层和子采样层通常交替进行,导致“双金字塔”:在每一层,特征图的数量随着空间分辨率的降低而增加。图2中的第三个隐藏层中的每个单元都有来自前一层中的几个特征映射的输入连接。受Hubel和Wiesel的“简单”和“复杂”细胞概念的启发,卷积/亚采样组合在福岛的新认知机[32]中得以实现,尽管当时没有全球监督的习程序,例如反向传播。随着空间分辨率的逐步降低,通过逐渐增加表示的丰富度(特征映射的数量)来补偿,可以实现对输入的几何变换的大程度的不变性。

因为所有的权值都是用反向传播卷积网络学习的,所以可以看作是合成它们自己的特征提取器。权重共享技术具有减少自由参数个数的有趣的副作用,从而减少了机器的“容量”,并减少了测试误差和训练误差[34]之间的差距。图2中的网络包含340908个连接,但只有60000个可训练的自由参数,因为权重共享。

固定尺寸卷积网络已应用于许多应用,包括手写识别[35]、[36],机器印刷字符识别[37],在线手写识别[38]和人脸识别[39]。固定大小的卷积网络沿着单个时间维度共享权重,称为时滞神经网络(TDNNs)。
TDNNs已经用于音素识别(没有子采样)[40]、[41],口语单词识别(具有子采样)[42]、[43],孤立手写字符的在线识别[44]和签名验证[45]。

B .LeNet-5

本节更详细地描述了LeNET-5的体系结构,卷积神经网络在实验中的应用。LUNET-5包括7个层,不计算输入,所有这些都包含可训练参数(权重)。输入是一个32×32像素的图像。这明显大于数据库中的最大字符(至多20x20像素集中在一个28×28字段)。其原因是,希望诸如笔画终点或角落之类的潜在独特特征能够出现在最高级特征检测器的接收场的中心。在LeNet-5中,最后一卷积层(C3,见下文)的接收场的中心集在32x32输入的中心形成一个20x20区域。输入像素的值被归一化,使得背景电平(白色)对应于-0.1值,前景(黑色)对应于1.175。这使得平均输入大约为0,而方差约为1,加速学习[46]。

接下来,卷积层被标记为Cx,子采样层被标记为Sx,并且完全连接的层被标记为Fx,其中x是层索引。

层C1是具有6个特征映射的卷积层。每个特征图中的每个单元都连接到输入中的5x5邻域。特征映射的大小是28×28,它防止从输入到边界下降的连接。C1包含156个可训练参数和122304个连接。

层S2是具有14x14大小的6个特征图的子采样层。每个特征图中的每个单元在C1中对应的特征映射中连接到2x2邻域。S2中的一个单元的四个输入被添加,然后乘以可训练的系数,并增加可训练的偏置。结果通过一个Sigmoid函数。2x2接收字段是非重叠的,因此S2中的特征映射的行数和列数是C1中的特征映射的一半。层S2有12个可训练参数和5880个连接。


层C3是一个具有16个特征映射的卷积层。每个特征图中的每个单元在S2的特征映射子集中的相同位置处连接到几个5x5邻域。表I示出了由每个C3特征图组合的S2特征映射集。为什么不把每个S2特征图连接到每一个C3特征映射?原因是双重的。首先,一个非全连接方案将连接的数量保持在合理的范围内。更重要的是,它使网络中的对称性破灭。不同的特征映射被迫提取不同的(希望互补的)特征,因为它们得到不同的输入集合。表I中连接方案背后的原理如下。前六个C3特征映射从S2中的每三个相邻的特征图获得输入。接下来C3的六个特征映射从S2中每个四个邻接子集获取输入。接下来的三个从一些不连续的四个子集取输入。最后一个从所有的S2特征映射输入。例如,C3的前6个特征图以S2中3个相邻的特征图子集为输入。接下来6个特征图以S2中4个相邻特征图子集为输入。然后的3个以不相邻的4个特征图子集为输入。最后一个将S2中所有特征图为输入。这样C3层有1516个可训练参数和151600个连接。层C3有1516个可训练参数和151600个连接。

层S4是具有16个特征映射的大小为5x5的子采样层。每个特征图中的每个单元以与C1和S2类似的方式连接到C3中相应特征图中的2x2邻域。层S4有32个可训练参数和2000个连接。

层C5是一个具有120个特征映射的卷积层。每个单元连接到一个5x5附近的所有16个S4的特征映射。这里,因为S4的大小也是5x5,所以C5的特征映射的大小是1x1:这相当于S4和C5之间的完全连接。C5被标记为卷积层,而不是完全连接的层,因为如果LeNet-5输入变大,而其他输入保持不变,则特征图尺寸将大于1x1。在第七节中描述了动态增加卷积网络大小的过程。层C5有48120个可训练的连接。

 层F6包含84个单元(这个数字的原因来自输出层的设计,如下所述)并完全连接到C5。 它有10,164个可训练的参数。

与经典神经网络一样,高达F6的层中的单位计算其输入向量与其权重向量之间的点积,并向其添加偏差。 该加权和,表示为单位i的ai,然后通过S形压缩函数以产生单位i的状态,由xi表示: x_i=f(a_i)         (5)

压缩功能是缩放的双曲正切:f(a)=Atanh(Sa)   (6)

猜你喜欢

转载自blog.csdn.net/Threelights/article/details/81583120