论文要点总结:Gradient-Based Learning Applied to Document Recognition(一)

这篇Yann LeCun于1998年发表在Proceedings of the IEEE的论文是深度学习领域的一篇经典综述,主要内容是:以字符识别为例,证明使用基于梯度的反向传播训练的多层神经网络优于手动提取特征的识别算法。因全文较长,下面将对认为重要的内容进行总结。

GitHub实现:LeNet-5-TensorFlow

目录

摘要

关键词

I. 介绍

    A. 从数据中学习

    B. 基于梯度的学习

    C. 梯度反向传播

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

    E. 全局训练系统

II. 用于孤立字符检测的卷积神经网络

    A. 卷积网络

    B. LeNet-5

    C. 损失函数


摘要

选定合适的网络结构,基于梯度的学习算法可以被用于形成一个复杂的决策面,只需最少的预处理即可对如手写数字等高维模式进行分类。

在字符识别中,一个新的学习范式GTN(图转移网络)能将多个任务(如字符区域提取、分割、识别以及语言建模等)使用基于梯度的最小化某个整体性能指标(损失函数)的方法来共同训练。

通过实验证明了全局训练方法的优势,以及图转移网络的灵活性。

关键词

卷积神经网络,文档识别,有限状态转移机,基于梯度的学习,图转移网络,机器学习,神经网络,光学字符识别(OCR)。

I. 介绍

本文的主旨是:通过更多地使用自动学习,而非手动设计的启发式方法,能建立更好的模式识别系统。

使用字符识别作为研究案例,我们揭示了手动特征提取可以被一种直接作用在像素图像上的学习算法很好地取代,这种统一的范式称之为GTN。

在模式识别的早期,人们已经发现自然数据(不论是语音、符号还是其他模式)的多变性和丰富性使得完全通过手动来建立一个准确的识别系统是几乎不可能的。因此,大多数模型识别系统的建立是通过将自动学习方法(可训练的分类器)与手动设计算法(特征提取器)相结合(如Fig.1)。

论文要点总结:Gradient-Based Learning Applied to Document Recognition(一)_第1张图片

特征提取器将输入数据转化为低维向量或短字符串,使其:1、容易被匹配或比较;2、对(未发生本质变化的)输入数据的变化与畸变保持相对不变性。

这一方法最大的一个问题是:识别精度严重依赖于设计者找到一组合适特征的能力,这导致对每一个新问题都需要重新进行这一步骤。

从历史上看,对合适的特征提取器的需求是基于这一事实:用于分类器的学习方法被限制在容易分类的低维空间[1]。近几十年来,三个因素改变了这一点:1、具有快速运算单元的低成本机器允许依赖更多的蛮力“数值”方法,而不是算法的改进;2、对如手写识别等问题的大量数据的出现使得设计者能更多地依赖真实数据而非手动提取的特征来建立识别系统;3、(关键)当使用这些大量的数据集训练时,能处理高维输入的强大的机器学习算法可以生成复杂的决策函数。

尽管更多使用自动学习效果更好,没有一个学习算法可以在不使用(最少量的)任务的先验知识的情况下获得成功。对多层神经网络,一个结合先验知识的好办法是根据任务调整网络结构。在Section II中介绍的卷积神经网络是一种特殊的神经网络结构,通过使用局部连接模式与对权重施加限制的方式,将关于二维形状不变性的先验知识(与网络)结合起来[2]。

为了从识别单个字符扩展到识别文档中的单词或句子,在Section IV介绍将多个模型结合起来训练以减小总误差的方法。使用多模型系统识别如手写单词等变长对象的最好是使这些模型操作有向图。这在Section IV引入了可训练GTN的概念。

Section V介绍了一种现在的经典方法HOS(heuristic oversegmentation,启发式分割),用于识别单词或其他字符串。

无需手动划分单词并标注的、用于在单词级别训练识别器的、判别与非判别式的基于梯度的方法在Section VI介绍。

Section VII提出了一种空间位移神经网络,通过扫描一个在输入的所有可能方向的识别器,而不需要分割启发式方法。

Section VIII显示可训练的GTN可表述为基于一个通用的图构成算法生成的多个转换器。也介绍了GTN与常被用于语音识别的HMM(隐马尔科夫模型)的联系。

Section IX介绍了一个用于识别通过手写输入计算机的内容的全局训练GTN系统。这一问题称之为“在线”手写识别,因为计算机必须在用户书写时生成即时反馈。该系统的核心为一个卷积神经网络。结果清楚地证明了在单词级别训练识别器,而非在预先分割、手动标注的单独的字符上训练的优势。

