首页 > 其他分享 >【学习笔记】transformer 简札

【学习笔记】transformer 简札

时间:2023-12-13 23:33:08浏览次数:36  
标签:transformer multihead self attention 矩阵 笔记 简札 Decoder 向量

高铁心血来潮逼着自己把这个模型的结构看了一遍,不写下来会忘掉的


Encoder

输入是词向量。

word vector -> [(multihead) self-attention -> forward ]×n-> layer normalization

self attention 就是 qkv矩阵乘法得到 z,multihead self attention 就是进行多个矩阵乘法然后把 \(z_1\dots z_t\) concat 起来然后再用一个 \(z_0\) 和这个 concat 过的矩阵乘一下得到 不多头得到 的 z

一开始很好奇为什么 multihead 后来想了想可能因为不多头模型效果不好,多来几组 qkv 好像是挺自然的一个增强方向。

相比于 RNN 主要改变是 position embedding,可以支持对较长信息的学习。

中间有残差连接。如果 Resnet 不出世这模型没准也没有residual 什么事。

layer normalization 是每个词的所有维度进行正则化,和 batch normalization 有些区别。

Decoder

Decoder 和 Encoder 中 multihead self-attention 的部分非常相似,不过每个单词后面的词不能对这个词产生影响,或者说矩阵的下三角是 \(-\infty\)(后面会通过 softmax 把它映射到 0~1)

Decoder 最后输出向量,和词库进行匹配,哪个词的词向量和输出向量余弦相似度大就是谁。训练过程中损失函数也可以借此获得。

标签:transformer,multihead,self,attention,矩阵,笔记,简札,Decoder,向量
From: https://www.cnblogs.com/yspm/p/Transformers.html

相关文章

  • 【Avalonia】Avalonia的学习笔记以及与WPF的不同点
    1.axaml中引用命名空间xmlns:model="using:IDataTemplateSample.Models"2.Grid支持行列的简化写法<GridRowDefinitions="Auto,Auto,*"ColumnDefinitions="Auto,*"/>3.DataTemplate根据DataType自动选择对应类型的样式,使用Window.DataTemplates加载多个DataTem......
  • C++学习笔记九:值,常量,常表达式和常初始化
    1.值:Literal:Datathatisdirectlyrepresentedincodewithoutgoingthroughsomeothervariablestoredinmemory.值:直接在代码中表示的数据,无需通过内存中存储的其他变量。值不在内存中进行存储,而是直接在二进制的可执行文件中产生。1.1整型//Literaltypes:ua......
  • verilog学习笔记1
    第一课的学习任务是:①搞清楚常用语法,重点是赋值方式这部分,对应实际电路和实现的思路②能够写出ppt里的简单程序③会使用modelsim软件、编写testbench,验证自己的代码 一、数据流建模1、连续赋值语句格式是assigna=xxx;被赋值的变量必须是wire类型语句定义了逻辑关系,可以......
  • css学习笔记
    CSS(层叠样式表)是一种用于描述网页样式和布局的语言。它使得我们可以通过选择器和属性来控制网页的外观。以下是一些CSS的基本概念:选择器:选择器用于选择要应用样式的元素。常见的选择器有标签选择器(如 p、h1)、类选择器(如 .class-name)和ID选择器(如 #id-name)等。选择器的选择范......
  • python学习笔记1(你好,python)
    虽然一直不会python,但也了解一些python的场景,比如爬取数据、数据挖掘、ai,今天开始从B站上系统学习一下今日学习笔记:1、python优点:易于读写和学习,英文描述方式专注于解决问题,代码少、有生产力易调试,解释型语言,只显示第一个错误开源免费,标准库很强大,社区也很强大2、缺点:内存占用率高,......
  • centos7 搭建 open vpn新笔记
    刚好这段时间需要用到openvpn,搭建起来也是遇到很多问题,所以在这里记录一下。openvpn:OpenVPN是受欢迎的开源虚拟专用网络的软件包之一,它是一个全功能的SSL虚拟专用网络。它使用行业标准SSL/TLS协议实现OSI第2层或第3层安全网络扩展,支持基于证书、智能卡、用户名密码等多种的客户端身......
  • openGauss学习笔记-156 openGauss 数据库运维-备份与恢复-导出数据-使用gs_dump和gs_d
    openGauss学习笔记-156openGauss数据库运维-备份与恢复-导出数据-使用gs_dump和gs_dumpall命令导出数据-导出单个数据库-导出数据库156.1导出数据库openGauss支持使用gs_dump工具导出某个数据库级的内容,包含数据库的数据和所有对象定义。可根据需要自定义导出如下信息:导出......
  • openGauss学习笔记-157 openGauss 数据库运维-备份与恢复-导出数据-使用gs_dump和gs_d
    openGauss学习笔记-157openGauss数据库运维-备份与恢复-导出数据-使用gs_dump和gs_dumpall命令导出数据-导出单个数据库-导出模式157.1导出模式openGauss目前支持使用gs_dump工具导出模式级的内容,包含模式的数据和定义。用户可通过灵活的自定义方式导出模式内容,不仅支持选定一......
  • Jmeter性能测试学习笔记
    转自https://www.cnblogs.com/yoyoma0355/p/14658807.htmljmeter定时器:https://blog.csdn.net/u013258415/article/details/78321288 性能测试的概念和公式:https://www.cnblogs.com/April-Chou-HelloWorld/p/8780384.html 压力测试:https://blog.csdn.net/weixin_52295158/a......
  • Cesium学习笔记11——坐标量测
     代码:1varannotations;2functionaxToolCoordinate(layer){3varhandler=newCesium.ScreenSpaceEventHandler(viewer.canvas);4annotations=viewer.scene.primitives.add(newCesium.LabelCollection());5handler.setInputAction(function(......