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网络添加额外信息的方式


  • 相关阅读:
    展望2018
    Android按下home键后重新打开app进入主activity的问题
    RxJava整合Retrofit遇到的问题总结
    【总结】四种逆元的求法
    【NOIP模板汇总】I Am Me
    【总结】两类素数筛详解
    【NOIP2009】最优贸易
    【SHOI2002】滑雪
    【51NOD1398】等公交
    【复习总结】玫瑰人生 La Vie en Rose
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/13141841.html
Copyright © 2011-2022 走看看