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

本文介绍了序列模型解决非固定大小输入问题的优势,并详细探讨了循环神经网络(RNN)的工作原理,包括其数学表示、前向传播过程及解决梯度问题的方法如GRU和LSTM。同时,还讨论了不同类型的RNN及其在自然语言处理任务中的应用。

一、为什么使用序列模型

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

二、 数学符号表示

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

符号说明
X&lt;1&gt;=[0,0,0,1,0,0,...,0,0]X^{&lt;1&gt;}=[0, 0, 0, 1, 0, 0, ..., 0, 0]X<1>=[0,0,0,1,0,0,...,0,0]X&lt;i&gt;X^{&lt;i&gt;}X<i>表示该句话的第iii个单词,在此处表示Harry在词典中序号为4。
Y&lt;i&gt;Y^{&lt;i&gt;}Y<i>表示第iii个单词的输出。
Tx=9T_x = 9Tx=9这个序列的长度为9
Ty=9T_y = 9Ty=9这个序列的输出长度为9
X(i)&lt;t&gt;X^{(i)&lt;t&gt;}X(i)<t>样本中第iii个序列的第ttt个单词
Tx(i)T_x^{(i)}Tx(i)样本中第iii个输入序列的长度

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

三、循环神经网络模型

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

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

2 循环神经网络

2.1 前向传播

前向传播
a&lt;t&gt;=g1(Waaa&lt;t−1&gt;+Waxx&lt;t&gt;+ba)a^{&lt;t&gt;}=g_1(W_{aa}a^{&lt;t-1&gt;}+W_{ax}x^{&lt;t&gt;}+b_a)a<t>=g1(Waaa<t1>+Waxx<t>+ba)
y^=g2(Wyaa&lt;t&gt;+by)\hat y=g_2(W_{ya}a^{&lt;t&gt;}+b_y)y^=g2(Wyaa<t>+by)

公式可以简化为

a&lt;t&gt;=g1(Wa[a&lt;t−1&gt;,x&lt;t&gt;]+ba)a^{&lt;t&gt;}=g_1(W_{a}[a^{&lt;t-1&gt;},x^{&lt;t&gt;}]+b_a)a<t>=g1(Wa[a<t1>,x<t>]+ba)
y^=g2(Wya&lt;t&gt;+by)\hat y=g_2(W_{y}a^{&lt;t&gt;}+b_y)y^=g2(Wya<t>+by)

2.2 方向传播

对于一个判断是否为人名的二分类问题,可以定义损失函数:
KaTeX parse error: Expected 'EOF', got '\cal' at position 2: \̲c̲a̲l̲ ̲L^{<t>}(\hat y^…
通过梯度下降算法不断更新参数
时间反向传播(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^&lt;t&gt;=tanh⁡(Wc[c&lt;t−1&gt;,x&lt;t&gt;]+bc)\hat c^{&lt;t&gt;}=\tanh (W_c[c^{&lt;t-1&gt;},x^{&lt;t&gt;}]+b_c)c^<t>=tanh(Wc[c<t1>,x<t>]+bc)
Γu=σ(Wu[c&lt;t−1&gt;,x&lt;t&gt;]+bu)\Gamma_u= \sigma (W_u[c^{&lt;t-1&gt;},x^{&lt;t&gt;}]+b_u)Γu=σ(Wu[c<t1>,x<t>]+bu)
c&lt;t&gt;=Γu∗c^&lt;t&gt;+(1−Γu)∗c&lt;t−1&gt;c^{&lt;t&gt;}=\Gamma_u * \hat c^{&lt;t&gt;}+(1-\Gamma_u)*c^{&lt;t-1&gt;}c<t>=Γuc^<t>+(1Γu)c<t1>
a&lt;t&gt;=c&lt;t&gt;a^{&lt;t&gt;}=c^{&lt;t&gt;}a<t>=c<t>
Full GRU
c^&lt;t&gt;=tanh⁡(Wc[Γr∗c&lt;t−1&gt;,x&lt;t&gt;]+bc)\hat c^{&lt;t&gt;}=\tanh (W_c[\Gamma_r*c^{&lt;t-1&gt;},x^{&lt;t&gt;}]+b_c)c^<t>=tanh(Wc[Γrc<t1>,x<t>]+bc)
Γu=σ(Wu[c&lt;t−1&gt;,x&lt;t&gt;]+bu)\Gamma_u= \sigma (W_u[c^{&lt;t-1&gt;},x^{&lt;t&gt;}]+b_u)Γu=σ(Wu[c<t1>,x<t>]+bu)
Γr=σ(Wr[c&lt;t−1&gt;,x&lt;t&gt;]+br)\Gamma_r=\sigma(W_r[c^{&lt;t-1&gt;},x^{&lt;t&gt;}]+b_r)Γr=σ(Wr[c<t1>,x<t>]+br)
c&lt;t&gt;=Γu∗c^&lt;t&gt;+(1−Γu)∗c&lt;t−1&gt;c^{&lt;t&gt;}=\Gamma_u * \hat c^{&lt;t&gt;}+(1-\Gamma_u)*c^{&lt;t-1&gt;}c<t>=Γuc^<t>+(1Γu)c<t1>
a&lt;t&gt;=c&lt;t&gt;a^{&lt;t&gt;}=c^{&lt;t&gt;}a<t>=c<t>

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

学习非常深的连接
相关论文:Long short-term memory 1997
这里写图片描述
c^&lt;t&gt;=tanh⁡(Wc[a&lt;t−1&gt;,x&lt;t&gt;]+bc)\hat c^{&lt;t&gt;}=\tanh (W_c[a^{&lt;t-1&gt;},x^{&lt;t&gt;}]+b_c)c^<t>=tanh(Wc[a<t1>,x<t>]+bc)
Γu=σ(Wu[a&lt;t−1&gt;,x&lt;t&gt;]+bu)\Gamma_u= \sigma (W_u[a^{&lt;t-1&gt;},x^{&lt;t&gt;}]+b_u)Γu=σ(Wu[a<t1>,x<t>]+bu)
Γf=σ(Wf[a&lt;t−1&gt;,x&lt;t&gt;]+bf)\Gamma_f= \sigma (W_f[a^{&lt;t-1&gt;},x^{&lt;t&gt;}]+b_f)Γf=σ(Wf[a<t1>,x<t>]+bf)
Γo=σ(Wo[a&lt;t−1&gt;,x&lt;t&gt;]+bo)\Gamma_o= \sigma (W_o[a^{&lt;t-1&gt;},x^{&lt;t&gt;}]+b_o)Γo=σ(Wo[a<t1>,x<t>]+bo)
c&lt;t&gt;=Γu∗c^&lt;t&gt;+Γf∗c&lt;t−1&gt;c^{&lt;t&gt;}=\Gamma_u * \hat c^{&lt;t&gt;}+\Gamma_f*c^{&lt;t-1&gt;}c<t>=Γuc^<t>+Γfc<t1>
a&lt;t&gt;=Γo∗tanh⁡c&lt;t&gt;a^{&lt;t&gt;}=\Gamma_o*\tanh c^{&lt;t&gt;}a<t>=Γotanhc<t>

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

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

深层循环神经网络

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

测试题

第七题
第八题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值