• Pointer Networks


     原文链接:https://arxiv.org/abs/1506.03134

    Motivation

    现有的序列化预测通常使用RNN。RNN的问题在于输出数量固定,对于答案长度动态变化的问题并不适用。

    作者以凸包问题(Convex Hull)为例。给定一定数量的点,希望找到一系列点组成凸多边形,使得任一点或者在多边形内部,或者为多边形顶点。

    显然对于固定总数的点,其凸包顶点数量可变,采用seq2seq的序列模型难以实现比较好的效果。

    因此,作者提出了指针网络(Pointer Networks),以解决答案长度可变的问题,通过生成由输入到输出的答案指针,实现答案从输入的拷贝。 

    Review:seq2seq Model

    RNN序列模型如图所示。输入一系列序列,在模型前半部分进行编码,后半部分进行解码。解码部分的每一步依据模型参数、输入序列、此前所有步的输出生成当前步的输出。

    在给定的输入序列P和RNN模型参数θ的情况下,模型预测一系列答案CP(C1 ~ Cm(P))的概率可以用以下的条件概率乘积表示:

     其中模型参数θ可以通过最大化正确答案概率(对数和)来调整:

    Review:Attention

    注意力机制如图所示。当前步的输出通过对每一个输入(经过encode编码)加权求和产生。

    对于第i步的输出,首先对于每一步输入编码计算权重uji,将该步编码ej与第i步解码di分别进行线性变换并相加,通过tanh激活并乘以参数v,最后得到uji。

    将uji经过softmax得到aji,作为最终权重。以aji作为权重对此前每一步的编码ej进行加权平均,得到第i步的输出。

    Pointer Networks

    作者提出指针网络,通过将输入直接拷贝作为输出,实现对可变长度答案的预测。

    首先使用与Attention同样的方法,得到每一步的权重。

     然后直接将权重最大的输入项作为输出,即将softmax后的权重(Attention中的aji作为预测为第j个输入的概率。

    直观来讲,就是将Attention中的权重作为指针,将输入指向输出,生成针对输入序列的概率分布。 

  • 相关阅读:
    算法复习——扫描线(hdu1542)
    hbase简单操作
    python操作Mongo数据库
    查看图片大小
    python修改图片格式
    python图片压缩
    python 图片抓取
    failed to lazily initialize a collection of role: could not initialize proxy
    failed to lazily initialize a collection of role: could not initialize proxy
    vim自动打开跳到上次的光标位置
  • 原文地址:https://www.cnblogs.com/zkwang/p/12919936.html
Copyright © 2020-2023  润新知