有哪些sequence model
Notation:
RNN - Recurrent Neural Network
传统NN 在解决sequence input 时有什么问题?
RNN就没有上面的问题. 注意这里还提到了BRNN 双向RNN的概念。
激活函数 g1 经常用的是tanh, 也有用relu的但是不常用
Backpropagation through time
Difference types of RNNs
Language model and sequence generation
language modelling 用来找出可能性最大的句子.
language model 训练好了以后,一个有趣的应用例子是自己创造句子, 也就是 sample novel sequences
Sample novel sequences
除了常见的word-level language model, 还有一种很不常见的character-level language model.
Vanishing gradient problem
因为RNN 每个word 最主要受到附近的word的影响,如果遇到下面图片里的setence 就处理不好. 遇到一个名词就需要记忆很久这个名词(cat)的单复数,直到遇到动词(was/were)这个不是RNN擅长的.
除了vanishing gradient 问题,还有exploding gradient 问题,但是相对来说 exploding gradient 好解决,solution 是gradient clipping, 具体是说gradient 的值太大了就clip according to max value (threshold).
GRU - Gated Recurrent Unit
接下来就谈怎么解决vanishing gradient 问题。
先来看basic RNN.
在对比着看GRU
上面是为了好理解做的简化版的GRU,Full GRU是这样的
LSTM 和GRU 怎么选择呢?没有优劣,不同的问题可能适用不同的算法。
LSTM 比 GRU 更复杂,但是GRU更简单所以更快。GRU 有两个gate, LSTM 有三个gate. 如果要选择一个,可以默认先选择LSTM
BRNN - Bidirection RNN
下面的问题需要BRNN来处理
实际应用中,BRNN + LSTM 的组合最常用
Deep RNNs
Questions:
1. gate 的概念没有理解
2. LSTM 没有理解
3. One-hot vector: 一个向量里只有一个1,其他都是0.