Sequence to Sequence Learning with Neural Networks
Sequence to sequence learning with neural networks is a very effective method for predictions of sequences. Applications using sequence data are often in natural language processing (NLP) like speech recognition or machine translation. One example in this application field is available here. Other applications using big data with sequence to sequence models is deep learning in physics.
Sequence models are specific models because the occurrence of an element in the sequence (e.g. text, speech, measurement time series) is dependent on the elements that appeared before it. They enable various sequence predictions that are inherent different to other more traditional predictive modeling techniques or supervised learning approaches. In contrast to mathematical sets often used in machine learning, the sequence model imposes an explicit order on the input and output. This ordering of data needs to be preserved in training and inference. Sequence models are driven by application goals and include sequence prediction, sequence classification, sequence generation, and sequence-to-sequence prediction. More details can be found in our article on sequence models.
The neural network architecture is typically a LSTM Neural Network today. It introduces a ‘memory cell‘ structure into the underlying basic Recurrent Neural Network (RNN) architecture using four key elements: an input gate, a neuron with self-current connection, a forget gate, and an output gate. The LSTM is a specific type of an RNN. Those Networks are also useful for certain control tasks and can be used in deep reinforcement learning as described here. Another application popular application field is automatic video captioning. One interesting example in this context can be found here. Also for generic sequence predictions like multivariate time series these models are succesfully used. An example in this application area is available here.
The deep learning tool Keras supports the LSTM model via keras.layers.LSTM()that offers a wide variety of configuration options. Keras is a high-level deep learning library implemented in Python that works on top of existing other rather low-level deep learning frameworks like the Tensorflow Tool, CNTK, or Theano.
Sequence to Sequence Learning with Neural Networks Details
The following video offers more details:
— Big Data Tips (@BigDataTips) March 4, 2019