zoukankan      html  css  js  c++  java
  • 动手学深度学习 | 注意力分数 | 65

    注意力分数

    刚刚的注意力权重,如何设计使得和我们现在的东西比较相像?里面一个东西叫做注意力分数。

    可以看看之前的使用过了高斯核的注意力。

    上图有一堆key-value pair(训练时候的x和y),输入一个query(推理时候的x),然后query和每一个key做一个计算,得到一个注意力分数a,然后这些注意力分数a经过softmax得到注意力权重,然后(alpha(x,x_i)y_i)就可以得到一个注意力的输出。

    拓展到高维度,就是这些向量可以是长度不同的,应该怎么处理呢?

    可加性的注意力是什么意思?

    k是长度为k的向量,q是长度为q的向量,那么(W_kk)会得到一个长度为h的向量,(W_qq)也会得到一个长度为h的向量,然后将两个向量加起来,再和长度为h向量v进行计算。

    好处:key,value可以是任意的长度

    如何query和key的长度一样,长度为d,那么最简单的方式就是不学东西,直接query和key进行内积,在除$sqrt{d} $

    这个操作就是让其相对来说对参数没有那么敏感。

    这个的好处是不用学习参数。

    代码

    QA

    1. 把之前的x和x_i换成了q和k_i吗?

    是的,之前核方法的注意力那里使用的是x和x_i,这里换成了q和k_i。

    沐神说干脆下次把书的公式进行统一,统一为q和k_i。

  • 相关阅读:
    JavaFx在macOS下的文字渲染Bug
    Java多接口同名方法的冲突
    旧技术的惯性
    一点思考(1)
    slisp:编译到JVM平台上的lisp方言
    Arcee:又一个 Parser Generator 轮子
    使用Java实现一门简单的动态语言
    Hello World!
    [NOI2008]奥运物流
    [IOI2005]Riv河流
  • 原文地址:https://www.cnblogs.com/Rowry/p/15378449.html
Copyright © 2011-2022 走看看