Section X描述了一个完整的用于识别手写与打印的银行支票的基于GTN的系统,核心是称为LeNet-5(Section II)的卷积神经网络。

A. 从数据中学习

有许多自动机器学习方法,但近年来在神经网络社区最成功的方法之一,被称为“数值的”或基于梯度的学习。该方法学习一个函数Y^{p}=F(Z^{p},W),其中Z^{p}为第p个输入模式,W代表系统中所有可学习的参数。输出Y^{p}既可为Z^{p}的类别,也可为每一类的得分或概率。损失函数E^{p}=D(D^{p},F(W,Z^{p}))衡量Z^{p}的期望输出D^{p}与系统输出的差异。平均损失函数E_{train}(W)E^{p}在整个训练集上的平均,学习问题即为寻找使得E_{train}(W)最小的W。

实际中,并不要求在训练集上取得最低错误率,更重要的是在系统的实际使用环境中的表现,称之为测试集。许多理论与实验[3-5]证明了E_{test}(泛化误差)与E_{train}的差异与训练样本个数的关系:E_{test}-E_{train}=k(h/P)^{\alpha },其中P是训练样本个数,h衡量模型的“有限容量”或复杂度[6, 7],\alpha是一个取值范围在[0.5, 1]的数,k是常数。因此,当h增加时,存在一个权衡:降低E_{train}与提高E_{test},而最佳的h值对应取得最低的E_{test}

大多数学习算法致力于最小化E_{train}与估计E_{test}E_{train}之间的差异。其中的一个正式版本称为结构风险最小化[6, 7],基于定义一系列模型容量不断增长的学习机,对应一系列参数空间子集,每一个子集都是之前所有子集的超集。实际条件中,结构风险最小化的对象是E_{train}+\beta H(W),其中H(W)称为正则函数,\beta是一个常数。H(W)被设计为对属于较大容量的参数空间子集的W取较大的数值。最小化H(W)实际上就是限制参数空间的容量(模型大小),控制最小化训练误差和最小化训练误差和测试误差之间的期望差距之间的权衡。

B. 基于梯度的学习

基于梯度的学习更容易最小化一个相对平滑、连续的函数,而非一个离散(组合)函数。损失函数的最小化可以通过衡量参数值的微小变化对损失函数的影响,即计算损失函数对这些参数的梯度。(原因是)梯度向量可以被解析计算,而非通过数值扰动。这是许多具有连续值参数的基于梯度的学习算法的基础。在本文中,W是实值向量,损失函数E(W)连续且几乎处处可微。最简单的最小化(损失函数)方法是梯度下降算法,如W_{k}=W_{k-1}-\epsilon\frac{\partial E(W)}{\partial W}迭代调整W的值,其中\epsilon为常数。更复杂的算法将\epsilon设为变量,或用对角矩阵代替,或用逆Hessian矩阵代替(如牛顿/类牛顿法)。也可以使用共轭梯度法[8]。但是Appendix B表明,尽管在文献中有许多相反的说法,这些二阶方法对大型学习机的作用是非常有限的。

一个流行的最小化方法是随机梯度算法,也称为在线更新。该方法使用一个有噪声的近似平均梯度来更新参数向量。在这个过程中,参数向量在一个平均轨迹上下波动,但是在具有冗余样本的大型训练集上,它通常比普通梯度下降和二阶方法收敛得快得多(如语音或字符识别)。这一结论的原因在Appendix B中有提到。

C. 梯度反向传播

基于梯度的学习自20世纪50年代后期就开始使用,但大多局限于线性系统[1]。由于以下三个原因,这种简单的梯度下降算法对复杂机器学习算法的作用被广泛地认识到:1、在实际中,损失函数的局部极小值对非线性学习算法并不是一个主要问题[13, 14];2、在多层非线性系统中能简单、有效地计算梯度的方法的流行,如反向传播算法[15];3、反向传播算法被应用于带Sigmoid单元的多层神经网络,被证明可以解决复杂的学习任务。

关于反向传播,有一个基本的观点:从输出到输入使用反向传播,可以高效地计算梯度。有趣的是,在NN的上下文学习中,反向传播的早期版本并不使用梯度,而是在中间层单元使用“虚拟目标”[17, 18],或使用最小扰动参数[19]。

