zoukankan      html  css  js  c++  java
  • RNN中的注意力机制

    RNN序列编解码器

    • 红色---输入,蓝色---输出
    • 绿色----编、解码器

    Sequence to Sequence模型

    编码器Encoder把所有的输入序列都编码成一个统一的语义向量Context,然后再由解码器Decoder解码。在解码器Decoder解码的过程中,不断地将前一个时刻 [公式] 的输出作为后一个时刻 [公式] 的输入,循环解码,直到输出停止符为止。

    优点:不再要求输出与输入有相同的时间长度

    缺点:

    • encoder把所有的输入序列都编码成一个统一的语义向量Context,然后再由Decoder解码。由于context包含原始序列中的所有信息,它的长度就成了限制模型性能的瓶颈。(如机器翻译问题,当要翻译的句子较长时,一个Context可能存不下那么多信息,就会造成精度的下降。)
    • 如果按照上述方式实现,只用到了编码器的最后一个隐藏层状态,信息利用率低下。

    时间片输入的稀疏问题

    一般通过嵌入向量(embedding)解决,如one_hot编码,但是可能会产生大量过于稀疏的输入。
    解决办法:生成一个随机矩阵R,然后用embedding** * R做空间映射形成新的输入embedding_new

    改进Seq2Seq结构(引入attention)

    最好的切入角度就是:利用Encoder所有隐藏层状态 解决Context长度限制问题。

    即将编码器的所有隐藏状态都作为解码器每个隐藏状态的一个输入。

    Attention机制本质

    将的Encoder RNN隐藏层状态加权后获得权重向量,额外加入到Decoder中,给Decoder RNN网络添加额外信息,使其不再仅仅依赖编码器的最终上下文向量作为单一信息输入,从而使得网络有更完整的信息流。

    Luong-Attention给RNN网络添加额外信息的方式


  • 相关阅读:
    18天,也能让ERP步入新世界
    VB.NET显示Internet上的图片
    首页增强外挂 vBulltein 3.5.x/3.6.x
    简繁互相切换的字库(比较全)
    delphi 使用者的一个好工具
    sql语句的一些参考
    错误2203,安装中的用户权限问题
    音响的灵魂! 世界顶级扬声器品牌介绍
    Pocket PC程序安装
    清理数据库挂马代码
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/13141841.html
Copyright © 2011-2022 走看看