zoukankan      html  css  js  c++  java
  • 文本生成模型

    文本生成模型

    序列模型

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

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

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


    simple RNN

    rnn的基本结构如下:
    enter description here

    前向传播



    其中:
    (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

  • 相关阅读:
    编写简单的c运行库(一)
    c中函数参数传递
    MSVC命令行参数
    在C#中对List<>进行排序
    向DataTable中添加一行数据的做法
    获取本机IP(考虑多块网卡、虚拟机等复杂情况)
    [转]在C#中判断一个文本文件的编码方式
    关于C#使用XML序列化的一些注意事项
    C#中的类型和SQL Server中的类型对应关系
    关于DLL文件和EXE文件不在同一目录下的设置
  • 原文地址:https://www.cnblogs.com/zjgtan/p/6708435.html
Copyright © 2011-2022 走看看