这篇Yann LeCun于1998年发表在Proceedings of the IEEE的论文是深度学习领域的一篇经典综述,主要内容是:以字符识别为例,证明使用基于梯度的反向传播训练的多层神经网络优于手动提取特征的识别算法。因全文较长,下面将对认为重要的内容进行总结。
GitHub实现:LeNet-5-TensorFlow
目录
摘要
选定合适的网络结构,基于梯度的学习算法可以被用于形成一个复杂的决策面,只需最少的预处理即可对如手写数字等高维模式进行分类。
在字符识别中,一个新的学习范式GTN(图转移网络)能将多个任务(如字符区域提取、分割、识别以及语言建模等)使用基于梯度的最小化某个整体性能指标(损失函数)的方法来共同训练。
通过实验证明了全局训练方法的优势,以及图转移网络的灵活性。
关键词
卷积神经网络,文档识别,有限状态转移机,基于梯度的学习,图转移网络,机器学习,神经网络,光学字符识别(OCR)。
I. 介绍
本文的主旨是:通过更多地使用自动学习,而非手动设计的启发式方法,能建立更好的模式识别系统。
使用字符识别作为研究案例,我们揭示了手动特征提取可以被一种直接作用在像素图像上的学习算法很好地取代,这种统一的范式称之为GTN。
在模式识别的早期,人们已经发现自然数据(不论是语音、符号还是其他模式)的多变性和丰富性使得完全通过手动来建立一个准确的识别系统是几乎不可能的。因此,大多数模型识别系统的建立是通过将自动学习方法(可训练的分类器)与手动设计算法(特征提取器)相结合(如Fig.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. 从数据中学习
有许多自动机器学习方法,但近年来在神经网络社区最成功的方法之一,被称为“数值的”或基于梯度的学习。该方法学习一个函数,其中为第p个输入模式,W代表系统中所有可学习的参数。输出既可为的类别,也可为每一类的得分或概率。损失函数衡量的期望输出与系统输出的差异。平均损失函数为在整个训练集上的平均,学习问题即为寻找使得最小的W。
实际中,并不要求在训练集上取得最低错误率,更重要的是在系统的实际使用环境中的表现,称之为测试集。许多理论与实验[3-5]证明了(泛化误差)与的差异与训练样本个数的关系:,其中P是训练样本个数,h衡量模型的“有限容量”或复杂度[6, 7],是一个取值范围在[0.5, 1]的数,k是常数。因此,当h增加时,存在一个权衡: