Lecture 4(Extra Material):RNN

目录

1. 简单RNN的架构

2. RNN的变形

3. Long Short-term Memory (LSTM)

4. LSTM v.s. Original Network

5. Learning

6. RNN more applications

7. Another model —— Attention-based Model

8. Deep v.s. Structured

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中进行学习,学完回来再听这一部分!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值