论文:用RNN书写及识别汉字, Drawing and Recognizing Chinese Characters with Recurrent Neural Network

论文地址:用RNN书写及识别汉字

摘要

目前识别汉字的通常方法是使用CNN模型,而识别在线(online)汉字时,CNN需要将在线手写轨迹转换成像图像一样的表示。文章提出RNN框架,结合LSTM和GRU。包括识别模型和生成模型(即自动生成手写体汉字),基于端到端,直接处理序列结构,不需要像转换成图像表示,也不需要任何特定领域的知识。生成模型中,使用了字符嵌入的条件生成模型。用的库是ICDAR-2013.

  • 注:识别汉字最重要的领域知识包括: 字符形状正则化,方向分解特征映射

1.介绍

  自动手写体识别已经研究了很久,但是自动书写并没有得到很好的研究,知道最近,基于RNN的生成序列技术得到发展.
   汉字识别两类主流方法

  • online:在线识别,记录和分析笔尖运动轨迹,识别语言信息
  • offline:离线识别,对字符(灰度或二进制)图像进行分析和分类

卷积的先验知识,使得CNN 成为图片识别的强有力工具,因为离线字符被表示为图像,因此CNN自然而然的被应用于离线识别。而将CNN用于在线识别的话,就需要将手写轨迹转换成为图像一样的表示,譬如AMAP,the path signature maps, the directional feature maps.
文章提到一些生成工具:NADE , variational auto-encoder , DRAW. 为了更好地模拟生成过程,GAN(生成对抗网络)被用来同时训练一个生成器来捕获数据分布,以及一个鉴别器来区分min-max优化框架中的真实样本和生成的样本。
DCGAN,LAPGAN都可以用于生成汉字,但是他们忽略了手写轨迹(时间顺序,及轨迹)。
文章提出一种基于RNN的条件生成模型,而且利用字符嵌入来训练生成模型。

2.在线手写汉字的表示

  1. 书写的动态过程可以用变长序列表示
    序列表示
    其中 x i , y i x_i, y_i xi,yi表示笔的移动, s i s_i si表示点 i i i属于哪一划, 书写顺序也得到保存。

  2. 预处理
    移除多余的点

    如图所示,文章假设 s i = s i − 1 = s i + 1 s_i=s_{i-1}=s_{i+1} si=si1=si+1,移除的两个条件是

(6)式用到了余弦相似性
其中超参数 T d i s t = 0.01 × m a x { H , W } T_{dist}=0.01\times max\lbrace H, W\rbrace Tdist=0.01×max{H,W}( H H H为高度, W W W为宽度), T c o s = 0.99 T_{cos} = 0.99 Tcos=0.99

坐标标准化过程
投影(4)式;计算平均值(5)式;计算偏差(6)式;计算标准差(7)式;得到新值(8)式

Ω \Omega Ω代表所有直线的集合,这些直线连接两个连续点(即为同一划)


标准化后x-y轴上的偏差也得到规范化。

3.识别模型:RNN端到端的识别

在这里插入图片描述
六维表示: Δ x i = x i + 1 − x i \Delta x_i = x_{i+1}-x_i Δxi=xi+1xi, Δ y i = y i + 1 − y i \Delta y_i = y_{i+1}-y_i Δyi=yi+1yi.指示函数Ⅱ(等式成立取1,否则取0)此处 [ 0 , 1 ] [0,1] [0,1]表示pen-up, [ 1 , 0 ] [1,0] [1,0]表示pen-down
为了方便表示用 [ x 1 , x 2 , . . . , x k ] [x_1,x_2, ..., x_k] [x1,x2,...,xk]代替 [ L 1 , L 2 , . . . , L n − 1 ] [L_1,L_2,..., L_{n-1}] [L1,L2,...,Ln1] ;值得注意的是 x i x_i xi代表的是6维向量
RNN模型中,输入序列为 [ x 1 , x 2 , . . . , x k ] [x_1,x_2, ..., x_k] [x1,x2,...,xk],每一个时间步都产生一个隐含态,得到 [ h 1 , h 2 , . . . , h k ] [h_1,h_2, ..., h_k] [h1,h2,...,hk]。计算方式是 h t = f { x t , h t − 1 } h_t = f\lbrace x_t,h_{t-1}\rbrace ht=f{xt,ht1} f f f为递归变换函数
输出序列 [ y 1 , y 2 , . . . , y k ] [y_1,y_2, ..., y_k] [y1,y2,...,yk] y t = g ( h t ) y_t = g(h_t) yt=g(ht)得到

