论文笔记 FastGRNN: A Fast, Accurate, Stable and Tiny Kilobyte Sized Gated Recurrent Neural Network

这篇是发表在NIPS2018的论文《FastGRNN: A Fast, Accurate, Stable and Tiny Kilobyte Sized Gated Recurrent Neural Network》,论文作者是微软印度研究院的Aditya Kusupati和德里印度理工学院、伯克利大学。

论文对带residual connection的FastRNN进行分析,理论证明FastRNN能有很好的训练收敛性能(解决梯度消失和梯度爆炸的能力)。另外提出了它的改进版本FastGRNN,增加可学习参数提升性能,通过weight复用、low-ranking、sparse和quantization减少参数和加速计算。

方法

FastRNN

  • 正常RNN$h_t=tanh(Wx_t+Uh_{t-1}+b)$变为下面
  • $\tilde{h_t}=\sigma(Wx_t+Uh_{t-1}+b)$
  • $h_{t}=\alpha\tilde{h_t}+\beta h_{t-1}$
    • 一般$\alpha<<1 \beta\approx 1-\alpha$
    • 都是可学习参数
    • 把当前算出来的$\tilde{h_t}$和之前的$h_{t-1}$结合

FastRNN解决病态gradients的证明

  • 没仔细看
  • Notation
    • T是RNN的timestep
  • Convergence Bound
    • 最大的iterations被bound在O(\frac{\alpha T}{\epsilon^2} \dot poly(L(\theta_0),R_W R_U R_v,\bar{D})),当$\alpha=O(1/T)$
  • Generalization Error Bound
    • Generalization error和T无关

FastGRNN

  • 使用Gated模型并增加一个可学习参数提升准确性
    • $z_t=\sigma(Wx_t+Uh_{t-1}+b_z)$
    • $\tilde{h_t}=tanh(Wx_t+Uh_{t-1}+b_h))$
    • $h_t=(\zeta(1-z_t)+v)\odot \tilde{h_t}+z_t\odot h_{t-1}$
    • 注意:W和U参数共享

压缩

  • Sparse low-rank
    • $W=W^1(W^2)^T,U=U^1(U^2)^T, ||W^i||_0\le s_w^i, ||U^i||_0\le s_u^i$
    • $W^i$是$R^{D\times r_w}$
    • $U^i$是$R^{D\times r_u}$
  • Byte Quantization
    • piecewise-linear approximation of the non-linear functions训练
    • 解决1.accuracy loss 2.非线性操作要转化成float算

训练

  1. 训练low-rank
    • 直接训练W1 W2的形式
  2. 训练
    • Iterative Hard Threshold(IHT)
  3. 固定支持参数{W,U}训练

实验

  • 语音唤醒任务
  • PTB
  • Pixel-MNIST
  • 结果
    • 直接用FastGRNN可以200KB->57KB,保持精度,减少一倍训练时间
    • 使用LSQ压缩后,57KB->5.5KB
    • 只是用LS压缩,大概22KB,Q压缩减少4倍数据

总结

FastRNN理论证明部分虽然看不懂,但是深度学习理论的魅力所在,从理论上分析才是正确的道路,不能瞎搞。FastGRNN压缩网络把RNN压缩了很多,改动不是很大,LSQ都是以前的方法,但是效果不错。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×