RNN

3.2 语言模型(Language Modeling)

目标:评估词序列的概率
P ( w 1 , . . . , w m ) P(w_1, ..., w_m) P(w1,...,wm)

决定词序列是否符合文法或有含义
在这里插入图片描述## N-Gram语言模型

概率由前 (n-1) 个词计算

P ( w 1 , . . . , w m ) = ∏ i = 1 m P ( w i ∣ w 1 , . . . , w i − 1 ) P ( w 1 , . . . , w m ) ≈ ∏ i = 1 m P ( w i ∣ w i − ( n − 1 ) , . . . , w i − 1 ) P(w_1,...,w_m)=\prod_{i=1}^mP(w_i|w_1,...,w_{i-1})\\ P(w_1,...,w_m)\approx\prod_{i=1}^mP(w_i|w_{i-(n-1)},...,w_{i-1}) P(w1,...,wm)=i=1mP(wiw1,...,wi1)P(w1,...,wm)i=1mP(wiwi(n1),...,wi1)

评估基于训练数据的概率
在这里插入图片描述
问题:一些序列没有在训练数据中出现

例:
在这里插入图片描述
解决方法一:Smoothing

Feed-Forward Nerual Language Model

estimate not from count, but from NN prediction

在这里插入图片描述在这里插入图片描述

“A Nerual Probabilistic Language Model”
在这里插入图片描述好处:相似词的输入层或隐含层是接近的

在这里插入图片描述

在这个过程中, smoothing 会自动完成

问题:仅考虑前n个词,没有考虑前面所有的句子

RNN - Language Model

在这里插入图片描述idea: 从上一个隐含层将上文所有信息引入

3.3 RNN

定义

RNNLM 的形式
在每一个time step:

在这里插入图片描述
RNN定义

在这里插入图片描述

训练

Model Training

在这里插入图片描述Backpropagation through time(BPTT)

先考虑BP
在这里插入图片描述在这里插入图片描述
在考虑BPTT
在这里插入图片描述在这里插入图片描述
注: 对于RNN,每次数据 o t o_t ot y t y_t yt的损失反向传播,都会影响当前时间步的V和各个时间步的W(之后也会影响各个时间步的U), 但是需要注意的是,各个时间步的W实际上是同一个W(U也是同一个U) ,也就是,一个step里的训练,多次更新了参数W(这与DNN不同,在DNN里,一个step的训练,只会影响一次W)

在这里插入图片描述DNN对U的更新:
在这里插入图片描述RNN:
在这里插入图片描述Weights are tied together

每一个时间步的更新都会更新到同一个参数上

在这里插入图片描述越到后面的时间步,对模型更新力度更大吗?
不是

Training Issue

在这里插入图片描述
在这里插入图片描述

多次乘以同一个W可能产生的问题:
vanishing gradient(梯度消失)
exploding gradient(梯度爆炸)

在这里插入图片描述梯度消失与梯度爆炸的例子:
在这里插入图片描述
图为不同步的梯度统计(横轴为梯度,纵轴为有该梯度的参数的个数),随着步数的增加(也即累积),梯度为100, -100的参数变多,即为梯度爆炸,梯度为0的参数变多,即为梯度消失

可以这样考虑:
0. 1 50 ≈ 0 ( 梯 度 消 失 ) 1. 1 50 ≈ 117.39 ( 梯 度 爆 炸 ) 0.1^{50}\approx0 (梯度消失) \\ 1.1^{50}\approx117.39 (梯度爆炸) 0.15001.150117.39
也即,原先很小的梯度随着多次累积变大或变小

解决梯度爆炸–Clipping
在这里插入图片描述
解决梯度消失–Gating
在这里插入图片描述

Extension

双向RNN(Bidirectional RNN)
在这里插入图片描述
Deep Bidirectional RNN
在这里插入图片描述

3.3 RNN Applications

学习算法f是将input domain X 映射到 output domain Y
f : X → Y f:X \to Y f:XY
区别学习任务的关键:input domain 与 output domain
网络的设计需要考虑input 与 output 的类型与属性

NLP 中 input domain 与 output domain 的类型:
在这里插入图片描述

Sequential Input

Sequence Modeling(序列建模)
将序列中所有词的含义集成一个向量

在这里插入图片描述

方法:

  • 基本方法:平均,加和
  • 神经组合:Recursive NN(RvNN), RNN, CNN

情感分析
使用RNN将句子(词序列)编码为向量
在这里插入图片描述
RNN将句子建模为向量,并作为分类器DNN的输入

Sequential Output

在这里插入图片描述

Aligned Sequential Pairs(Tagging)

输入与输出一一对应,且顺序一致

POS Tagging(词性标注)
在这里插入图片描述Natural Language Understanding(NLU)
在这里插入图片描述

Unaligned Sequential Pairs(Seq2Seq/Encoder-Decoder)

输入输出序列的词的顺序可能不一样,词与词之间也不一定是一一对应(align)

Machine Translation

两个RNN:encoding & decoding
在这里插入图片描述Chit-Chat Dialogue Modeling (对话机器人)
在这里插入图片描述

总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值