Attention 普通注意力机制详解 (二)

20 篇文章 0 订阅
3 篇文章 1 订阅

注意力入门
请添加图片描述

普通注意力机制的了深入理解

在这里插入图片描述
因为GRU每次输入都是一个词一个词的输入,那么普通的Seq2seq框架 就需要每个词算一遍 注意力权重并对解码器输出进行bmm计算,得到加权的解码器词向量输出 这样解码器的GRU每次解码的时候不是仅仅只考虑当前的一个词,而是考虑前后3个词甚至更多个词才会将这个词翻译
前向传播的结构就是这样,那么反向传播就是整个学习过程的精华,

解码器GRU

通过logsoftmax计算概率损失, 这样会知道每个词翻译错误的误差 然后向下传播
知道每个词翻译的误差后 , GRU的权重矩阵分两部分学习

1.单一时间步学习

这里想说的概念是在不考虑时间步循环的gru权重矩阵中 , 它每次翻译的机制要学习的不是 输入一个词 反应对应的词 ,这是查字典. 而应该是输入一个词 这个词是注意力机制加权后的词, 所以它一个词可以代表多个词, 那么就需要学习 多个词的情况下 这个词应该被翻译成什么 我们把这种抽象叫做语义
不好理解就举个例子: ‘xxx早上硬不起来’ 那么如果没有前后文的情况下,这个硬不起来很难消除歧义, 可以理解为困得起不来,也可以理解为阳痿… 那么注意力机制就解决了这种情况, 它将 "昨天晚上xxx3点睡的’’ 这个高纬语义添加到这个词中了, 那么翻译的时候就不会翻译错了…

2.循环时间步学习

在这里插入图片描述

attention 机制

解码器GRU的反向传播如何学习的理解说完了, 那么非常抽象的已经讲完了 到这里就异常简单了
attention机制在反向传播的过程中学习的是高阶语义
也就是
第一个循环: 0.8x我 +0.01x是你 +0.19爹
每一个词前的权重应该如何分配的
embedding作用是将输入变成词编码,本质不可能学到语义,不明白的可以复习一下word2vec的原理

但是我们知道, 注意力计算的过程是没有可以学习的参数的, 仅仅是对算法的抽象 那么这里就不用浪费嘴舌了,不懂的可以看上图
这里…唯一值得说的就是拼接过后改变形状的全连接层 这里它也许会学到如何变幻形状会拟合的更好,但是本身并没有更多抽象的功能给线性层,所以就不说了

bmm运算 - 编码器GRU

因为注意力机制要学习权重如何更好的分配,但是他自己偏偏没有需要学习的权重, 那么这个重任其实还是分配给了解码器GRU
编码器作用
1.学习如何给输入值编码
我们可以简单的理解编码在做的事情就是加密数据,从明文到暗文
而解码器就是解释器 ,将加密的数据解密
2.抽取高纬语义
这里简单说就是通过循环(记忆力机制) 编码器的输出会带有记忆力,也就是高纬语义特征

反向传播学啥
1.更好的抽取高纬语义
因为注意力机制本身要解决的是碎片化的语义和梯度爆炸等问题, 那么编码器要做的第一要义是给 注意力层更好的输入,让他能更好的得到效果更好的bmm计算结果, 这样不仅每次学习的碎片化高阶语义会被注意力整合成完整的高阶语义 还会被记忆力机制加权
2.更好的编码
这个说更好的编码其实有点扯,但是我们可以逆向看待问题
如果没有注意力机制,这编码器在做啥?
简单的高阶语义抽取 其实就是更好的编码 没有注意力机制的话学习偏向给解码器更好的结果的方向
有注意力机制的话 学习结果偏向更好的bmm运输结果
这两者异曲同工,但又不完全相同

整个框架只能说精妙绝伦,就好像第一次看到word2vec中的霍夫曼softmax 的作用的时候 其中的魅力不言而喻

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值