局部极小值对多层神经网络似乎并不构成问题,这在理论上是一个玄学。据推测,如果网络的“尺寸”对任务而言足够大(这在实际中是大多数情况),那么参数空间的“额外维度”的存在就能降低(最小化损失函数时)无法到达某些区域的风险。直到现在,反向传播算法是神经网络学习算法(甚至是任何形式的学习算法)中使用最广泛的。

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

对孤立的手写字符的识别是神经网络的早期成功应用之一[23-25]。在Section III中介绍了孤立手写数字识别的对比实验。实验显示,对相同的数据,使用基于梯度的学习方法训练的神经网络优于所有对比方法。其中最好的神经网络,即卷积神经网络,能学习到如何直接从像素图像中提取相关特征(Section II)。

然而在手写识别中,最困难的问题之一并不只有识别单个字符,而是如何从单词或句子中将邻近的各个字符分离出来(分割)。这一任务的“标准”方法称为启发式分割(HOS)。首先,使用启发式图像处理技术在字符间生成大量的可能划分(cuts),接着根据识别器对每个候选字符给出的分数来选择最佳的划分组合。要训练这样的识别器是十分困难的,因为难以生成一个误分割字符的标注数据库。

第一个解决方案(Section V),在字符串而非字符级别进行训练,最小化一个度量错误回答概率的全局损失函数。该节中探索了多种方式以确保可微,因此使用基于梯度的学习方法;还介绍了有向无环图(有向无环图的弧携带数字信息作为替代假设的一种方式)的使用以及GTN的概念。

第二个解决方案(Section VII),让识别器在输入图像上的每一个可能的位置扫描,这一方法依赖于识别器的正确识别输入区域中中心对齐的字符的能力[26, 27]。将如此得到的识别器输出序列输入到一个含语言学约束、最后提取出最可能翻译的GTN中。GTN类似于隐马尔科夫模型,使得该方法与经典的语音识别方法有相似之处[28, 29]。尽管这种技术在一般情况下相当昂贵,但卷积神经网络的使用可以显著地节省计算成本,因此具有特别的吸引力。

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_{n}已知,损失函数E^{p}W _{n}X_{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}}

其中\frac{\partial F}{\partial W}(W_{n},X_{n-1})是F对W在(W_{n},X_{n-1})处的雅可比矩阵,\frac{\partial F}{\partial X}(W_{n},X_{n-1})是F对X的雅可比矩阵。第一个公式计算E^{p}(W)的梯度的一些项,第二个公式生成逆向递推,如同在神经网络的反向传播过程(中的计算)。我们可以对所有训练样本的梯度求平均来得到完整(训练样本)的梯度。

向量函数的雅可比矩阵是包含所有输出对所有输入的偏导数的矩阵。但有趣的是,不需要显式地计算雅可比矩阵。上式使用了雅可比矩阵与偏导数向量的乘积,直接计算这个乘积往往比较容易,不需要事先计算雅可比矩阵。

与普通的多层神经网络相似,除了最后一个模块外,其他模块都称为隐藏层,因为它们的输出从外部是不可观察的。在比上面描述的简单模块级联更复杂的情况下,偏导数表示变得模糊和笨拙。在更一般的情况下,可以用拉格朗日函数进行严格的推导[20-22]。

传统的多层神经网络是上述情况的一种特殊情况,其中状态信息X_{n}用固定尺寸的向量表示,模块是交替出现的矩阵乘法的层(权重)与sigmoid函数(神经元)。然而,如前所述,在复杂识别系统中,状态信息最好表示方式是使用在弧上附带数值信息的图。在这种情况中,每个称为GT的模块接受一个或多个图作为输入,并生成一个图作为输出。由这些模块组成的网络称为GTN。

Section IV,VI和VIII发展了GTN的概念,并表明基于梯度的学习可以用来训练所有模块中的所有参数,从而最小化全局损失函数。当状态信息由本质上离散的对象(如图形)表示时可以计算梯度,这似乎有些矛盾,但后文中这一困难是可以绕过的。

II. 用于孤立字符检测的卷积神经网络

在传统的模式识别模型中,人工设计的特征提取器从输入中收集相关信息,并排除不相关的变量。然后,一个可训练的分类器将得到的特征向量分类。在该方案中,可以使用标准的全连接多层网络作为分类器。一个可能更有趣的方案是,尽可能依赖于特征提取器自身的学习。在字符识别中,可以向网络输入几乎原始的数据(如尺寸归一化的图像)。虽然对于字符识别这样的任务,普通的全连接前馈网络取得了一定的成功,但也存在一些问题。

