RNN、self-attention、transform的浅显或许错误的理解

RNN、self-attention、transform的浅显或许错误的理解


所有的理解都是基于我匮乏的数学知识,当成y = kx+b来理解

一、RNN的理解

刚开始学的时候看了很多文章,但是感觉都是云里雾里,要么是数学要么是各种没有说明白的图,但是看的多了以后看到《难以置信!LSTM和GRU的解析从未如此清晰(动图+视频)》 《难以置信!LSTM和GRU的解析从未如此清晰(动图+视频)》.之后,有了自己简单但可能错误的理解

rnn:遗忘门-前文信息相加,由其值的大小作为k
      输入门:将前文作为k,然后乘上当前输入
      输出门:输入门的结果与前文信息共同作为k,
      然后乘以当前输入作为输出

因而梯度爆炸、梯度消失就很好理解了,因为连续乘以k,若k大就会互相爆炸式增长,若k小就会爆炸式的小,导致梯度爆炸、梯度消失

二、self-attention的理解

我是看了这篇《浅谈Attention机制的理解》《浅谈Attention机制的理解》.才感觉理解的,

正如这篇文章结语所说“Attention机制说大了就一句话,分配权重系数。当然里面还有很深的数学道理和理论知识,我还是没搞懂滴。所以这点浅显的理解就当茶语饭后的笑谈吧。”

我的理解就是将原有的词向量作为x,重新训练了一个k的矩阵,
在decode的时候,将词向量与权重向量同时decode的作为输出


在这里插入图片描述
变为
在这里插入图片描述

与全连接层比较后的思考:
全连接层,将x作为自变量,y为因变量,求出xy直接的关系k

而预训练模型中的attention需要理解的是词语即x之间的关系,就要让x变成k,那就需要原来的k变为自变量也就是当前y=kx的x,那么在不断的训练中,词向量就出来了。让原来的k变为x,就可以kx=y(k),来完成。

三、Transform的理解

关于Transform我最不能理解的就是q、k、v这三个矩阵,在刚刚写理解的时候突然发现q、k竟然是self-attention中存在的,我之前一直以为是transform特有的
参考文章:
《transformer问题整理(参考知乎大佬内容)》《transformer问题整理(参考知乎大佬内容)》.
《transformer中为什么使用不同的K 和 Q, 为什么不能使用同一个值?》《transformer中为什么使用不同的K 和 Q, 为什么不能使用同一个值?》.

赤乐君认为:“我们知道K和Q的点乘是为了得到一个attention score 矩阵,用来对V进行提纯。”

我的理解就是kq就是计算k,只是这样kq计算可能更加具有泛化性,因为kq的矩阵方向不同。q即查询向量等于全文向量,k是q与当前字向量的相似度,kq即为输入字向量的k加权值,kv相乘就完成了当前输入字向量的加权。如下图

在这里插入图片描述
kq的矩阵并不一样,一个横向,一个纵向,代表的含义不一样,横向即自身,纵向即上文,相乘后得到全文相似度即k的值,更加具有泛化性。

四、结语

自我感觉能够解释,但是或许不那么对。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值