transformer_01

一、传统RNN存在的问题

1.序列前序太长,每个xi要记住前面的特征,而且一直在学,没有忘记,可能特征不能学的太好

2.串行,层越多越慢,难以堆叠很多层;

3.只能看到过去,不能看到未来

搞个双向的,然后把两个方向学到的特征拼接,那么对于xi影响最大的是xi-1和xi+1吗?是相邻的两个吗,不一定,所以也不太合理

二、重大事件 

1.2017年 attention is all your need  出现,RNN退出历史舞台

2.2018 年 transformer  更空出世,bert 和GPT1 

transformer究竟是干什么的?通俗上说就是:1是平淡无奇的特征,2是特征鲜明的特征,transformer的功能就是把1输入进去,然后输出2.

没有transformer之前的算法  训练模型就是训练参数,更新参数,但是transformer不仅更新参数,还可以根据上下文信息更新数据,transformer站的高看的远,考虑全文

三. self-attention

假设x1,x2是两个向量,它们两个的关系就是算内积 ,x1.x2=0表示没关系,x1.x2=表示关系特别大。

transformer中 不是简单算内积,而是构建三个向量参数  q,k,v,q相当于问,k相当于答,比如词 thing ,mathines编码后的特征是x1,x2,则x1和x1的关系是 q1.k1,x1和x1的关系是 q1.k2,x2和x2的关系是 q2.k2,x2于x1的关系是 q2.k1,怎么得到q,k,v呢?

q,k,v都是需要设计一个wx+b(w,b都是先初始化,再通过训练更新)的矩阵,通过和向量矩阵x1x2  全连接 计算得来的。参数值是通过训练得到的。transformer本质就是提特征。最后得到w,b,q,k,v ,怎么得到v呢?

value 表示自身特征,表示对自身的认知。也是需要学习的,输出attention value

向量维度越大,得到内积就越大,这是不合适的,需要排除特征维度的影响。所以要归一化,将值变成概率,dk是特征的维度。

比如想得到500维的特征向量,那就可以分5个头,也就是5组q,k,v,最后拼接,就可以得到更丰富的特征。

此例子中,我打你  ,你打我,两句话中的词 的特征是不变的,也就是说transformer对位置特征不敏感,所以需要加入位置信息

加入one-hot的位置编码,特征与对应位置的编码做加法就可以了

可以堆叠多层self-attention吗?可以模仿15年出世的resnet残差结构来实现,因为每一次的self-attention的输入和输出维度都一样,所以可以堆叠多层。

self-attention相当于encoder层,会得到每一个词的特征,那输出就是要利用这个学出来的特征去做事,比如翻译,就是decoder层了。左边的encoder部分每个词都通过self-attention学到了特征,右边decoder部分每一个词要提供q, encoder提供k,v ,q1k1=v1,q1k2=v2,q1k3=v3,q1k4=v4, 这就是cross-attention,decoder需要self-attention吗?要,只不过是只需要算后面和前面的关系,即算q2和q1的关系,不需要算q1和q2的关系,因为算去q1的时候,还没有q2呢,只能从后往前看,不能从前往后看,所以加入MASK机制遮挡后面看不到的

input: 输入一个词   

input Embedding  :词嵌入,即把词变成一个特征向量

norm:BN,批处理

add:残差链接

feed forward: 全连接     linear  也是全连接

注意:decoder部分 既有self-attention,又有cross-attention

多模态就是要学习各种特征,实际上就是cross- attention

bert  : 自监督  ,随机遮挡15%的词,然后预测这些词

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/108528.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是NetApp的DQP和如何安装DQP?

首先看看什么是DQP,DQPDisk Qualification Package,文字翻译就是磁盘验证包。按照NetApp的最佳实践,要定期升级DQP包,保证对最新磁盘和磁盘扩展柜的兼容。 本文主要介绍7-mode下如何升级DQP,至于cluster mode另外文章…

Linux Zabbix企业级监控平台+cpolar实现远程访问

文章目录 前言1. Linux 局域网访问Zabbix2. Linux 安装cpolar3. 配置Zabbix公网访问地址4. 公网远程访问Zabbix5. 固定Zabbix公网地址 前言 Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。能监视各种网络参数,保证服务器系…

基于边缘网关构建水污染监测治理方案

绿水青山就是金山银山,生态环境才是人类最宝贵的财富。但是在日常生活生产中,总是免不了各种污水的生产、排放。针对生产生活与环境保护的均衡,可以借助边缘网关打造环境污水监测治理体系,保障生活与环境的可持续性均衡发展。 水污…

NewStarCTF2023week2-Upload again!

尝试传修改后缀的普通一句话木马&#xff0c;被检测 尝试传配置文件 .htaccess 和 .user.ini 两个都传成功了 接下来继续传入经过修改的木马 GIF89a <script language"php"> eval($_POST[cmd]); </script> 没有被检测&#xff0c;成功绕过 直接上蚁剑…

微查系统,一站式查询,让您的查询更加便捷

微查系统是挖数据一款功能强大的查询系统&#xff0c;是一个集多种查询和核验工具于一身的综合性平台。它可以大大简化企业和个人的查询流程&#xff0c;节省时间和成本&#xff0c;提高查询的准确性和效率。本文将介绍微查系统的主要特点&#xff0c;功能和使用方法&#xff0…

C++数据结构X篇_15_求二叉树叶子数与高度(递归方法)

本篇参考求二叉树叶子数与高度&#xff08;C&#xff09;进行整理。 文章目录 1. 二叉树中叶子数与高度2. 求二叉树叶子数与高度的实现代码 1. 二叉树中叶子数与高度 我们首先来看一看二叉树中叶子数与高度的定义&#xff1a; 叶子数&#xff1a;对于一个二叉树的节点&#x…

