目录
3. Long Short-term Memory (LSTM)
7. Another model —— Attention-based Model
9. Is structured learning practical?
对于有些问题,比如下图中,对于这两句话中的Taipei这个词,在上面那句话中我们希望把它丢进network,最后输出的结果是dest,在下面那句话中我们希望把它丢进network,最后输出的结果是place of departure。如果用Feedforward network,对于同样的输入,只能输出一样的结果,所以它没办法做到输入Taipei,有时候输出dest、有时候输出place of departure。
那这个时候我们就需要选择一个有记忆力的neural network,它可以根据一段话的上下文产生不同的output,从而做到input同样的词汇,output不同的结果这件事情。这种有记忆力的neural network就叫做RNN。
-
1. 简单RNN的架构
对于RNN来说,改变input的sequence order,就会改变output。
RNN的架构可以任意设计,例如deep的RNN:
-
2. RNN的变形
上面介绍的是Elman Network。Elman Network是把hidden layer的值存起来,在下一个时间点再读出来。Jordan Network存的是整个network的output的值,把output的值在下一个时间点再读出来。
RNN也可以是双向的——Bidirectional BNN
-
3. Long Short-term Memory (LSTM)
LSTM是现在常用的memory。
LSTM的实际应用中一层的架构部分如下,input进cell的数据除了有x^t之外,还有c^(t-1)和h^(t-1):
Multiple-layer LSTM:
Keras支持三种RNN:“LSTM”, "GRU"(LSTM的简化版本), "SimpleRNN"
-
4. LSTM v.s. Original Network
LSTM相当于把Original Network里面的neuron换成LSTM的cell。
对于Original Network,一个neuron有一个input和一个output,而对于LSTM,一个cell需要4个input才能产生一个output。
在LSTM和Original Network的neuron数目一样的时候,LSTM需要的参数量是Original Network的4倍。
-
5. Learning
RNN的training是用Gradient descent。Gradient descent用在Feedforward network里面,要使用一个比较有效的演算法——Backpropagation。在RNN中,Gradient descent的原理是一样的,它使用的演算法是Backpropagation的进阶版——Backpropagation through time (BPTT),BPTT考虑了时间的information。
RNN-based network is not always easy to learn. 下图中绿色的线是RNN训练中的loss变化曲线:
RNN的error surface是非常崎岖的,如下图:
下面举个例子说明RNN的error surface为什么会非常崎岖。如下图,w在0.01到0.99之间的时候,梯度变化都是非常小的,而从0.99到1再到1.01,梯度变化幅度瞬间变得很大。
LSTM可以解决gradient vanishing的问题,使得error surface不会有太平坦的地方,让error surface不那么崎岖。那么我们在做LSTM的时候大部分地方都变化很剧烈,这样就可以在learning rate特别小的情况下进行训练。
Clockwise RNN和SCRN也可以用来处理gradient vanishing的问题:
-
6. RNN more applications
以上我们讨论的application都是基于Sequence Labeling的问题,RNN可以做到更多更复杂的事情。
RNN可以做到更复杂的事情如下:
① Input is a vector sequence, but output is only one vector.
② Both input and output are both sequences, but the output is shorter. (Many to Many, output is shorter)
E.g. 语音辨识系统 CTC
③ Both input and output are both sequences with different lengths. → Sequence to sequence learning. (Many to Many, no limitation)
E.g. Machine Translation
④ Beyond Sequence
-
7. Another model —— Attention-based Model
除了RNN以外,还有另外一种有用到memory的network,叫做Attention-based Model,它可以当做是RNN的一个进阶的版本:
Attention-based Model v2,这一个版本不只有读的功能,还可以把资讯写到Memory里面去,如下图:
Attention-based Model的应用:
①Reading Comprehension
②Visual Question Answering
③Speech Question Answering
-
8. Deep v.s. Structured
Deep Learning和Structured Learning是可以结合起来的,而且 这两部分可以一起用Gradient descent来做training。
Deep Learning和Structured Learning结合的应用:
Speech Recognition: CNN/LSTM/DNN + HMM
Semantic Tagging: Bi-directional LSTM +CRF/Structured SVM
Deep and Structured will be the future.
-
9. Is structured learning practical?
这里以GAN网络为例进行了说明,GAN网络在Lecture 6中进行学习,学完回来再听这一部分!!