循环神经网络

来自iCenter Wiki
跳转至: 导航搜索

循环网络

循环网络(Recurrent Networks,简称RNN)

在时间维度上,每一个时间步处理时,采用共享的权重

用于序列建模预测问题:

  1. 手写识别handwriting recognition
  2. 语音识别speech recognition
  3. 诗歌填词poem compose
  4. 股价预测stock price
  5. 天气预测weather forecast
  6. 机器翻译machine translation
  7. 图片注释image caption


用于序列建模预测问题。

循环网络结构

  1. y是训练目标
  2. L是损失函数
  3. o是输出
  4. h是状态(隐藏单元)
  5. x是输入

计算图的时间步上展开,循环神经网络是不同的时间步上采用相同的U、V、W参数

  1. 输入到隐藏的连接由权重矩阵U 参数化
  2. 隐藏到输出的连接由权重矩阵V 参数化
  3. 隐藏到隐藏的循环连接由权重矩阵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/.