首先,图像很大,通常有几百个变量(像素)。一个全连接的第一层有(例如)100个隐藏单元,就已经包含了数万个权重。如此大量的参数增加了系统的容量,因此需要更大的训练集。此外,存储如此多权重的内存需求可能会排除某些硬件实现。但用于图像或语音应用的非结构化网络的主要缺陷是,它们对于输入的变换或局部失真没有内在的不变性。字符图像或其他二维/一维信号在被送到神经网络的固定尺寸的输入层之前,必须在输入中进行近似大小的归一化和集中。不幸的是,没有一种预处理是完美的:手写通常是在单词级别标准化的,这可能会导致单个字符的尺寸、倾斜和位置变化。理论上,一个足够大的全连接网络可以学习产生相对于这些变化保持不变的输出。然而,学习这样一个任务可能会导致多个权重模式相似的单元被放置在输入(层)的不同位置,以便检测输入中出现的有辨别性的特征。(但)在卷积网络中,如下所述,通过强迫权重配置在空间中复制,自动获得(对特征的)位移不变性。

其次,全连接结构的一个缺陷是完全忽略了输入的拓扑结构。输入变量可以以任何(固定)顺序表示,而不影响训练的结果。相反,图像(或语音的时频表征)有很强的2-D局部结构:在空间或时间上相邻的变量(或像素)高度相关。局部相关性是在识别空间或时间对象之前,提取和结合局部特征的优势的原因,因为相邻变量的配置结构可以分为少量类别(如边缘、角等)。卷积网络(的结构)通过限制隐藏单元的感受野为局部,来强制提取局部特征。

A. 卷积网络

注:此节中,一个单元指特征图中的一个像素。

卷积网络结合了三个结构性思想,保证了一定程度的位移、尺度和失真不变性:1)局部感受野;2)共享权重(或权重复制);3)空间或时间的下采样。

论文要点总结:Gradient-Based Learning Applied to Document Recognition(一)_第2张图片

一个典型的用于识别字符的卷积网络LeNet-5如(Fig. 2)所示。输入层接收尺寸归一化和居中的字符图像。每一层中的每个单元都从位于前一层中一个小邻域内的一组单元接收输入。局部连接在视觉学习的神经模型中被多次使用[2, 18, 31-34]。通过局部感受野,神经元可以提取基本的视觉特征,如定向边缘、端点、角(或其他信号中的类似特征,如语音谱图)。这些特征然后被随后的层结合,以检测更高阶的特征。

一个层中的单元被组织在平面中,在平面中所有的单元共享相同的权重集合。在这样一个平面上的单元的输出集合称为特征图。特征图中的单元都被约束,以在图像的不同部分上执行相同的操作。一个完整的卷积层是由多个特征图组成的(用不同的权重向量),这样可以在每个位置提取多个特征,如LeNet-5的第一层。LeNet-5的第一个隐藏层中的单元被组织为六个平面,每个平面都是一个特征图。一个特征图中的一个单元有25个输入,连接到输入图像中的一个5*5的区域,称为该单元的感受野。每个单元有25个输入,因此有25个可训练系数(权重)加上一个可训练偏置。

如前所述,特征图中的所有单元共享同一组25个权重和相同的偏置,因此它们会在输入的所有可能位置检测到相同的特征。该层中的其他特征图使用不同的权重和偏置的集合,从而提取不同类型的局部特征。在LeNet-5中,在每个输入位置,六个单元在六个特征图的相同位置提取六个不同类型的特征。特征图的连续实现,将使用具有局部感受野的单个单元扫描输入图像,并将该单元的状态存储在特征图的相应位置。这个操作等价于卷积,然后加上一个附加的偏置和压缩函数(也称激活函数),因此被称为卷积网络。卷积的核是特征图中各单元所使用的连接权重集合。卷积层的一个有趣的特性是,如果对输入图像进行位移,则特征图输出也会被移动相同的位置,反之则保持不变。这一特性是卷积网络对输入的位移和失真具有鲁棒性的基础。

