论文提要“Gradient based Learning Applied to Document Reocognition”
2015-06-17 16:16
253 查看
1.综述
提出好的模式识别系统多依赖自学习,少依赖手工设计框架。字符识别可以将原图像作为网络输入,代替之前设计的特征。对于文本理解,之前设计的定位分割识别模块可以使用Graph Transformer Networks 代替。下图显示了传统的识别方法:
机器运算速度的提升,大数据和机器学习算法改进改变了上述传统方法。
A. 数据学习
经典方法是基于梯度的学习,通过计算函数Yp=F(Zp,W)Y^p = F(Z^p,W),及最小化损失函数Ep=D(Dp,F(W,Zp))E^p = D(D^p,F(W,Z^p)) 实现。大量的理论研究表明,训练误差和测试误差之间的gap随着训练样本数增加而降低,结构风险最小化就是在降低训练误差的同时降低gap。
B. 基于梯度的学习
最简单的最小化方法是梯度下降算法,使用以下公式更新权值W:
一个通用的最小化方法是SGD,能够以比常规梯度下降更快的速度收敛。
C.BP 网络的出现,局部极小值问题消失
D.实际手写体识别
说出了手写字体识别最难得两个问题,识别单个字符和字符的分割。标准的分割方法是“启发式过分割”。第四节提出在字符串水平训练识别系统,并提出了使用GTN和语言语义结合进行识别。GTN与HMM类似。
E. 全局训练系统
最小化全局误差,级联模型Xn=Fn(Wn,Xn−1)X_n = F_n(W_n,{{X_n}_-}_1), XnX_n 是模块输出,如果全局损失EpE^p 对于XnX_n 的偏导已知,可计算其对WnW_n 和Xn−1){{X_n}_-}_1) 的偏导
上述第一个公式计算Ep(W)E^p(W) 的梯度的一些项,第二个公式进行反向再现。这是全局误差最小化的雏形,每个模块称为Graph Transformer,文中第5,6,8节有详细介绍。
2.CNN for isolated character recognition
传统的基于梯度下降神经网络的识别精度由特征设计的好坏决定,对于字符识别,可以使用原始图像作为网络输入,而使用前向传播全连接神经网络实现存在两个问题:1)需要大量节点,权值和存储空间,主要问题是不具备对平移和扭曲的不变特性; 2)忽略了图像的拓扑结构,像边缘、角点等特征对于识别具有重要意义。CNN的目标就将隐层的接受域限制在局部内。
CNN引入了三个特点使得它对平移,旋转和扭曲不变,即:局部接受域,权值共享和时空下采样,经典的网络结构LeNet-5如下图所示:
LeNet-5第一个隐含层有六个特征图,每个特这图上的节点具有25个输入,与输入层的5*5的区域相对应,接受域可重叠。特征图上所有节点共享相同的权值和偏量,其他特征图使用其他的共享权值和偏量。卷积网络带来的效果是,如果输入图像有平移,那么特征图有对对应的平移。文中举了数字“7”作为例子,“7”在左上和右下角分别有个endpoint,在右上角有个角点,网络只需检测出这些局部特征就可判断输入数字是否是“7”。实际上,不仅是特征与位置无关,不同样本的特征位置不同会影响识别效果。文中采用了下采样解决这个问题,上图第二个隐层即是下采样层,接受域的大小是2*2,即分别对行列下采样两倍,对上一层每个特征图都进行下采样,得到六个响应。接下来的层就交替进行卷积和下采样,在每一层,特征图个数增加的同时分辨率降低。
文中介绍每个卷积层和下采样层的细节比较容易理解,F6是全连接层,具有84个节点,节点i的输出为:
xi=f(ai)=Atanh(Sa)x_i = f(a_i) = A tanh(Sa)
A代表赋值,S为斜率。F6的输出层是每一类的Euclidean RBF,即:
yi=∑j(xj−wij)2y_i = \sum_j(x_j-{w_i}_j)^2
输出RBF节点计算输入向量与参数向量之间的距离。给定一个输入模式,损失函数应获得与该模式对应类别RBF参数向量接近的F6结构。
损失函数:为了解决传统的最大似然估计(MLE)中RBF参数学习引起的“collapsing effect”,文中使用了以下训练准则:
主要目的还是最大化正确类别DpD_p 的后验概率,降低对正确类别的惩罚同时提高对错误分类的惩罚。
3.实验结果及与其他方法比较
MNIST 数据库,60 000训练,10 000测试。主要体现了训练库的大,并通过水平竖直方向平移,缩放,挤压等操作增加540 000个训练样本,测试错误率降至0.8%。
提出好的模式识别系统多依赖自学习,少依赖手工设计框架。字符识别可以将原图像作为网络输入,代替之前设计的特征。对于文本理解,之前设计的定位分割识别模块可以使用Graph Transformer Networks 代替。下图显示了传统的识别方法:
机器运算速度的提升,大数据和机器学习算法改进改变了上述传统方法。
A. 数据学习
经典方法是基于梯度的学习,通过计算函数Yp=F(Zp,W)Y^p = F(Z^p,W),及最小化损失函数Ep=D(Dp,F(W,Zp))E^p = D(D^p,F(W,Z^p)) 实现。大量的理论研究表明,训练误差和测试误差之间的gap随着训练样本数增加而降低,结构风险最小化就是在降低训练误差的同时降低gap。
B. 基于梯度的学习
最简单的最小化方法是梯度下降算法,使用以下公式更新权值W:
一个通用的最小化方法是SGD,能够以比常规梯度下降更快的速度收敛。
C.BP 网络的出现,局部极小值问题消失
D.实际手写体识别
说出了手写字体识别最难得两个问题,识别单个字符和字符的分割。标准的分割方法是“启发式过分割”。第四节提出在字符串水平训练识别系统,并提出了使用GTN和语言语义结合进行识别。GTN与HMM类似。
E. 全局训练系统
最小化全局误差,级联模型Xn=Fn(Wn,Xn−1)X_n = F_n(W_n,{{X_n}_-}_1), XnX_n 是模块输出,如果全局损失EpE^p 对于XnX_n 的偏导已知,可计算其对WnW_n 和Xn−1){{X_n}_-}_1) 的偏导
上述第一个公式计算Ep(W)E^p(W) 的梯度的一些项,第二个公式进行反向再现。这是全局误差最小化的雏形,每个模块称为Graph Transformer,文中第5,6,8节有详细介绍。
2.CNN for isolated character recognition
传统的基于梯度下降神经网络的识别精度由特征设计的好坏决定,对于字符识别,可以使用原始图像作为网络输入,而使用前向传播全连接神经网络实现存在两个问题:1)需要大量节点,权值和存储空间,主要问题是不具备对平移和扭曲的不变特性; 2)忽略了图像的拓扑结构,像边缘、角点等特征对于识别具有重要意义。CNN的目标就将隐层的接受域限制在局部内。
CNN引入了三个特点使得它对平移,旋转和扭曲不变,即:局部接受域,权值共享和时空下采样,经典的网络结构LeNet-5如下图所示:
LeNet-5第一个隐含层有六个特征图,每个特这图上的节点具有25个输入,与输入层的5*5的区域相对应,接受域可重叠。特征图上所有节点共享相同的权值和偏量,其他特征图使用其他的共享权值和偏量。卷积网络带来的效果是,如果输入图像有平移,那么特征图有对对应的平移。文中举了数字“7”作为例子,“7”在左上和右下角分别有个endpoint,在右上角有个角点,网络只需检测出这些局部特征就可判断输入数字是否是“7”。实际上,不仅是特征与位置无关,不同样本的特征位置不同会影响识别效果。文中采用了下采样解决这个问题,上图第二个隐层即是下采样层,接受域的大小是2*2,即分别对行列下采样两倍,对上一层每个特征图都进行下采样,得到六个响应。接下来的层就交替进行卷积和下采样,在每一层,特征图个数增加的同时分辨率降低。
文中介绍每个卷积层和下采样层的细节比较容易理解,F6是全连接层,具有84个节点,节点i的输出为:
xi=f(ai)=Atanh(Sa)x_i = f(a_i) = A tanh(Sa)
A代表赋值,S为斜率。F6的输出层是每一类的Euclidean RBF,即:
yi=∑j(xj−wij)2y_i = \sum_j(x_j-{w_i}_j)^2
输出RBF节点计算输入向量与参数向量之间的距离。给定一个输入模式,损失函数应获得与该模式对应类别RBF参数向量接近的F6结构。
损失函数:为了解决传统的最大似然估计(MLE)中RBF参数学习引起的“collapsing effect”,文中使用了以下训练准则:
主要目的还是最大化正确类别DpD_p 的后验概率,降低对正确类别的惩罚同时提高对错误分类的惩罚。
3.实验结果及与其他方法比较
MNIST 数据库,60 000训练,10 000测试。主要体现了训练库的大,并通过水平竖直方向平移,缩放,挤压等操作增加540 000个训练样本,测试错误率降至0.8%。
相关文章推荐
- Android NDK 调用方法发生java.lang.UnsatisfiedLinkError
- android Sqlite 模板 。
- iOS app调试的黑魔法--第三方库
- Android的一些常用命令提示符(cmd)指令[转]
- Android开发—随笔
- QT for Android 使用Item作为QML根对象
- IOS开发学习实例之微信消息页
- Swift实战训练百度在线音乐案例
- instancetype和id的区别,objective-c
- android中MVP模式
- android ScrollView嵌套Listview
- IOS如何让App运行的时候不进入锁屏状态
- iOS后台定位实现
- iOS开发中属性最常用的关键字及其定义
- 关于JKAlertDialog在多个视图控制器跳转后不能正常显示的问题的解决--IOS
- Xamarin iOS教程之显示和编辑文本
- Android Application类注意事项
- hdu 1041 (OO approach, private constructor to prevent instantiation, sprintf)
- Android 发展 ------------- Unable to resolve target 'android-19'
- android 内存泄露浅谈和处理