首页 > 其他 > 详细

文本生成模型

时间:2017-04-14 14:38:09      阅读:223      评论:0      收藏:0      [点我收藏+]

文本生成模型

序列模型

问题
对于一个序列预测问题:
(1)输入的时间变化序列:技术分享
(2)在t时刻通过模型预测下一时刻,即:

技术分享

难点
(1)内部状态难以建模、观察
(2)长时间窗口内的状态难以建模、观察

建模思路
(1)引入内部的隐状态变量

技术分享

技术分享

simple RNN

rnn的基本结构如下:
技术分享

前向传播

技术分享

技术分享

其中:
(1)技术分享是t时刻输入
(2)技术分享是状态层,在0时刻初始化
(3)技术分享函数是激励函数(sigmoid, tanh)
(4)技术分享是输出层函数(softmax多分类)

代价函数:

技术分享

模型的参数:
(1)技术分享:将向量从hidden_dim变换到hidden_dim
(2)技术分享:将向量从input_dim变换到hidden_dim
(3)技术分享:将向量从hidden_dim变换到output_dim
(4)技术分享:bias向量

模型训练:BPTT (back propagation through time)
bptt算法的基本思想是:把所有时刻的误差累加起来,成为一个梯度。

技术分享

技术分享

技术分享

其中:
技术分享

从这个迭代式子里可以看到,每个时刻的梯度由当前时刻前的一系列时刻决定

梯度消失现象
对于sigmoid函数,当值接近0或1时,梯度接近0,梯度消失

LSTM cell

前向传播

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

Encoder-Decoder Framework

基本框架
(1)Encoder对输入序列技术分享进行编码,即

技术分享

技术分享

其中:
技术分享技术分享时刻的隐状态;技术分享是Encoder的输出向量
(2)Decoder的作用是给定Encoder的输出向量技术分享技术分享时刻之前的隐状态,预测当前时刻的状态,并输出。也即:
技术分享

对于rnn模型,每个条件概率有:
技术分享

其中,技术分享是当前的隐状态,技术分享为Encoder的输出向量

attention机制
区别:对传统的Decoder进行调整,引入context vector技术分享,也即

技术分享

其中每个技术分享由如下归一化得到:
技术分享

技术分享

其中技术分享输出序列的位置,技术分享为输入序列的位置,也即对输入序列和输出序列的位置对应关系进行了建模。
技术分享为alignment model

文本生成模型

原文:http://www.cnblogs.com/zjgtan/p/6708435.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!