首页 > 其他分享 >每日学习记录20230323_Bert视频学习

每日学习记录20230323_Bert视频学习

时间:2023-04-11 09:04:20浏览次数:44  
标签:Bert Transformer 20230323 attention 学习 计算 机制 向量

20230323:Bert视频学习

B站视频

RNN

这个东西不能并行运算,所以翻译的时候需要用Transformer,这样输出结果是同时被计算出来的.并且Transformer有注意力机制进行并行计算

Transformer

输入如何编码?

输出结果是什么?

Attention的目的?

怎样组合在一起?

Transformer最核心的机制是Self-attention,也就是让计算机关注到有价值的信息.

比如下面两句话:

这里面的it是有不同的指代的,所以这是注意力机制就需要根据上下文来决定it来自哪些词的概率,上图用热图表示.

self-attention如何计算
image-20230324091048157 image-20230324091143092

一共是三个矩阵,实际的含义如上图.

image-20230324092106366

得到每个词的四个矩阵之后,就可以举例一下,比如我想计算第一个词与第一个词和第二个词的关系,就需要计算上图最下面的两个式子的结果,也就是向量之间的内积.内积越大说明向量越相似,越趋于零说明向量越垂直.(内积是上图红线的两个数相乘,再求和).这样就算出来每个词与其他词的相关程度.

image-20230324092738393

上图的下面是softmax的计算过程,假设有三个词的值,然后就要先求\(e^x\),也就是一个转化.再用得到的每一个词的结果除所有结果的和.就变成了百分比.

image-20230324093820451

综上所述,上图就是attention计算的过程.

多头机制(multi-headed)

image-20230324103827613

所谓多头机制就是一个x用多组q k v表示, 得到多种特征表达,最后把所有特征拼接在一起,在弄一层全连接 把升高的维度降下来.

image-20230324104224402

上图就是多头机制的表示:多个q k v矩阵输入到attention机制,导致attention也有8个,然后进行concat(拼接),再进入全连接层(Linear),这就是整个的多头机制.

image-20230324104521767

上图就是使用多头机制得到的结果,红线是一个头,绿线是一个头.使用同样的输入,不同的头得到的结果是不一样的.看单个单词,一般跟自己距离近,跟自己附近的词也会相关性很大.

image-20230324105108549

上图是堆叠多层,就是ENCODER重复多次.

image-20230324132130327 image-20230324131842987

上面两个图片是:使用Bert进行阅读理解的计算的过程,输入文章和问题到Bert,然后需要额外训练两个辅助向量,分别表示答案在文章的起始位置和终止位置.因为在训练的过程中,答案是已知的文本,只是需要转化一下变成向量,这样在实际计算的时候就有评判标准了.有了标准,这样再对起始位置单词和文章中的每一个单词做点积,计算相似度得分,对终止位置也做同样的操作,最后得到起始到终止的所有单词,这就是最终的答案.

image-20230324133320728 image-20230324133332620

具体的训练过程有两种,第一是随机mask一些词,第二是判断是否两个句子是连在一起的.

标签:Bert,Transformer,20230323,attention,学习,计算,机制,向量
From: https://www.cnblogs.com/modaidai/p/17304999.html

相关文章

  • 每日学习记录20230322_Bert安装和使用
    20230322:Bert安装与使用Bert安装与使用安装教程:地址需要python版本大于等于3.5,tensorflow版本大于等于1.10.1,但是我经过测试发现,3.7.6版本不行,报错说缺少glib23,只能是使用这个教程的方法.R的一个function:file.path,用于生成路径的一个function.file.path("","p......
  • 每日学习记录20230321_Bert
    20230321:BertBert词嵌入(wordembedding):词嵌入是词的表示.是一种词的类型表示,具有相似意义的词具有相似的表示,是将词汇映射到实数向量的方法总称。之所以希望把每个单词都变成一个向量,目的还是为了方便计算,比如“猫”,“狗”,“爱情”三个词。对于我们人而言,我们可以知道......
  • 每日学习记录20230316_转录组测序数据分析
    20230316:转录组测序转录组测序数据分析最根本的是基础知识,不然给你数据你都不知道是干啥的.要多看综述,并且要多看几遍.下载GEO数据之前,需要先下载参考基因组数据.可以在三个平台上下载:ucsc,ncbi和ensemble,使用下面的检索式在搜索引擎中检索:hg38ftpucsc就得到比......
  • 每日学习记录20230308_继续PNAS代码解析
    20230308:PNSA代码解析PNAS和YF代码比较特征PNASYF输入数据DDADIA算法线性回归LASSOFA数据Ifwewanttoissueapackage,whatimprovementshouldwedounderlieYF’sprogram?BothDDAandDIAdataaresupported.achangePNAS......
  • 每日学习记录20230306_培养基
    20230306:培养基细菌培养基M9培养基和lb培养基.细菌对数生长期(logarithmicgrowthphase)微生物生长曲线完整周期示意图​ 测试原理是:不同的细菌个数对光的反射和折射不同,导致吸光系数不同,进而测量细菌不同生长状态下的OD值.Molecularstructuraldiversity......
  • 每日学习记录20230410_Bert
    20230410:BertHuggingface今天运行python-c'fromtransformersimportTFBertForTokenClassification'的时候有一个报错:Couldnotloaddynamiclibrary'libcudart.so.11.0'.查了一下发现是需要装CUDA软件,也就是英伟达调用GPU的软件,使用:condainstallcudatoolkit命......
  • 每日学习记录20230406_bert_and_torch
    20230407:tensorflowtransformertf.name_scope:这个函数会规定对象和操作属于那个范围,但是不会对“对象”的“作用域”产生任何影响,也就是不是全局变和局部变量的概念.这个东西有很多种用法:withtf.name_scope("loss"):#这个名字是随意指定,看你想干什么xentropy......
  • 每日学习记录20230403_yum
    20230403:yumyumprovides:是反查询,用于搜索某个文件在哪个软件包里面。rpm与yum的区别rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。yum基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安......
  • 机器学习-吴恩达课程笔记
    z-score归一化通过正态分布来放缩范围,注意任何放缩  在x缩小完范围以后都要改变原先的公式即y,不能只改变x的范围。缩放基本没有副作用。 多项式回归表明特征值的数量不一定等于曲线公式中x的数量,如上图,有两个x但是特征值只有一个,其实之所以会产生这个疑问还是在于x没......
  • go语言学习-gin框架学习笔记-1
    gin是一个golang的微框架,封装比较优雅,api友好,源码注释比较明确,具有快速灵活,容错方便等特点,对于golang而言,web框架的依赖远要比python,java之类的要小,自身的net/http足够简单,性能也非常不错。安装goget-ugithub.com/gin-gonic/gin//安装import"github.com/gin-goinc/gin"//......