论文分别介绍了LSTM与GRU

long Short Term Memory
Gated Recurrent Unit
Stacked and Bidirectional RNN (图三有体现)


图中可以看出RNN模型是堆叠双向的。从左至右 [ x 1 , x 2 , . . . , x k ] [x_1, x_2,...,x_k] [x1,x2,...,xk]输入正向循环层得到 [ h 1 , h 2 , . . . , h k ] [h_1, h_2,...,h_k] [h1,h2,...,hk].同时 [ x k , x k − 1 , . . . , x 1 ] [x_k, x_{k-1},...,x_1] [xk,xk1,...,x1]输入反向循环层得到 [ h 1 ′ , h 2 ′ , . . . , h k ′ ] [h'_1, h'_2,...,h'_k] [h1,h2,...,hk], 为了做最后的分类,组合所有的隐含状态从而获得输入序列的固定长度表示(Fixed Length Feature):

用于输入fully connected layer 和 softmax layer, 做最后的分类。
图三中也可看出在池化层和全连接层,均采用了dropout策略。

测试程序的两种策略

  1. 直接将序列输入RNN去分类
  2. 用sequential dropout得到子序列,然后融合这些子序列的分类结果来做基于集合的决策
    成功的关键
    规范化以及大量的训练数据

初始化及优化
初始化相关的值,文章中用的优化方法是Adam(基于低阶矩的自适应估计)

4 识别汉字实验

测试数据库使用的是ICDAR-2013,训练数据库是CASIA(包括OLHWDB1.0和OLHWDB1.1) ;训练数据有2,693,183 个;测试数据有 224,590 个。字符类数为3755(一级汉字个数).
预处理之后,每个字符的序列长度为50。从图三可以看出使用dropout可以提高泛化能力,在池化层和全连接层dropout概率设置为0.1。 优化算法Adam抽取1000个小批量样本,学习率初始化为0.001,当训练数据的花销和准确率不在提高时,学习率减小通过*0.3.每一轮过后,将训练数据重新打乱并选取不一样的小批量样本。实验环境为Theano,使用平台为NVIDIA Titan-X 12G GPU。
Table1 几种网络的比较
从图中可以看出

  • NET2比1好,NET4比3好,NET4最好,NET5,6与4较接近。
  • LSTM通常有较高的训练集准确率,但不一定有更高的测试准确率。这可能表明GRU能更好的避免过拟合。
  • 从内存消耗,训练时间以及测试速度得出结论GRU比LSTM好
    Table1
    当recurrent层往三层以上再增加时,性能不会在提升。
    可能的原因是:
  • 循环单元在每个时间步都保持activations, 使得RNN模型已经足够深,堆叠更多层不会带来额外的鉴别能力
  • 增加stacked recurrent层,训练和测试时间都在增加。

Table 2 从随机dropout生成的子序列中测试基于集成决策的准确率

-当子序列达到30时,比全序列好。

与其他方法的比较

集成NET1–NET6,准确率可以达到98.15%,最高。

生成模型:自动书写汉字

生成模型的目的在于学习 P ( y ∣ x ) P(y|x) P(yx),另一方面,生成模型的目的是学习 P ( x ) , P ( x ∣ y ) P(x),P(x|y) P(x),P(xy). 通过对序列分布建模,生成模型能用来书写汉字。

条件生成RNN模型
为了模拟笔迹序列的分布,采用了生成RNN模型。
考虑到汉字数量庞大,将结合RNN模型对字符嵌入进行训练。
生成模型基于GRU,

Gaussian mixture model 用于笔向建模

下一笔方向 d t + 1 d_{t+1} dt+1的概率密度为

SoftMax model 用于笔的状态建模

在这里插入图片描述
训练过程,书写过程

书写汉字实验

生成模型中,字符嵌入的维数是500. 低维(式子25,26中)要转换为高维。GRU中的隐含层为1000。输出向量是300维(式子31)
用Adam进行训练。学习率设置为0.001, 小批量样本数为500.
训练过程说明
图6 到了第50轮的时候,能容易地被人识别。使用Adam,60轮就收敛了。
与传统的具有动量的随机梯度下降法(SGD)相比,Adam优化算法在生成RNN模型中的表现要好得多。

质量分析

图9a表明对于大多数类来说真实样本和生成样本的识别率差不多,但是有一些特殊的类表示出较大的差异。经过分析可以看出,这些字符通常来自易混淆类,在这些例子中,生成模型不能捕捉到那些微小但重要的细节,从而精确地绘制出特定的字符,因此与真实样本相比,生成的字符的准确性大大降低。

故为了改善生成字符的质量,作者说将更加注意相似/混淆的字符类。
解决办法

  • 修改损失函数
  • 将注意机制和记忆机制与生成RNN模型相结合,使模型能够在书写过程中动态记忆并聚焦于特定字符的关键区域

结论及期望

  • 将条件生成RNN模型与字符嵌入联合训练,使模型能够正确地写入上千个不同的字符。采用高斯混合模型对书写方向进行建模,保证了书写风格的多样性。
  • 生成RNN模型可以通过对三种离散的pen-states进行建模,自动决定何时以及如何完成绘制过程
  • 一个有趣的未来方向是利用所提出的方法作为构建块的草书手写中文文本的合成。
其他知识点
  • A ⨀ B A \bigodot B AB ; A 和 B 的逐元素乘积(Hadamard 乘积)
    在这里插入图片描述
  • 超参数(hyper-parameters ):是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。

未明白部分

  1. The RNN computes activations for each timestep which makes them extremely deep and can lead to vanishing or exploding gradients [29]. The choice of the recurrent computation f can have a big impact on the success of RNN because the spectrum of its Jacobian controls whether gradients tend to propagate well (or vanish or explode)
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是几篇使用循环神经网络(Recurrent Neural NetworkRNN)进行股票价格预测的高引用论文: 1. Hochreiter, S., & Schmidhuber, J. (1997). Long short-term memory. Neural computation, 9(8), 1735-1780. 这篇经典论文提出了一种新的循环神经网络模型——长短时记忆网络(Long Short-Term Memory,LSTM),用于解决循环神经网络在长序列上的梯度消失问题。LSTM在很多序列预测任务上表现出色,包括股票价格预测。 2. Zhang, G. P., & Qi, M. (2005). Neural network forecasting for seasonal and trend time series. European Journal of Operational Research, 160(2), 501-514. 这篇论文探讨了使用神经网络对季节性和趋势时间序列进行预测的问题,提出了一种基于循环神经网络的新方法,并在股票价格预测中进行了实验。 3. Zhang, G. P., Patuwo, B. E., & Hu, M. Y. (1998). Forecasting with artificial neural networks: The state of the art. International Journal of Forecasting, 14(1), 35-62. 这篇综述性论文介绍了使用神经网络进行时间序列预测的研究进展,包括循环神经网络。论文讨论了神经网络在股票价格预测中的应用,并列举了多篇相关的研究论文。 4. Singh, P. K., & Kumar, S. (2018). Recurrent neural network based stock price prediction using financial news and technical indicators. Expert Systems with Applications, 107, 111-122. 这篇论文结合了股票市场的基本面和技术面因素,使用循环神经网络模型进行股票价格预测,并与传统的时间序列模型进行了比较。实验结果表明,循环神经网络模型在股票价格预测中具有更好的表现。 5. Zhang, H., Shen, H., Wang, Y., & Liu, Z. (2020). A hybrid stock price prediction model using RNN and particle swarm optimization. IEEE Access, 8, 44506-44515. 这篇论文提出了一种混合模型,将循环神经网络和粒子群优化算法相结合,用于股票价格预测。实验结果表明,该模型可以更准确地预测股票价格,并具有更强的泛化能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值