1.Attention(注意力机制)

Pytorch学习笔记17----Attention机制的原理与softmax函数

 

上图中,输入序列上是“机器学习”,因此Encoder中的h1、h2、h3、h4分别代表“机","器","学","习”的信息,在翻译"macine"时,第一个上下文向量C1应该和"机","器"两个字最相关,所以对应的权重a比较大,在翻译"learning"时,第二个上下文向量C2应该和"学","习"两个字最相关,所以"学","习"对应的权重a比较大。

a其实是一个0-1之间的值,a可以看成是e的softmax后的结果。

Pytorch学习笔记17----Attention机制的原理与softmax函数

那现在关于attention来说就只剩下一个问题了,就是e是怎么来的。关于e的计算,业界有很多种方法,常用的有以下三种方式:

Pytorch学习笔记17----Attention机制的原理与softmax函数

(1)计算Encoder的序列h与Decoder的序列h的余弦相似度.

(2)在1的基础上,乘上一个Wa,Wa是需要学习的参数,从学习到Encoder和Decoder的隐藏的打分e。

(3)设计一个前馈神经网络,前馈神经网络的输入是Encoder和Decoder的两个隐藏状态,Va、Wa都是需要学习的参数。

2.softmax函数

softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!

假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值就是

Pytorch学习笔记17----Attention机制的原理与softmax函数

更形象的如下图表示:

Pytorch学习笔记17----Attention机制的原理与softmax函数

softmax直白来说就是将原来输出是3,1,-3通过softmax函数一作用,就映射成为(0,1)的值,而这些值的累和为1(满足概率的性质),那么我们就可以将它理解成概率,在最后选取输出结点的时候,我们就可以选取概率最大(也就是值对应最大的)结点,作为我们的预测目标!

参考文献:

https://zhuanlan.zhihu.com/p/52119092

https://www.zhihu.com/question/23765351/answer/240869755

相关文章:

  • 2022-03-04
  • 2021-07-07
  • 2021-04-03
  • 2022-01-21
  • 2022-01-18
  • 2021-10-11
  • 2021-06-13
  • 2021-12-10
猜你喜欢
  • 2022-12-23
  • 2022-01-17
  • 2021-11-15
  • 2021-06-10
  • 2021-04-17
  • 2021-06-27
相关资源
相似解决方案