FastGRNN: A Fast, Accurate, Stable and Tiny Kilobyte Sized Gated Recurrent Neural Network
About
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/.
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Sentiment Analysis | IMDB (test) | Accuracy86.2 | 248 | |
| Sequential Image Classification | PMNIST (test) | Accuracy (Test)94.8 | 77 | |
| Sequential Image Classification | MNIST Sequential (test) | Accuracy99.1 | 47 | |
| Keyword Spotting | Google Speech Commands Google12 V2 (test) | Accuracy94.8 | 22 | |
| Image Classification | noise padded CIFAR-10 (test) | Test Accuracy45.8 | 21 | |
| Word-level prediction | PTB word-level (test) | Perplexity115.9 | 19 | |
| Human Activity Recognition | HAR-2 (test) | Test Accuracy95.6 | 8 | |
| Human Activity Recognition | HAR-2 | Accuracy96.1 | 7 | |
| System prediction | FitzHugh-Nagumo (test) | L2 Error220 | 6 |