transformer 网络概述

news2024/12/25 13:34:29

1. RNN存在的问题

  • RNN对并行计算并不友好,下一输出依赖于上一输入,难以实现并行高效计算
  • RNN相比较与self-attension模块,缺少对部分变量权重的预估,输出的数据默认拥有一致的权重

2. self-attension

self-attension是干嘛的?是为了弥补word2vec的不足,word2vec是采用统一的模式获取每个次的信息,使用的过程中忽略了在不同上下文的重要性,不同的词在不同的上下文中具有不同的重要性,但word2vec做的不好,所以使用self-attension,self-attension针对不同的上下文都做相应的计算,更灵活的获取了上下文信息。

需要三个训练矩阵, Q , K , V Q,K,V Q,K,V分别对应" query,要去查询的;key,等待被查的;value,实际特征信息"

  • Q Q Q K K K的内积表示有多匹配(内积相当于投影,相关性越大,内积越大)
  • 注意图中的 d k \boxed{\sqrt{d_{k}}} dk ,为了保证维度不会影响分支,做了一个归一化self-attension的计算过程在这里插入图片描述在这里插入图片描述

3. multi-headed多头机制

上面说到,一组 Q , K , V Q,K,V Q,K,V可以编码除一个 Z Z Z,尝试使用多组 Q , K , V Q,K,V Q,K,V生成多组 Z Z Z再做融合降维(参考卷积中的多卷积核),融合可以使用全连接的方式
在这里插入图片描述最终的流程:一组 Q , K , V Q,K,V Q,K,V是有半部分图片中的一片,多组是多片,然后concat后利用全连接行程最终的Multi-Head Attension

在这里插入图片描述

4. 其他

  • 上面说到,每个词都会考虑全局做编码,这就导致这个词不管在句子中的哪个位置,最终的编码结果都是一样的,这有悖于我们的认知,所以需要添加位置编码信息。对位置进行编码的方式有多种。
  • LayerNormalization是针对每一层进行归一化,BN是在channel方向进行的归一化,而LN是在单channel方向进行的归一化。
  • nask机制,在deconder解码的过程中,还需要将已经预测过的序列再次加入到模型中,针对当前的预测词,使用mask遮住
  • bert的理解,bert就是tranformer中的encoder模块的功能,他不需要标签数据,而是使用mask方法,就是遮住部分输入再预测被遮住的部分,还有就是通过预测两个句子是否在一起。

5. 整体架构

总体思路就是:[ 编码(QKV+Pose)+输出(编码)] + 解码 + 输出,总体见下图(图源水印)
在这里插入图片描述

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

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

相关文章

Shell编程规范与变量使用(再也回不到故事开始的第一章了)

一、Shell编程概述 1.Shell脚本的概念 将要执行的命令按顺序保存到一个文本文件,给该文件可执行权限,可结合各种shell控制语句以完成更复杂的操作。 2.Shell脚本的应用场景 重复性操作 交互性任务 批量事务处理 服务运行状态监控 定时任务执行 … 3…

【MySQL高级】——SQL执行流程

一、MySQL 中的 SQL执行流程 1. 查询缓存 Server 如果在查询缓存中发现了这条 SQL 语句,就会直接将结果返回给客户端;如果没 有,就进入到解析器阶段。需要说明的是,因为查询缓存往往效率不高,所以在 MySQL8.0 之后就抛…

设计模式 -- 组合模式

前言 月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂) 央是一片海洋,海乃百川,代表着一块海绵(吸纳万物) 泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出) 月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容 希望大家一起坚持这个过程,也同…

CKA证书题库-总结

CKA真题(考题总结) 文章目录 CKA真题(考题总结)证书个人考试总结申诉结果 CKA题目参考博主重点介绍 CKA模拟题库 注意事项考试概要考试注意事项: CKA题目答案设置自动补全方法一方法二 第⼀题:权限控制RBAC…

C语言编程技巧 --- C语言中左移右移与乘除法的比较