一旦一个特征被检测到,它的确切位置就不那么重要了。只有它相对于其他特征的近似位置是有意义的。这些特征的精确位置不仅与识别该特征无关,而且可能有害,因为这些位置可能因字符实例的不同而不同。降低特征图中特征位置编码精度的一种简单方法是降低特征的空间分辨率。这可以通过所谓的下采样层来实现,该层执行局部平均和下采样,从而降低特征图的分辨率,降低输出对位移和失真的敏感性。LeNet-5的第二个隐藏层是下采样层。这一层包含6个特征图,对应前一层中的每个特征图。每个单元的感受野为上一层对应的特征图中的一个2*2区域。每个单元计算它的四个输入的平均值,乘一个可训练系数,加上一个可训练偏置,然后将结果通过一个Sigmoid函数。相邻单元具有不重叠的相邻感受野。可训练系数和偏置控制了Sigmoid函数非线性的影响。如果系数很小,那么单元以准线性模式运行,下采样层仅仅是对输入进行模糊。如果系数较大,则下采样单位可视为执行一个“有噪声的或”或“有噪声的与”的函数,这取决于偏置的值。卷积和下采样层通常是连续交替进行的,结果是:在每一层,特征图的数量随着空间分辨率的降低而增加。Fig. 2中第三个隐藏层中的每个单元都可以具有来自前一层的多个特征图的输入连接。通过空间分辨率的逐步降低,可以很大程度地实现输入的几何变换不变性。空间分辨率的逐步降低由表示的丰富程度(即特征图的数量)的逐步增加来补偿。

权重共享有一个有趣的副作用,即减少自由参数的数量,从而减少机器的“容量”,并减少测试误差和训练误差之间的差距[34]。Fig. 2中的网络包含345308个连接,但由于权重共享,只有60000个可训练的自由参数。

在单一时间维度上共享权重的固定尺寸的卷积网络称为时延神经网络(TDNN)。TDNN已经被用于音素识别(不使用下采样)[40, 41],口语识别(使用下采样)[42, 43],孤立手写字符的在线识别[44]和签名验证[45]。

B. LeNet-5

本节将更详细地描述LeNet-5的结构,以及实验中使用的卷积神经网络。LeNet-5包含七层(不含输入层),每一层都有可训练的参数(权重)。输入为32*32像素图像。这比数据库中的最大字符大得多(最大为20*20,位于一个28*28的邻域中心)。其原因是希望潜在的显著特征如笔画端点或角,可以出现在最高阶的特征检测器的感受野的中心。在LeNet-5中,最后一个卷积层(C3,见下文)的感受野的中心,在32*32输入的中央形成一个20*20的区域。输入像素的值被归一化,以便背景(白色)对应-0.1的灰度值,前景(黑色)对应1.175的灰度值。这使得输入的平均值及方差大约为0,加速了学习[46]。

C1层包含156个可训练参数((5*5+1)*6=156)以及122304个连接(156*28*28=122304)。

S2层包含12个可训练参数((1+1)*6=12)以及5880个连接((2*2+1)*6*14*14=5880)。

论文要点总结:Gradient-Based Learning Applied to Document Recognition(一)_第3张图片

Table 1显示了组成每个C3特征图的S2特征图集合。之所以不将每个S2的特征图与每个C3特征图连接(如同输入层到C1层的操作),有两个原因:1)不完全的连接方案将连接的数量控制在合理的范围内;2)更重要的是,该连接方式破坏了网络的对称性,使得(C3中)不同的特征图提取不同的(希望是互补的)特征,因为它们得到的是不同的输入。该方案的原理如下:1)0-5的C3特征图从S2中的三个特征图的每个相邻子集中获取输入;2)6-11从四个特征图的每个相邻子集中获取输入;3)12-14从四个特征图的一些不相邻子集中获取输入;4)15从所有特征图中获取输入。C3层包含1516个可训练参数以及156000个连接。

S4层包含32个可训练参数和2000个连接(计算同S2层)。

C5层是一个包含120个特征图(1*1)的卷积层。C5的每个单元与S4的所有16个5*5特征图相连接(相当于S4到C5是全连接的)。C5之所以被标记为卷积层而非全连接层,是因为如果在其他条件不变的情况下让LeNet-5的输入变大(大于28*28),feature map的维数就会大于1*1。这一动态增加卷积网络大小的过程将在Section VII中描述。C5层包含48120个连接。

F6层包含84个单元(产生这个数字的原因来自于输出层的设计,将在下面解释),并且与C5层完全连接。F6层包含10164个可训练参数((120+1)*84=10164)。

