文章目录
Recurrent Neural Network (RNN)
Example Application: Slot Filling(把单词切割出来)
用前面学过的神经网络(Feedforward network)来做
How to represent each word as a vector?(如果表示一个单词?向量)
1-of-N encoding
Beyond 1-of-N encoding
Dimension for “Other” (增加一个”other“)
Word hashing(三个字母为一组)
产生的问题:如何判断这个地点是出发的地点还是到达的地点?(用带有”记忆“的神经网络来做,RNN)
Recurrent Neural Network (RNN)
The output of hidden layer are stored in the memory.(特别之处)
举例RNN如何运作:
变体:
Elman Network (上面学的)
Jordan Network (输出记忆,带有标签)
Bidirectional RNN (视野更广,考虑一前一后)
Long Short-term Memory (LSTM)
上面的都是simple RNN,这个LSTM才是终极版(4个input(这4个信号都是机器自己学的),1个output,激活函数用sigmoid,介于0~1,衡量门开闭程度)
LSTM运作见PPT(略)
LSTM对比Original Network(参数量是 它的4倍,4个信号输入(都是要机器自己学习的))
解释LSTM与RNN的关系(如何带有记忆性)
现在更加复杂的LSTM(记忆的值,当前输出的值都加到下一个输入上来)
Don’t worry if you cannot understand this. Keras can handle it.
Keras supports “LSTM”, “GRU”, “SimpleRNN” layers
RNN如何训练(BPTT,本质上还是gradient descent,不过要考虑整体训练)
RNN不好训练,会产生梯度爆炸(clipping)或者梯度消失(LSTM)问题
解释为什么会产生梯度爆炸的问题(蝴蝶效应)
解决梯度消失的问题(LSTM),并解释为什么可以(RNN每一次都会洗掉存的值,而LSTM只有在forget gate 关闭的时候才会洗掉)
RNN的更多应用
多对一
情感识别
关键字抽取
多对多
语音辨识
机器翻译
序列转化为结构
Sequence-to-sequence Auto-encoder - Text
Sequence-to-sequence Auto-encoder - Speech
Demo: Chat-bot
Demo: Video Caption Generation
Demo: Image Caption Generation
RNN进阶:Attention-based Model
应用举例:
Reading Comprehension
Visual Question Answering
Speech Question Answering