C语言中右移与除法的比较 最近在做项目的时候,遇到了一个有趣的现象。那就是,对于除2的整数次幂的操作而言,为了加快计算速度,一般情况下,会用右移(>>)来替代除法(/&#xff0…

SparkSql(RDD、DataFrame、DataSet详解)idea实例+jdbc读取数据库并保存至数据库或本地

DataFrame 是什么 DataFrame 是一种以 RDD 为基础的分布式数据集,类似于传统数据库中 的二维表格。DataFrame 与 RDD 的主要区别在于,前者带有 schema 元信息,即 DataFrame 所表示的二维表数据集的每一列都带有名称和类型。这使得 Spark SQL …

QT Data Visualization 模块概述(数据三维显示的模块)

Data Visualization 是 Qt 提供的用于数据三维显示的模块。在 Ot 5.7 以前只有商业版才有此模块,而从Qt5.7 开始此模块在社区版本里也可以免费使用了。Data Visualization 用于数据的三维显示,包括三维柱状图、三维空间散点、三维曲面等。Data Visualiza…

KeepChatGPT插件-提效神器,解决ChatGPT报错!

KeepChatGPT插件-提效神器,解决ChatGPT报错! 一、错误提示 最近⼏天,相信不少人在使用OpenAI的ChatGPT时都发现一个问题,就是官⽹报错越来越频繁了。 当你需⽤ChatGPT来处理⼀些⽐较琐碎的任务时,⼀旦你离开⻚⾯时间…

Java多线程基础-7:wait() 和 notify() 用法解析

线程之间是抢占式执行的,线程调度是无序的、随机的,因此线程之间执行的先后顺序是难以预知的。但是,实际开发中,有时我们希望合理地协调多个线程间执行的先后顺序。 虽然 join() 算是一种控制顺序的方式,但它毕竟“功…

4月第3周榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩平台)发布!

飞瓜轻数发布2023年4月17日-4月23日飞瓜数据UP主排行榜(B站平台),通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况,为用户提供B站号综合价值的数据参考,根据UP主成长情况用户能够快速找到运营能力强的B…

【华为机考】模拟题:Words、Vowel、计算字符串重新排列数

前言 刷题之路任重而道远,革命尚未成功,同志仍需努力。由于刷惯了 LeetCode,虽然知道华为机考是需要自己输入输出,也稍稍练了一下,结果真做模拟题的时候,一下子忘了怎么获取字符串了,直接搞了个…

数据降维算法 | Matlab基于局部费歇尔判别(LFDA)的分类数据降维可视化

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 数据降维算法 | Matlab 基于局部费歇尔判别(LFDA)的分类数据降维可视化 部分源码 %--------------------

了解网卡的类型

网卡,即网络接口卡,也叫NIC卡,是一种允许网络连接的计算机硬件设备。网卡应用广泛,市场上有许多不同种类,如PCle网卡,服务器网卡。本文将对网卡的基础,功能,元件与类型进行全方位讲解…

用友自主研发企业商用版TimensionDB时序数据库重磅发布!

2023年4月19日,用友BIP技术大会上,用友自主研发专用企业服务能力的商用版时序数据库——TimensionDB重磅发布!源于物联网、工业4.0等场景实践,打造自主、安全、可控的专业服务工业企业的轻量级、高性能、易使用的时序数据管理引擎…

linux-02-软件安装-centos7配置jdk、tomcat、lrzsz、项目部署(Git、Maven)

文章目录 Linux-Day02课程内容1. 软件安装1.1 软件安装方式1.2 安装JDKshell脚本里写 cd命令不生效 1.3 安装Tomcat1.3.1 Tomcat安装好多方便的自定义命令:1.3.2 Tomcat进程查看1.3.3 防火墙操作1.3.4 停止Tomcat 1.4 安装MySQL1.4.1 MySQL安装1.4.2 MySQL启动1.4.3 MySQL登录1…

PYQT5学习笔记04——QObject对象和属性名称设置API以及对应案例

一、QObject对象和属性名称设置API 简单介绍一下PyQt5最上层父类QObject的一些属性方法,并给出具体的使用过程示例。 1、setObjectName(“唯一名称”)和objectName() setObjectName方法的作用是给Qt对象设置一个名称,一般这个名称是唯一的,这…

Excel技能之实用技巧,高手私藏

今天来讲一下Excel技巧,工作常用,高手私藏。能帮到你是我最大的荣幸。 与其加班熬夜赶进度,不如下班学习提效率。能力有成长,效率提上去,自然不用加班。 消化吸收,工作中立马使用,感觉真不错。…

【Java】Eclipse如何创建java项目并运行

前面Eclipse、JDK的安装与JDK环境变量配置好了之后,开始进行基本的使用 一、创建java项目并运行 1、先打开Eclipse IDE 2、创建项目 点击左上角的File—>New—>Project,这样就可以新建一个Java的项目了。也就是说,在Eclipse中&#…

设置ubuntu开机启动脚本

一、新建xx-setpower.service文件 sudo gedit /etc/systemd/system/xx-setpower.service [Unit] DescriptionXX SetPower Service Afternetwork.target Wantsnetwork.target[Service] Typesimple PIDFile/run/take_up_boot.pid ExecStart/usr/bin/take_up_boot.sh Restarton-…

二进制码与格雷码的相互转换原理与Verilog实现

二进制码与格雷码的相互转换原理与Verilog实现 一、写在前面二、二进制码与格雷码的相互转换2.1 二进制码转格雷码原理2.2 异或运算的特性2.3 格雷码转二进制码原理 三、二进制码与格雷码相互转换的Verilog实现四、仿真验证五、写在后面 一、写在前面 二进制码是一种基于二进制…