1.Attention(注意力机制)
上图中,输入序列上是“机器学习”,因此Encoder中的h1、h2、h3、h4分别代表“机","器","学","习”的信息,在翻译"macine"时,第一个上下文向量C1应该和"机","器"两个字最相关,所以对应的权重a比较大,在翻译"learning"时,第二个上下文向量C2应该和"学","习"两个字最相关,所以"学","习"对应的权重a比较大。
a其实是一个0-1之间的值,a可以看成是e的softmax后的结果。
那现在关于attention来说就只剩下一个问题了,就是e是怎么来的。关于e的计算,业界有很多种方法,常用的有以下三种方式:
(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值就是
更形象的如下图表示:
参考文献:
https://zhuanlan.zhihu.com/p/52119092
https://www.zhihu.com/question/23765351/answer/240869755
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pytorch学习笔记17—-Attention机制的原理与softmax函数 - Python技术站