当前位置:   article > 正文

NLP入门--注意力机制_csdn bigtailhao

csdn bigtailhao

RNN

2输入2输出
权值时间维度共享
可以双向RNN(相当于增加了从右向左阅读),多层RNN,并且输出尺寸不一定等于输出尺寸,也存在GAP,全连接层等。
先横向传导,后纵向传导
https://zhuanlan.zhihu.com/p/371849556

LSTM–long short term memory

3输入3输出
功能上类似resnet,利用浅层特征,有效解决梯度爆炸/梯度弥散的问题
为了有效利用浅层特征,增加了cell status,保存历史信息,参数总量从4个到了6个。
cell status :遗忘不重要信息,保存过去的状态,新的输入,新的输出,参数量4->6。
在这里插入图片描述
https://zhuanlan.zhihu.com/p/55949716

GRU 的张量运算较少,因此它比 LSTM 的训练更快一下。很难去判定这两者到底谁更好,研究人员通常会两者都试一下,然后选择最合适的。

激活函数

nlp更常用tanh 当做激活函数,不用sigmoid,relu6
不知道是不是因为文字信息也可以倒叙阅读(从左向右只是人类的习惯),而tanh恰好为奇函数
在这里插入图片描述

embeding

在分词之后(之前用过jieba中文分词,不知道现在更多用哪种工具)
通过embeding把文字变成向量
最简单可以通过语料库直接转化,不认识的单词可以用1代替,同时用0补齐padding
目前常用word2vec进行embeding,如果数据量足够大随机初始化效果应该也不错。

transformer

解决的问题
seq to seq 问题中时间空间信息都需要
cnn 更多的关注空间
rnn 更多的关注时间

解决方案
不用cnn,rnn 《attention is all you need》

self attention
矩阵相乘得到qkv
多头attention,多组qkv,每组qkv关注点不同
在这里插入图片描述

问题
self attention 没有位置信息

根据公式生成位置信息,bert里面的位置信息也是这样
在这里插入图片描述
layer norm
和cnn使用batch norm不同这里常使用layer norm
https://blog.csdn.net/bigtailhao/article/details/120692291?spm=1001.2014.3001.5502
在这里插入图片描述
encode,decode
最后6个结构相同,权重不同的encode,decode
我理解这里虽然已经引入了位置信息,但是通过encode,decode使得更加充分的利用了位置信息。

具体的细节没看太明白下次继续。

参考资料
https://www.bilibili.com/video/BV1nL4y1B7eg?from=search&seid=1302308821873104510

CV领域的注意力机制
SENet------Squeeze-and-Excitation (SE) 模块
认为每个channel学习的特征的重要性不同
主要流程如下:
GAP
2个全连接
sigmoid
得到每个channel的权重
最后对应相乘Excitation
在这里插入图片描述
参考资料
https://www.baidu.com/link?url=7yHbc7inh4yGqb0p-4T_O6I4aocS5ALSTSi8BrwvESC2IFdTuWWs0YY82p-CbW-u&wd=&eqid=b79e5b200002eae60000000561700c72

感觉transformer还是有点复杂的,很多地方还没看明白。

有个之前一起做项目的中科大师弟在硬件上实现过Transformer,有机会问问和他交流一下看看。

Transformer硬件实现第二篇:Pytorch基础知识补充(1)
https://blog.csdn.net/weixin_39188182/article/details/120714700?spm=1001.2014.3001.5501

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/753040
推荐阅读
相关标签
  

闽ICP备14008679号