CNN-经典论文阅读-(1998, LeNet-5)Gradient-Based Learning Applied to Document Recognition

CNN-经典论文阅读-(1998, LeNet-5)Gradient-Based Learning Applied to Document Recognition

这是我阅读的第一篇经典论文,本来应该早点阅读这篇经典之作的,但是每每打开看到长达48页的页码提示,都望而止步。所有的问题都需要正视,经典之所以被人称赞,一定有它的过人之处,所以这一次鼓足勇气,阅读全文,整理出一些摘要,是给自己的一个交代,同时也希望帮到大家。
本人是CNN刚入门阶段,文章中难免有一些出现理解错误的地方,希望大家指正!

摘要

1.文章中与标准的手写体数字识别方法做对比,描述用于手写识别的其他方法,比如能够较好的处理二维数据的卷积神经网络。
2.现实生活中的文件识别系统由多个模块组成,如字段提取(field extraction)、分割(segementation)、识别(recognition)以及语言模型(language modeling)。大家希望有一个模型能把所有的模块整合起来,系统的调节参数,因此作者介绍了Graph Transformer Networks(GTN)图变网络,使用基于梯度方法系统性的训练全部的参数,表现得更加优越。

keywords:神经网络、光学字符识别(OCR)、文件识别、机器学习、梯度学习、卷积神经网络、图变网络、有限状态传感器

正文

1.手工特征提取逐渐被直接对像素图片进行处理的学习机器取代。
2.通过手工集成单独设计的模块来构建识别系统的传统方法被GTN设计范式取代,GTN可以对所有模块进行全局性的优化。
在这里插入图片描述
作者指出:需要特征提取器是因为分类器只能处理比较低维的数据,但是现在技术的发展改变了这个局面:

  • 更快处理单元的低价机器
  • 更多的数据
  • 能够处理大量、高维数据并形成复杂结论的方法。

1.引言

A. Learning from Data

介绍梯度学习算法(gradient-based learning)
1.计算 Y p = F ( Z p , W ) Y^p = F(Z^p,W) Yp=F(Zp,W),其中 Z p Z^p Zp是第个输入,W是系统的参数, Y p Y^p Yp可以理解为输出的分类标签。
2.损失函数 E P = D ( D P , F ( W , Z P ) ) E^P = D(D^P,F(W,Z^P)) EP=D(DP,F(W,ZP)),计算真实标签 D p D^p Dp与预测标签 Z p Z^p Zp之间的差。
3.测试集损失 E t e s t E_{test} Etest和训练集误差 E t r a i n E_{train} Etrain之间的数学关系:
E t e s t − E t r a i n = k ( h / P ) a E_{test} - E_{train} = k(h/P)^a EtestEtrain=k(h/P)a
其中 P P P是样本个数, h h h表示能力有效性(effective capacity), a a a是普通参数,值在0.5~1.0之间, k k k是常数。

  • 当训练样本数量增加时,训练集和测试集之间的误差会减小。
  • h h h增加时, E t r a i n E_{train} Etrain会减少,因此在增加 h h h的同时, E t r a i n E_{train} Etrain的减小与训练集和测试集的差增加之间存在着一种平衡关系,即以 h h h为最优值获得最低的泛化误差 E t e s t E_{test} Etest
  • 结构风险最小化(Structural Risk Minimization):指的是最小化 E t r a i n + β H ( W ) E_{train} + \beta H(W) Etrain+βH(W),其中 H ( W ) H(W) H(W)被称为正则函数, β \beta β是一个常数。
    原文中说:H(W)的选取使得属于参数空间高容量子集的参数W具有较大的值。 H(W) is chosen such that it takes large values on parameters W that belong to high-capacity subsets of the parameters space.
    这句话没太理解
B. Gradient-Based Learning

