• 软注意力和硬注意力的对比


    注意力和硬注意力的对比

    软注意力(确定):

    软(确定性)注意力机制使用所有键的加权平均值来构建上下文向量。对于软注意力,注意力模块相对于输入是可微的,因此整个系统仍然可以通过标准的反向传播方法进行训练。软注意力数学描述如下1
    e = f ( q , k ) α = s o f t m a x ( e ) = e x p ( e i ) ∑ k = 1 n e x p ( e k ) c = ∑ i = 1 n α i v i \begin{aligned} \pmb{e} &= f(\pmb{q},\pmb{k}) \\ \pmb{\alpha}&=softmax(\pmb{e})=\frac{exp(e_i)}{\sum_{k=1}^nexp(e_k)} \\ \pmb{c}&=\sum_{i=1}^{n}\alpha_i\pmb{v}_i \end{aligned} eeααcc=f(qq,kk)=softmax(ee)=k=1nexp(ek)exp(ei)=i=1nαivvi
    其中的 f ( q , k ) f(q,k) f(q,k)有很多种计算方法,如下表所示1

    在这里插入图片描述

    硬注意力(随机):

    硬(随机)注意力中的上下文向量是根据随机采样的键计算的。硬注意力可以实现如下1
    α ~ ∼ M u l t i n o u l l i ( { α i } ) c = ∑ i = 1 n α ~ i v i \widetilde{\alpha} \sim Multinoulli(\{\alpha_i\}) \\ \pmb{c}=\sum_{i=1}^{n}\widetilde{\alpha}_i\pmb{v}_i α Multinoulli({αi})cc=i=1nα ivvi
    注:多项式分布2:多项式分布是二项式分布的推广。二项式做n次伯努利实验,规定了每次试验的结果只有两个。如果现在还是做n次试验,只不过每次试验的结果可以有m个,且m个结果发生的概率互斥且和为1,则发生其中一个结果X次的概率就是多项分布。概率密度函数是:
    P ( X 1 = k 1 , X 2 = k 2 , ⋯   , X n = k n ) = n ! ( k 1 ! ) ( k 2 ! ) ⋯ ( k n ! ) ∏ i = 1 n ( p k i ) P(X_1=k_1,X_2=k_2,\cdots,X_n=k_n)=\frac{n!}{(k_1!)(k_2!)\cdots(k_n!)}\prod \limits_{i=1}^n(p_{k_i}) P(X1=k1,X2=k2,,Xn=kn)=(k1!)(k2!)(kn!)n!i=1n(pki)

    两者的对比和一种改进:

    与软注意力模型相比,硬注意力模型的计算成本更低,因为它不需要每次都计算所有元素的注意力权重。 然而,在输入特征的每个位置做出艰难的决定会使模块不可微且难以优化,因此可以通过最大化近似变分下限或等效地通过 REINFORCE 来训练整个系统。 在此基础上,Luong 等人提出了机器翻译的全局注意力和局部注意力机制3。 全局注意力类似于软注意力。 局部注意力可以看作是硬注意力和软注意力之间的有趣混合,其中一次只考虑源词的一个子集。 这种方法在计算上比全局注意力或软注意力更便宜。 同时,与硬注意力不同,这种方法几乎在任何地方都是可微的,从而更容易实现和训练。

    全局的注意力结构如下4

    在这里插入图片描述

    局部的注意力结构如下4

    在这里插入图片描述

    参考:


    1. Niu Z, Zhong G, Yu H. A review on the attention mechanism of deep learning[J]. Neurocomputing, 2021, 452: 48-62. ↩︎ ↩︎ ↩︎

    2. 《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》论文阅读 ↩︎

    3. Luong M T, Pham H, Manning C D. Effective approaches to attention-based neural machine translation[J]. arXiv preprint arXiv:1508.04025, 2015. ↩︎

    4. Luong M T, Pham H, Manning C D. Effective approaches to attention-based neural machine translation[J]. arXiv preprint arXiv:1508.04025, 2015.
      ranslation[J]. arXiv preprint arXiv:1508.04025, 2015. ↩︎ ↩︎

  • 相关阅读:
    如何编写测试团队通用的Jmeter脚本
    Python趣味算法入门 - 百钱百鸡
    24点问题(带输出构造方式)
    微信小程序渲染层与逻辑层交互原理
    一文读懂Casper区块链上的NFT
    G2plot 自定义tooltip的单条数据结构itemTpl
    【附源码】计算机毕业设计SSM图书商城
    02_diffusion_models_from_scratch_CN
    Day695.Spring Boot如何使用内嵌式的Tomcat和Jetty -深入拆解 Tomcat & Jetty
    android绘制心电图
  • 原文地址:https://blog.csdn.net/KPer_Yang/article/details/126356818