注意力机制(attention)

简单认识

注意力机制可以增强神经网络输入中数据的一部分权重,减少其他部分的权重,将神经网络的关注点聚焦于数据中的一小部分,所以会降低神经网络中的收敛时间提高神经网络的效率。在这里用聚焦(focus)理解可能会更好。

例子

具体为假设有一个索引i排列好的(token)序列,而且对于每一个标记i,神经网络都会有一个相应满足\sum_{i}w_{i}=1的权重w_{i}(非负软权重)(但是这里是否还有硬权重,不清楚),每一个标记都对于一个词嵌入得到的向量v_{i},而且求加权平均\sum_{i}w_{i}v_{i}就是注意力机制的输出结果。

此外还可以通过查询-键 机制(query-key)计算软权重,而且对于每个标记的词嵌入,我们计算对于的查询向量q_{i}和对于的键向量k_{i}(一一对应的关系),然后再计算点积的softmax函数(概念:Softmax是一种激活函数,它可以将一个数值向量归一化为一个概率分布向量,且各个概率之和为1)之后就可以得到相对应的权重。

实例

下列为基本框架为编码器-解码器模型,而且外加了一个注意力单元,而且注意力单元知识循环状态的点积运算,不需要训练,但是在实际运用过程中需要三个完全连接的神经网络层,而且分别被称为查询(query),键(key),值(value)。

 

 代码

class EncoderDecoder(nn.Module):
    def __init__(self,encoder,decoder,**kwargs):
        super(EncoderDecoder, self).__init__()
        self.encoder = encoder
        self.decoder = decoder

    def forward(self,enc_X,dec_X,*args):
        enc_outputs = self.encoder(enc_X,*args)
        dec_state = self.decoder.init_state(enc_outputs,*args)
        return self.decoder(dec_X,dec_state)

参考(后续还会继续补充)

维基百科注意力机制

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值