梯度下降的内容大家应该都很熟悉了,附上论文中的公式:
W K = W k − 1 − ϵ α E ( W ) α W W_{K} = W_{k-1} - \epsilon \frac{\alpha E(W)}{\alpha W} WK=Wk1ϵαWαE(W)
随机梯度算法
在使用随机梯度算法进行参数更新时,参数向量在一个平均轨迹上波动,在大数据集上的(尤其是由大量冗余样本)收敛速度比常规梯度下降法和二阶方法要快很多。

C. Gradient Back-Propagation

文章中之描述了其发展的一些过程,反向传播的概念不再赘述。

D. Learning in Real Handwriting Recognition Systems

文中提到使用梯度学习的神经网络比其他方法都要好,其中卷积神经网络具有最好的效果。

文章指出手写识别最困难的问题之一是将单词或句子中的字符分开。这种技术被称为启发式过渡分割(Heuristic Over-Segmentation),分割效果称为影响识别准确率的主要因素。
解决方案:

  • 在整个字符串级别上训练系统,不是只在字符的级别上。
  • 将识别和分割合在一起,让识别器在输入图片的每个可能位置移动。
E. Globally Trainable Systems

这一部分主要是将前面的知识串在一起,讲解了使用神经网络需要注意一些什么,比如保证函数可微等。

2. Convolutional Neural Networks For Isolated Character Recognition

用于独立字符识别的卷积神经网络

A. 卷积神经网络

卷积神经网络结合了三种结构的思想来确保一定程度的位移、缩放和距离不变性:

  • 局部感受野(local receptive fields)
  • 共享权值(weight sharing)
  • 空间二次抽样(spatial sub_sampling)
    其中局部感受野的思想是由Hubel和Wisel在1962年提出的:猫的视觉系统包含局部敏感(locall-sensitive)和具有方向选择性(orientation-selective)的神经元。
    最早使用局部感受野的神经网络模型是神经认知机,由Fukushima在1980年提出。

局部连接在视觉学习的神经模型种被多次使用,局部连接的神经元可以提取基本的视觉特征,比如定向边缘、端点、角。这些特征会被更高层组合以得到更高级的特征。

权重共享 一个feature map中的所有单元共享相同的权重和偏差,因为它们是在所有可能的位置上提取相同的特征,不同的feature map使用不同的权重和偏差,来提取不同类型的局部特征。
检测到的特征的确切位置并不是很重要,特征与特征之间的相对位置才重要。比如我们检测到如数图像在左上角有一个端点,右上角也有一个端点,那么我们就可以预测输入的数字是7。不同的人所写的数字的特征的精确位置不可能完全一致,因此降低输入图像的空间位置信息是非常有必要的,可以通过降低特征图的空间分辨率来实现,具体可以使用一个下采样层来弱化图像特征的空间信息。

LetNet-5的第二个隐藏层是下采样层,这一层包含6和特征图,每个特征图对应前一层的一个特征。每个感受野是上一层对应特征图中2*2的区域,每个单元计算4个输入的平均值,再乘以一个可训练的系数加上可训练的偏差,结果经过sigmoid函数处理,相邻的单元具有不重叠的感受与。因此次采样的特征图只有原来一半的行和列作为前一层的特征映射。可训练系数和偏差对非线性函数sigmoid影响很大。如果系数较小,那么这个单元就像是在执行线性函数(sigmoid函数图像中间的一小部分可以看作线性),如果系数比较大,就像是执行或、与函数(不是0就是1,参照函数图像)。
在这里插入图片描述
卷积层和下采样层交替出现,特征图的数量随着空间分辨率的降低而增加。
LeNet-5网络结构图:
在这里插入图片描述
权重共享带来的另一个优势:减少了自由参数的数量,降低了机器所需的内存,减少了测试误差和训练误差之间的差距。图中的网络包含340908个连接,因为权重共享,只有60000个可训练的自由参数。

B. LeNet-5

