1.序列模型的应用

2.循环神经网络(Recurrent Neural Network, RNN)



RNN的输入序列和输出序列的长度不一定一致。RNN也有不同的架构。

3.使用RNN构建一个语言模型(language model)
对于一个语言识别任务,对于一个输入的文本序列,语言模型能够给出对应的概率。
如何训练这样一个语言模型?
训练集:一个大的文本语料库(text corpus)。
例如,对于这样一个句子:Cats average 15 hours of sleep a day. 模型这样训练:

损失函数

为了解决RNN的梯度消失(vanishing gradient)问题,可以使用GRU(Gate Recurrent Unit门控循环单元) 或者LSTM(long short term memory units 长短期记忆网络)。
4.双向RNN(bidirectional RNN)
该模型可以让你在序列的某点处,不仅可以获取之前的信息,还可以获取未来的信息。
**例如,**在"He said, Teddy Roosevelt was a great predient!"这段文本中,判断 "Teddy" 是不是人名,不仅要考虑之前的信息,还要考虑之后的信息。

5.深层RNN
当网络需要学习更为复杂的函数时,可以把RNN进行堆叠,构建更深的模型。