输出层由欧氏RBF(径向基函数)单元组成,每个类对应一个RBF单元以及84个输入。每个RBF单元的输入y_{i}的计算公式为y_{i}=\sum(x_{j}-w_{ij})^{2}。即每个RBF单元计算其输入向量与参数向量之间的欧式距离。在概率上,RBF输出可以解释为在F6层配置空间中的一个高斯分布的非标准化的负对数似然函数。这些RBF单元被设计成在一个7*12位图(因此F6层有84单元)上绘制对应字符类的程式化(stylized)图像。这样的表示对于识别孤立的数字并不是特别有用,但是对于识别从完全可打印的ASCII字符集中提取的字符串非常有用。原因是相似的字符会有相似的输出编码,因此容易混淆。如果该系统与能够纠正这种混淆的语言后处理器结合在一起,就会特别有用。因为易混淆类的编码是相似的,所以对于不明确的字符对应的RBF的输出将是相似的,而后处理器将能够选择正确的解释。Fig. 3给出了完整ASCII字符集的输出代码。

论文要点总结:Gradient-Based Learning Applied to Document Recognition(一)_第4张图片

之所以使用这种分布式(distributed)编码(RBF)而不是非分布式编码作为输出,一个原因是,当有数十个类时非分布式编码表现很差。因为非分布式编码中的输出单元在大多数时候都必须关闭(为0),而这对Sigmoid单元这是很难做到的。

另一个原因是,分类器通常不仅用于识别字符,还用于拒绝非字符。带有分布式编码的RBF更适合这个目的,因为与Sigmoid不同,它们是在输入空间的一个边界明确的区域内被激活的,在这个区域之外,非典型的模式更有可能被抑制(fall)。

RBF的参数向量充当F6层的目标向量。值得指出的是,这些向量的分量是+1或-1,在F6层的Sigmoid函数值域范围内,因此可以防止这些Sigmoid函数饱和(会导致损失函数收敛缓慢或出现异常值)。事实上,+1和-1是Sigmoid函数的最大曲率点(极值点)。这迫使F6单元在他们的最大非线性范围内运行。

C. 损失函数

可用于上述网络的最简单的输出损失函数是最大似然估计,在我们的例子中,等价于最小均方误差(MSE)。一组训练样本的损失函数为E(W)=\frac{1}{P}\sum_{p=1}^{P}y_{D^{p}}(Z^{p},W),其中y_{D^{p}}是第D^{p}个RBF单元的输出,即与输入Z^{p}的正确分类对应。虽然这种损失函数适用于大多数情况,但它也存在缺陷。

如果RBF参数参与训练,可能出现所有RBF参数向量相等、F6层的状态为常数且等于该参数向量的情况。这样的话对任何输入,RBF单元的输出都为0。

此外,还可能出现不同类之前没有竞争(competition)的情况。可以使用区分性更强的最大后验概率损失函数,类似于有时用于训练隐马尔科夫模型(HMM)的最大互信息损失函数[48-50]。即相当于最大化正确类D^{p}的后验概率(或最小化正确类的概率的对数),假设输入图像可以来自其中一个类或来自背景“垃圾”类的标签。就惩罚而言,该损失函数除了像MSE一样可以减小正确类的惩罚之外,还可以增大错误类的惩罚:E(W)=\frac{1}{P}\sum_{p=1}^{P}(y_{D^{p}}(Z^{p},W)+log(e^{-j}+\sum e^{-y_{i}(Z^{p},W)}))。常数j是正的,可以防止当类的惩罚已经很大时,最终的值变得更大。垃圾类的后验概率为e^{-j}\sum e^{-y_{i}(Z^{p},W)})的比值。因为该损失函数使RBF单元的中心彼此分开,所以可以出现所有RBF参数向量相等的情况。在Section VI中,我们为学习对输入中的多个对象进行分类的系统(如文档中单词的字符)提供了这一损失函数的一般化形式。

考虑到权重分享,标准的反向传播算法需要稍加修改。一个简单的实现方法是,首先计算损失函数对每个连接的偏导数,就好像网络是一个传统的没有权值共享的多层网络;接着将分享一个共同参数的所有连接的偏导数相加,形成对该参数的导数。

可以非常有效地训练一个这样的大型系统,但是需要使用附录中描述的一些技术。Appendix A描述了一些细节,比如使用特定的Sigmoid函数和权重初始化。Appendix B和C描述了所使用的最小化过程,它是Levenberg-Marquardt过程的对角近似的随机版本。

你可能感兴趣的:(深度学习)