LeNet-5共有7层,每层都包含可训练的参数。输入的是一个3232大小的图片,输入的图片比原来的图片大小(2020,28*28)要大,这主要是因为需要检测图像的边界特征信息,比如角、点等。输入的像素都进行了归一化处理,所以白色的背景值对应于0.1,黑色的对应值为1.175,这也使得输入的平均值近似为0,方差近似为1,这样大大的加快了学习速度(原因参考一个扁形的梯度下降图和一个相对较圆的梯度下降图,不再赘述)。
在这里插入图片描述
再挂一遍LeNet-5的模型图,方便观看。
在这里插入图片描述
模型结构:

  • C1为卷积层,由6个2828的特征图(feature map)组成,核函数(kernel)大小55,步长(stride)为1,共有556+6=156个参数(每个特征提取器有55个unit参数,一共6个特征提取器,另外每一层都有一个偏置参数),共1562828=122304个连接(可以结合公式WX+b理解,相当于参数输入单元个数)。
  • S2是下采样层,由6个1414的特征图组成,核函数(kernel)大小22,步长为2。S2层每个单元的4个输入相加,乘以一个可以训练的参数,再加上可训练的偏置,其中每个单元的22感受野不重叠。共有6(1+1)=12个参数(四个输入相加再乘以一个参数加一个偏置),和1414(2*2+1)6=5880个连接(1414个输入乘以核函数大小+一个偏置,我理解的是发生几次乘法就有几个连接)。
  • C3为卷积层,由16个1010的特征图组成,kernel=55,stride=1,C3中每个特征图由S2中6个或几个不同的特征图组合而成。不把S2中每个特征图连接到每个C3的特征图的原因:1.不完全的连接机制将连接数量保持在合理的范围内。2.这样能够破坏网络的对称性。例如C3的前6个特征图以S2中3个相邻的特征图子集为输入,下面6个特征图以S2中4个相邻的特征图子集输入,剩下3个以不相邻的4个特征子集为输入,最后一个将S2中所有特征图为输入。这样C3层共有:
    [6*(553+1)+6*(455+1)+3*(455+1)+(556+1)=1516]个参数,共有15161010=151600个连接。
    在这里插入图片描述
  • S4为下采样层,由16个55的特征图构成,kernel=22,stride=1,S4有(16*(1+1))=32个参数,(16*(2*2+1)55)=2000个连接。
  • C5为卷积层,有120个11的特征图,kernel = 55,共有5516120+120=48120个参数,有481201*1个连接。
  • F6为全连接层,包含84个单元,F6层包含120*84+84=10164个参数。
  • 输出层包含10个单元,分别输出10个数字的类别概率。
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
gradient-based neural dag learning(梯度优化的神经有向无环图学习)是一种用于构建和训练神经网络结构的方法。它通过学习网络的拓扑结构,即神经网络的连接方式和层次结构,来优化网络性能。 传统的神经网络结构通常是由人工设计的,而在gradient-based neural dag learning中,网络的结构可以通过梯度下降算法进行优化。该方法的核心思想是在训练过程中不仅学习网络的权重参数,还学习网络的拓扑结构。 在gradient-based neural dag learning中,网络的结构可以表示为有向无环图(DAG),图中的节点表示网络中的层或操作,边表示连接。我们可以用一组变量来表示每个节点的状态和连接关系,通过优化这些变量,实现网络结构的优化。 具体地,gradient-based neural dag learning通过计算网络中每个操作或层对目标函数的梯度来优化变量。在梯度下降的过程中,网络的结构随着反向传播算法的迭代而逐渐优化。这种方法可以使得网络自动完成结构的搜索和选择,提高了网络的表达能力和性能。 由于gradient-based neural dag learning可以自动进行网络结构的学习和优化,它可以减轻人工设计网络结构的负担,并且在处理复杂任务时能够获得更好的性能。然而,由于网络结构的搜索空间非常大,优化过程可能会很复杂,需要大量的计算资源和时间。 总之,gradient-based neural dag learning是一种通过梯度下降优化网络结构的方法,能够自动学习和优化神经网络的拓扑结构,提高网络性能。这种方法在深度学习领域有着广泛的应用潜力,并且为网络的设计和训练带来了新的思路和方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值