循环神经网络
循环网络
循环网络(Recurrent Networks,简称RNN)
在时间维度上,每一个时间步处理时,采用共享的权重
用于序列建模预测问题:
- 手写识别handwriting recognition
- 语音识别speech recognition
- 诗歌填词poem compose
- 股价预测stock price
- 天气预测weather forecast
- 机器翻译machine translation
- 图片注释image caption
…
用于序列建模预测问题。
循环网络结构
- y是训练目标
- L是损失函数
- o是输出
- h是状态(隐藏单元)
- x是输入
计算图的时间步上展开,循环神经网络是不同的时间步上采用相同的U、V、W参数
- 输入到隐藏的连接由权重矩阵U 参数化
- 隐藏到输出的连接由权重矩阵V 参数化
- 隐藏到隐藏的循环连接由权重矩阵W 参数化
Bidirectional RNN
双向RNN 结合时间上从序列起点开始移动的RNN 和另一个时间上从序列末尾开始移动的RNN。
双向RNN,其中h(t) 代表通过时间向前移动的子RNN 的状态,g(t) 代表通过时间向后移动的子RNN 的状态。
输出单元o(t) 能够计算同时依赖于过去和未来且对时刻t 的输入值最敏感的表示
用于手写识别和语音识别
LSTM
LSTM是RNN的一个改进,LSTM增加了一个主输入单元和其他三个辅助的门限输入单元:
记忆单元(memory cell)、输入门(input gate)、遗忘门(forget gate)及输出门(output gate)。
三个辅助输入分别控制网络是否输入,是否存储输入以及是否输出。
输入门(Input gate)控制是否输入,遗忘门(Forget gate)控制是否存储,输出门(Output gate)控制是否输出。
辅助单元可以寄存时间序列的输入,在训练过程中会利用后向传播的方式进行。
记忆单元和这些门单元的组合,大大提升了RNN处理远距离依赖问题的能力 ,解决RNN网络收敛慢的问题。
GRU
GRU (Gated Recurrent Unit)是Cho等提出的LSTM的简化版本,也是RNN的一种扩展。
GRU单元只有两个门:
重置门(reset gate),如果重置门关闭,会忽略掉历史信息,即历史不相干的信息不会影响未来的输出。
更新门(update gate),将LSTM的输入门和遗忘门合并,用于控制历史信息对当前时刻隐层输出的影响。如果更新门接近1,会把历史信息传递下去。
参考文献
[x] Long short term memory neural computation, Neural computation 9 (8), 1735-1780, 1997.
[x] K. Cho et al., On the Properties of Neural Machine Translation Encoder-Decoder Approaches, SSST-8, 2014.
[x] Connectionist temporal classification labelling unsegmented sequence data with recurrent neural networks, ICML 2006.
[x] Speech recognition with deep recurrent neural networks, ICASSP 2013.
[x] Towards End-To-End Speech Recognition with Recurrent Neural Networks, ICML 2014.
[x] Speech 2 End-to-End Speech Recognition in English and Mandarin, JMLR 2016.
[x] Andrej Karpathy blog, The Unreasonable Effectiveness of Recurrent Neural Networks, http://karpathy.github.io/2015/05/21/rnn-effectiveness/.