LSTM: The Long-Short Term Memory architecture (LSTM) [1]}, is a variation of the traditional Recurrent Neural Networks (RNNs), and was created to mitigate the exploding and vanishing gradient problems found in simple RNNs. An LSTM layer consists of a predefined set of recurrent blocks, each one of them containing cells. These cells have three types: the input, output and forget gates and serve the purpose of updating, or not, the cell state, erasing its memory and deciding if the cell output should be available. With this architecture, an LSTM layer can store information for later use, preventing gradients from vanishing during the learning process, and can also determine what information to ignore, therefore, allowing the network to remember important information for a longer period of time.
