FastGRNN: A Fast, Accurate, Stable and Tiny Kilobyte Sized Gated Recurrent Neural Network
arXiv:1901.02358
Abstract
This paper develops the FastRNN and FastGRNN algorithms to address the twin RNN limitations of inaccurate training and inefficient prediction. Previous approaches have improved accuracy at the expense of prediction costs making them infeasible for resource-constrained and real-time applications. Unitary RNNs have increased accuracy somewhat by restricting the range of the state transition matrix's singular values but have also increased the model size as they require a larger number of hidden units to make up for the loss in expressive power. Gated RNNs have obtained state-of-the-art accuracies by adding extra parameters thereby resulting in even larger models. FastRNN addresses these limitations by adding a residual connection that does not constrain the range of the singular values explicitly and has only two extra scalar parameters. FastGRNN then extends the residual connection to a gate by reusing the RNN matrices to match state-of-the-art gated RNN accuracies but with a 2-4x smaller model. Enforcing FastGRNN's matrices to be low-rank, sparse and quantized resulted in accurate models that could be up to 35x smaller than leading gated and unitary RNNs. This allowed FastGRNN to accurately recognize the "Hey Cortana" wakeword with a 1 KB model and to be deployed on severely resource-constrained IoT microcontrollers too tiny to store other RNN models. FastGRNN's code is available at https://github.com/Microsoft/EdgeML/.
arXiv comment23 pages, 10 figures, Published at Advances in Neural Information Processing Systems (NeurIPS) 2018
References in corpus (13)
- Adam: A Method for Stochastic Optimization
- On the difficulty of training Recurrent Neural Networks
- Recurrent Neural Network Regularization
- On the Properties of Neural Machine Translation: Encoder-Decoder Approaches
- Speech Commands: A Dataset for Limited-Vocabulary Speech Recognition
- A Simple Way to Initialize Recurrent Networks of Rectified Linear Units
- Regularizing and Optimizing LSTM Language Models
- Quasi-Recurrent Neural Networks
- Tying Word Vectors and Word Classifiers: A Loss Framework for Language Modeling
- Exploring Sparsity in Recurrent Neural Networks
- Full-Capacity Unitary Recurrent Neural Networks
- Tunable Efficient Unitary Neural Networks (EUNN) and their application to RNNs
- Learning Compact Recurrent Neural Networks with Block-Term Tensor Decomposition
Cited by in corpus (6)
- Machine Learning for Microcontroller-Class Hardware: A Review
- Continual Learning for Recurrent Neural Networks: an Empirical Evaluation
- Neural Network for Low-Memory IoT Devices and MNIST Image Recognition Using Kernels Based on Logistic Map
- Compressing RNNs for IoT devices by 15-38x using Kronecker Products
- A Method for Medical Data Analysis Using the LogNNet for Clinical Decision Support Systems and Edge Computing in Healthcare
- Efficient Visual Recognition with Deep Neural Networks: A Survey on Recent Advances and New Directions