赞
踩
目标:评估词序列的概率
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=1∏mP(wi∣w1,...,wi−1)P(w1,...,wm)≈i=1∏mP(wi∣wi−(n−1),...,wi−1)
评估基于训练数据的概率
问题:一些序列没有在训练数据中出现
例:
解决方法一:Smoothing
estimate not from count, but from NN prediction
“A Nerual Probabilistic Language Model”
好处:相似词的输入层或隐含层是接近的
在这个过程中, smoothing 会自动完成
问题:仅考虑前n个词,没有考虑前面所有的句子
idea: 从上一个隐含层将上文所有信息引入
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
每一个时间步的更新都会更新到同一个参数上
越到后面的时间步,对模型更新力度更大吗?
不是
多次乘以同一个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.150≈0(梯度消失)1.150≈117.39(梯度爆炸)
也即,原先很小的梯度随着多次累积变大或变小
解决梯度爆炸–Clipping
解决梯度消失–Gating
双向RNN(Bidirectional RNN)
Deep Bidirectional RNN
学习算法f是将input domain X 映射到 output domain Y
f
:
X
→
Y
f:X \to Y
f:X→Y
区别学习任务的关键:input domain 与 output domain
网络的设计需要考虑input 与 output 的类型与属性
NLP 中 input domain 与 output domain 的类型:
Sequence Modeling(序列建模)
将序列中所有词的含义集成一个向量
方法:
情感分析
使用RNN将句子(词序列)编码为向量
RNN将句子建模为向量,并作为分类器DNN的输入
输入与输出一一对应,且顺序一致
POS Tagging(词性标注)
Natural Language Understanding(NLU)
输入输出序列的词的顺序可能不一样,词与词之间也不一定是一一对应(align)
Machine Translation
两个RNN:encoding & decoding
Chit-Chat Dialogue Modeling (对话机器人)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。