循环序列模型——05.序列模型第一周课程笔记

一、为什么使用序列模型

能处理非固定大小输入的问题,例如语音识别,DNA序列分析,机器翻译这种是一串序列的问题。

二、 数学符号表示

以自然语言处理为例:
x: Harry Potter and Hermione Granger invented a new spell.
以这句话为输入x,希望得到一个相同长度的y,判断每个单词是否表示人名。
首先需要构建一个按字母排序的单词词典,当然该词典中包含单词的个数因网络和计算资源的不同而不同,一般有4000个等,在这里我们为了表示方便,假设单词数量为1000。然后将每个单词对应在字典中的位置,映射成一个长度为1000的一维向量(onehot)。具体表示方法如下所示:

符号 说明
X < 1 > = [ 0 , 0 , 0 , 1 , 0 , 0 , . . . , 0 , 0 ] X < i > 表示该句话的第 i 个单词,在此处表示Harry在词典中序号为4。
Y < i > 表示第 i 个单词的输出。
T x = 9 这个序列的长度为9
T y = 9 这个序列的输出长度为9
X ( i ) < t > 样本中第 i 个序列的第 t 个单词
T x ( i ) 样本中第 i 个输入序列的长度

注意:如果样本中出现了词典中不包含的单词,需要定义一个Unknown向量,以及每句话的结尾EOS向量。

三、循环神经网络模型

1 为什么不能用标准的神经网络

  • 在序列输入问题中,大部分的输入不能输出都不能统一
  • 在同一个单词在文本的不同位置不能分享特征

2 循环神经网络

2.1 前向传播

前向传播

a < t > = g 1 ( W a a a < t 1 > + W a x x < t > + b a )

y ^ = g 2 ( W y a a < t > + b y )

公式可以简化为

a < t > = g 1 ( W a [ a < t 1 > , x < t > ] + b a )

y ^ = g 2 ( W y a < t > + b y )

2.2 方向传播

对于一个判断是否为人名的二分类问题,可以定义损失函数:
L < t > ( y ^ < t > , y < t > ) = y < t > log y ^ < t > ( 1 y < t > ) log ( 1 y ^ < t > )
通过梯度下降算法不断更新参数
时间反向传播(backpropagation through time)

2.3 不同类型的循环神经网络

不同类型的循环神经网络

3 语言模型和序列生成

3.1 生成过程

一句话概括就是:单词出现的概率。
需要训练集:一个大的语料库(corpus of English text 数量众多的句子)
训练过程

3.2 生成采样

通过每个单元生成的softmax概率,然后以每个单词的概率做随机,到第二个单元时以第一个单元的结果为输入,然后再生成softmax概率,如此循环直到生成EOS标志或者限定时间数。

3.3 字符模型

相比较词汇模型而言,字符模型是以字母,标点符号,数字为字典元素。相比较词汇模型而言,会得到更多的输入,网络相对更加深,训练起来计算成本也比较昂贵。

4 梯度问题

梯度爆炸:梯度修剪
梯度消失:GRU,LSTM

4.1 GRU(Gated Recurrent Unit 门控循环单元)

学习非常深的连接
相关论文:On the properties of neural machine translation:Encoder-decoder approaches 2014
Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling 2014
这里写图片描述

c ^ < t > = tanh ( W c [ c < t 1 > , x < t > ] + b c )

Γ u = σ ( W u [ c < t 1 > , x < t > ] + b u )

c < t > = Γ u c ^ < t > + ( 1 Γ u ) c < t 1 >

a < t > = c < t >

Full GRU
c ^ < t > = tanh ( W c [ Γ r c < t 1 > , x < t > ] + b c )

Γ u = σ ( W u [ c < t 1 > , x < t > ] + b u )

Γ r = σ ( W r [ c < t 1 > , x < t > ] + b r )

c < t > = Γ u c ^ < t > + ( 1 Γ u ) c < t 1 >

a < t > = c < t >

4.1 LSTM(Long Short Term Memory Unit 长短时记忆单元)

学习非常深的连接
相关论文:Long short-term memory 1997
这里写图片描述

c ^ < t > = tanh ( W c [ a < t 1 > , x < t > ] + b c )

Γ u = σ ( W u [ a < t 1 > , x < t > ] + b u )

Γ f = σ ( W f [ a < t 1 > , x < t > ] + b f )

Γ o = σ ( W o [ a < t 1 > , x < t > ] + b o )

c < t > = Γ u c ^ < t > + Γ f c < t 1 >

a < t > = Γ o tanh c < t >

5 双向循环神经网络(Bidirectional RNN) (BRNN)

因为语言有上下文的语境关系,所以采用双向循环,是的特征信息能够保全得更加完整。

深层循环神经网络

网络结构
因为循环神经网络本身在时间流上就很深,因此,在空间叠加上,不能过深。

测试题

第七题
第八题

猜你喜欢

转载自blog.csdn.net/hunt_ing/article/details/82287292