新型的终端复用器 tmux

以前遇到长时间执行任务时&#xff0c;一般是使用nohup加后台运行&#xff0c;但是涉及到少量代码编写。 同事介绍了一个screen命令&#xff0c;根据文档&#xff0c;此命令已经过时&#xff0c;最新的命令是tmux。 tmux的介绍文档&#xff0c;RedHat的这一篇非常不错。 在文…

图详解第四篇:单源最短路径--Dijkstra算法

文章目录 1. 最短路径问题2. 单源最短路径--Dijkstra算法算法思想图解如何存储路径及其权值代码实现调式观察打印最短路径Dijkstra算法的缺陷 3. 源码 1. 最短路径问题 最短路径问题&#xff1a; 从带权有向图&#xff08;求最短路径通常是有向图&#xff09;G中的某一顶点出发…

linux下的rsync(文件同步) 用法教程

一、简介 rsync 是一个常用的 Linux 应用程序&#xff0c;用于文件同步。 它可以在本地计算机与远程计算机之间&#xff0c;或者两个本地目录之间同步文件&#xff08;但不支持两台远程计算机之间的同步&#xff09;。它也可以当作文件复制工具&#xff0c;替代cp和mv命令。 …

BIO实战、NIO编程与直接内存、零拷贝深入剖析

原生 JDK 网络编程 BIO BIO&#xff0c;意为 Blocking I/O&#xff0c;即阻塞的 I/O。   BIO 基本上就是我们上面所说的生活场景的朴素实现。在 BIO 中类 ServerSocket 负责绑定 IP 地址&#xff0c;启动监听端口&#xff0c;等待客户连接&#xff1b;客户端 Socket 类的实例…

SpringMVC源码分析(三)HandlerExceptionResolver启动和异常处理源码分析

问题&#xff1a;异常处理器在SpringMVC中是如何进行初始化以及使用的&#xff1f; Spring MVC提供处理异常的方式主要分为两种&#xff1a; 1、实现HandlerExceptionResolver方式&#xff08;HandlerExceptionResolver是一个接口&#xff0c;在SpringMVC有一些默认的实现也可以…

【算法练习Day22】 组合总和 III电话号码的字母组合

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 组合总和 III剪枝 电话号码…

node 通过axios发送post请求(FormData)

方案一&#xff1a; const axios require(axios) const FormData require(form-data) const fs require(fs)const sdUpscaleOnAzure async (req, res) > {const data new FormData()data.append(image, fs.readFileSync(/temp/ai/sd/download/1.png))let config {hea…

R/d2及S/C4估计总体标准差,比较其CPK及规格限概率的差异

R/d2 和 S/C4 是用于估计总体标准差的无偏估计方法&#xff0c;通常用于控制图中。这些估计方法的主要目的是通过样本数据来估计总体标准差&#xff0c;以便监测过程的稳定性和变异性&#xff0c;而不需要收集整个总体的数据。 具体来说&#xff1a; R图中的 R/d2 和 S图中的…

gitlab自编译 源码下载

网上都是怎么用 gitlab&#xff0c;但是实际开发中有需要针对 gitlab 进行二次编译自定义实现功能的想法。 搜索了网上的资料以及在官网的查找&#xff0c;查到了如下 gitlab 使用 ruby 开发。 gitlab 下载包 gitlab/gitlab-ce - Packages packages.gitlab.com gitlab/gitl…

本地搭建渲染农场和云渲染农场哪个更推荐?看完帮你省下几个w

&#xfeff; 渲染农场是由众多机器组成的渲染集群&#xff0c;主要用于渲染单帧效果图或动画项目。凭借渲染农场的强大计算能力&#xff0c;设计师能够满足3D项目紧迫的交期要求。最近&#xff0c;小编注意到许多设计师对以下问题产生了疑惑&#xff1a; 是否可以自行搭建渲…

MySQL查询优化看一篇就够了

关联查询优化 数据准备 #分类 CREATE TABLE IF NOT EXISTS type( id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, card INT(10) UNSIGNED NOT NULL, PRIMARY KEY ( id ) );#图书 CREATE TABLE IF NOT EXISTS book(bookid INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,cardINT(10…

fatal:Could not read from remote repository解决方法

Linux服务器如何连接GitHub&#xff1f; 生成SSH密钥 ssh-keygen -C “邮箱” -t rsa 存放位置一般是/root/.ssh/id_rsa 登录个人github&#xff0c;添加客户端生成的公钥 打开Settings&#xff0c;点击SSH and GPG keys&#xff0c;点击New SSH Key。Key中粘贴id_rsa.pub…

以太网UDP数据回环实验

一、TCP/IP协议簇 前面说到TCP/IP是一个协议簇&#xff0c;其中包含有IP协议、TCP协议、UDP协议、ARP协议、DNS协议、FTP协议等。设备之间要想完成通信&#xff0c;就必须通过这些网络通信协议。 物理层的主要作用就是传输比特流&#xff08;将1、0转化为电流强弱来进行传输&am…

【来点小剧场--项目测试报告】个人博客项目自动化测试

前述 针对个人博客项目进行测试&#xff0c;个人博客主要由七个页面构成&#xff1a;注册页、登录页、个人博客列表页、博客发布页、博客修改页、博客列表页、博客详情页&#xff0c;主要功能包括&#xff1a;注册、登录、编辑并发布博客、修改已发布的博客、查看详情、删除博…