侧边栏壁纸
  • 累计撰写 47 篇文章
  • 累计创建 22 个标签
  • 累计收到 27 条评论

目 录CONTENT

文章目录

深度学习模型中的gate机制和attention机制对比

vchopin
2022-07-13 / 1 评论 / 0 点赞 / 429 阅读 / 1,654 字

Gate机制与Attention机制区别对比

1. Gate机制

Gate机制一般见的最多的就是在LSTM和GRU等循环神经网络上。事实上,在多任务方面、在让足够深的模型保持记忆信息上都可以运用Gate机制。

门控机制在循环神经网络中是用来控制后续输入信息的一个阈值,这种情况下是将多个神经网络堆叠层连接起来,并控制信息的传递。在其余越来越深的模型中,信息会损失得越来越快甚至没有。门控机制可以用来直接向后续网络层传递当前层的信息而不经过中间层,就可以直接减少信息丢失,残差网络就是利用此种原理,这其实是一种信息保护机制。

2. Attention机制

Attention机制原理在网上已经说的很多了,都简单易懂,这个机制主要是用来给输入向量每个都分配一个权重,这样在学习的时候就按照权重来学习到不一样的重点。文本中就是学到某个字对于结果的影响;图像中就是学到某个ROI对于结果的影响。
简述一下Attention的工作流程:

attention函数共有三步完成得到attention value。

  1. Q与K进行相似度计算得到权值
  2. 对上部权值归一化
  3. 用归一化的权值与V加权求和

此时最后的加权求和的结果就为注意力值。公式如下:

AttentionValue=similarity(QKT)VAttention Value = similarity(QK^T)V

在自然语言任务中,往往KKVV是相同的。这时计算出的attention value是一个向量,代表序列元素xjx_j的编码向量。此向量中包含了元素xjx_j的上下文关系,即包含全局联系也拥有局部联系。全局联系是因为在求相似度的时候,序列中元素与其他所有元素的相似度计算,然后加权得到了编码向量。局部联系可以这么解释,因为它所计算出的attention value是属于当前输入的xjx_j的。这也就是attention的强大优势之一,它可以灵活的捕捉长期和local依赖,而且是一步到位的。

3. 区别

  1. 公式不一样
    首先,门控机制用的是sigmoid,而注意力机制用的是softmax,这是表观上第一眼能看到的不同
  2. 机制不同
    对于门控机制来说,可以认为其是内部的操作,能让网络变得更深,而对于注意力机制而言,则可以认为其是一个外界的记忆来源,能让我们专注于学习某一部分自己更想要的东西。
  3. 可作用的范围不同
    门控机制可记忆的步长有限,别看LSTM号称长短期记忆,而实际上当步长变大以后,效果会比较差,大概上千步就已经是极限。而注意力则不同,你可以设置你想要的记忆长度。因此,对于文本翻译等任务,用LSTM可能就足够了,但对于语音等需要跟踪很长步长的数据,就得需要注意力机制。
  4. 核心区别还是在gate机制是elementwise的,而attention是globally normalized。
    这就造成了两者的区别,在gate里面每一个元素的独立的,而在attention里面每一个元素是相互被比较的。
    "gate"之所以叫门控,无非是在说每一个元素的信息该不该被通过,而两个元素之间该不该被通过这件事却没有很大的关联。
    “attention”叫注意力,而注意力的强弱本身就是一个相对的概念,一大堆东西摆在你面前,你自然会注意到某些东西,同时忽略掉某些东西。
    attention里面的softmax就是起到相互比较,选出我最应该注意的信息。从实践来看,有很多paper都发现attention matrix是比较sparse的,也就是一般你都会在一个很长的序列里面注意到其中的几个词(东西)。

参考

  1. 浅谈Attention机制的理解 https://zhuanlan.zhihu.com/p/35571412
  2. Attention weights和LSTM/GRU中的gate机制有何不同? - 知乎用户的回答 - 知乎https://www.zhihu.com/question/527779950/answer/2444940581
0
  • 0
  • 1

评论区