循环独立LSTMs

本文受到IndRNN的启发,在此基础上提出了一种更加通用的新的LSTM:IndyLSTMs。与传统LSTM相比循环权重不再是全矩阵而是对角矩阵;在IndyLSTM的每一层中,参数数量与节点个数呈现线性关系而传统的LSTM则为二次,此特性使模型更小更快。与传统的LSTM相比,尽管IndyLSTMs的尺寸较小,但在每个参数的精确度和总体精度方面,它始终优于常规LSTMs。作者将这种性能的改进归功于IndyLSTMs不太容易过度拟合。在速度方面,作者使用IAM-OnDB数据集训练的模型进行对比,结果为使用IndyLSTMs的模型的预测速度平均大约要快20%。

论文地址:
https://arxiv.org/abs/1903.08023

引言

当手写体识别系统运行在用户个人终端时,内存消耗与计算资源占用将会一个重要的影响因素。由于IndyLSTM易训练及不易过拟合的特性,其模型不仅小而快,并且可以获取更好是识别效果。

IndyLSTMs

原始的LSTM

f t = σ ( W f [ h t − 1 , x t ] + b f ) f_t=\sigma(W_f[h_{t-1},x_t]+b_f) ft=σ(Wf[ht1,xt]+bf)
i t = σ ( W i [ h t − 1 , x t ] + b i ) i_t=\sigma(W_i[h_{t-1},x_t]+b_i) it=σ(Wi[ht1,xt]+bi)
C t ^ = t a n h ( W C [ h t − 1 , x t ] + b C ) \hat{C_t}=tanh(W_C[h_{t-1},x_t]+b_C) Ct^=tanh(WC[ht1,xt]+bC)
C t = f t ∗ C t − 1 + i t ∗ C t ^ C_t=f_t*C_{t-1}+i_t*\hat{C_t} Ct=ftCt1+itCt^
o t = σ ( W o [ h t − 1 , x t ] + b o ) o_t=\sigma(W_o[h_{t-1},x_t]+b_o) ot=σ(Wo[ht1,xt]+bo)
h t = o t ∗ t a n h ( C t ) h_t=o_t*tanh(C_t) ht=ottanh(Ct)

更新的LSTM单元

首先将LSTM单元更新为如下所示:

其中 c t c_t ct为细胞状态, f t 、 i t 、 o t f_t、i_t、o_t ftitot分别为遗忘门、输入门、输出门, h t h_t ht为隐藏状态。
输入维度为 n n n,隐藏层为 m m m,矩阵 W [ f ∣ i ∣ o ∣ c ] ] W_{[f|i|o|c]]} W[fioc]]尺寸为 m × n m \times n m×n,矩阵 U [ f ∣ i ∣ o ∣ c ] U_{[f|i|o|c]} U[fioc]的尺寸为 m × m m \times m m×m,偏置 b [ f ∣ i ∣ o ∣ c ] b_{[f|i|o|c]} b[fioc]的维度为 m m m

输出/隐藏状态的每个元素的取决于输入向量 x t x_t xt的所有元素,以及 o t − 1 、 h t − 1 o_{t-1}、h_{t-1} ot1ht1的所有元素。

IndyLStm

现在将式(3)重写为:

使用 u [ f ∣ i ∣ o ∣ c ] ⊙ h t − 1 u_{[f|i|o|c]} \odot h_{t-1} u[fioc]ht1代替 U [ f ∣ i ∣ o ∣ c ] h t − 1 U_{[f|i|o|c]}h_{t-1} U[fioc]ht1即用element-wise乘法代替matrix-vector乘法, u [ f ∣ i ∣ o ∣ c ] u_{[f|i|o|c]} u[fioc]的维度为 m m m
输出/隐藏状态的每个元素取决于输入向量 x t x_t xt的所有元素,以及 h t − 1 h_{t-1} ht1 c t − 1 c_{t-1} ct1相应位置的元素。
公式(4)即为IndyLSTM。

参数数量对比

假设输入为 n n n维向量,输出为 m m m维向量,LSTM的参数个数为 4 m n + 4 m 2 + 4 m = 4 m ( n + m + 1 ) 4mn+4m^2+4m=4m(n+m+1) 4mn+4m2+4m=4m(n+m+1),分别表示 W [ f ∣ i ∣ o ∣ c ] ] W_{[f|i|o|c]]} W[fioc]] U [ f ∣ i ∣ o ∣ c ] U_{[f|i|o|c]} U[fioc] b [ f ∣ i ∣ o ∣ c ] b_{[f|i|o|c]} b[fioc]的尺寸;而IndyLSTM的参数个数为 4 m n + 4 m + 4 m = 4 m ( n + 2 ) 4mn+4m+4m=4m(n+2) 4mn+4m+4m=4m(n+2),分别表示 W [ f ∣ i ∣ o ∣ c ] ] W_{[f|i|o|c]]} W[fioc]] u [ f ∣ i ∣ o ∣ c ] u_{[f|i|o|c]} u[fioc] b [ f ∣ i ∣ o ∣ c ] b_{[f|i|o|c]} b[fioc]的尺寸。理论上,IndyLSTM的每一步的计算成本大约是LSTM的 n n + m \frac{n}{n+m} n+mn

Tensorflow实现

在TensorFlow 1.10.0版本中,IndyLSTMs的实现可以通过tf.contrib.rnn.IndyLSTMCell获取。

实验模型

使用在线手写识别作为模型问题,在对比IndyLSTMs和常规LSTMs。
模型采用一层或多层的端到端双向循环结构。
实验采用的模型结构

数据集

作者使用3个数据集进行实验:IAM-OnDB、CASIA以及In-house。
IAM-OnDB数据集是目前最常用的在线手写识别数据集。
CASIA是一个中文手写数据集。
In-house数据集为实验内部数据集。

实验结果

CER表示字符错误率。图表中 5 × 224 5 \times 224 5×224表示深度layers和宽度nodes。

IAM-OnDB数据集

基于IndyLSTM和LSTM单元的模型的CER对比

CASIA 数据集

基于IndyLSTM和LSTM单元的模型的CER对比

In-house数据集及模型

不同语言下最优IndyLSTM模型与LSTM模型对比

训练与预测速度

####训练速度
在IAM-OnDB数据集上,当模型的深度和宽度相同时,IndyLSTM模型与LSTM模型相比,大约需要多训练1.8个epoch。而另外两个数据集则基本相同。

预测速度

使用IAM-OnDB数据集训练的模型进行对比,结果为使用IndyLSTMs的模型的预测速度平均大约要快20%。

过拟合

不同模型在测试集上的CER对比
不同模型的training loss
基于LSTM的模型,在training loss消失之后,test的错误率开始上升。而基于IndyLSTM的模型,test的错误率是平稳和趋于收敛的

结论

1)IndyLSTM模型更小更快更适合安装在资源受限的个人设备上。
2)IndyLSTM模型的准确度大多数情况下要优于LSTM模型。
3)LSTM模型更容易过拟合。



扫码识别关注,获取更多论文解读

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值