【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记

循环序列模型

为什么选择序列模型

语音识别音乐生成情感分类DNA序列分析机器翻译视频识别命名实体识别等任务中,共同特点是输入X和/或输出Y都是序列。
【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记

数学符号

例如,对于命名实体识别的问题:

【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记

  • 对于输入序列,用x<1>,x<2>,...,x<t>,...,x<9>来表示,其中x<t>表示t位置的单词。
  • 对于输出序列用y<1>,y<2>,...,y<9>来表示。
  • Tx表示输入序列长度,Ty表示输出序列长度,在本例中Tx=Ty=9
  • x(i)<t>表示第i个样本输入的第t个位置的值,Tx(i)表示第i个训练样本的输入序列长度。
  • y(i)<t>表示第i个样本的输出第t个位置的值,Ty(i)表示第i个训练样本的输出序列长度。
怎样表现句子里的某一个单词:

one-hot编码:在词典中,该词的编码为1,其余位置编码为0,形成该词的向量。

循环神经网络模型

无法选择标准的神经网络的原因:
  • 在不同的样本中,输入输出长度都是可变的。
  • 不共享跨文本不同位置学习的功能。
循环神经网络RNN

【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记

在每一个时间步中,循环神经网络传递一个**值到下一个时间步中,用于计算。对于零时刻,则输入一个零向量(或者随机初始化的)作为伪**值。
循环神经网络是从左往右扫描数据,同时每个时间步的参数也是共享的。
限制:在某一时刻的预测仅仅使用了序列中之前的输入信息,而没有使用该时刻之后的输入信息。(解决方法:双向循环神经网络BRNN)

RNN前向传播过程如下:
【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记

其中,wax表示与X相乘的用来计算a的权重,同理,wya表示与a相乘的用来计算y的权重。
【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记

穿越时间的反向传播

【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记

不同类型的循环神经网络

【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记

结构:
多对一:如文本输入
一对多:如音乐生成、序列生成等(输入一个数字等或空,输出一段·音乐)
多对多:如机器翻译,输入和输出的长度不同,因此网络分为编码器和解码器两个部分。

语言模型和序列生成

训练语料:大的英文文本 。
预处理
- 将句子标记化(tokenize)
- 将每个单词转化成one-hot编码,在句子结尾加上<EOS>标记。
- 对于训练集中不在字典中的词,用<UNK>代替。

RNN model

【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记

对新序列采样

即对词的概率分布进行采样,来生成一个新的单词序列。

【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记

带有神经网络的梯度消失

存在的问题
RNN从左到右前向传播,由于梯度消失的原因,后面层的输出误差很难影响到前面层的计算。
梯度爆炸:采用梯度修剪的方法。
梯度消失则比较棘手(下一节GRU单元)

【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记

GRU单元

GRU(Gated Recurrent Unit)门控循环单元,通过改变RNN的隐藏层,使其能捕捉深层连接,并改善梯度消失的问题。

c~<t>=tanh(Wc[c<t1>,X<t>]+bc)

Γu=σ(Wu[c<t1>,X<t>]+bu)

c~<t>计算记忆细胞c的更新值,用Γu来判断是否需要更新。

c<t>=Γuc~<t>+(1Γu)c<t1>

由公式可以看出,如果Γu值为1,则说明需要更新,为0则保持原值。

【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记

公式中的c<t>c~<t>Γu可以是维数相同的向量,*代表元素对应相乘(element-wise)的乘法。

【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记

长短期记忆LSTM

LSTM(Long Short Time Memory)和GRU的对比图:

【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记
GRU中,有两个门:c~<t>——代替记忆细胞的候选值,还有Γu——更新门来决定是否要更新。

【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记

双向神经网络 Bidirectional RNN

【Coursera】吴恩达 deeplearning.ai 05.序列模型 第一周 循环序列模型 课程笔记

缺点:需要完整的数据序列,才能够预测任意位置。

深层循环神经网络 Deep RNNs