Transformer2

1.编解码

外国人来到中国,是如何知晓“梨”的中文?

相同的词,上下文应该都是相关的,又因为是计算机,所以需要将语义关系码进行数字化,这些数字需要体现出语义关系。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1.编解码的两个标准

编解码的两个标准包括:1.数字化;2.表达数字化后的数值之间的语义关系。

分词器和独热编码one-hot的问题:

  • 分词器:将数值映射到一维空间中,太过密集,容易出现语义冲突。只利用了长度,没有把维度利用起来。
  • one-hot:维度太高,比如苹果香蕉华为,独热编码的维度和token数相关,因此这里维度为3,100,010,001,用向量表示的话,发现发现token之间内积为0,空间维度太高,忽略token之间的长度问题,导致他们分布过于均匀,没有利用长度表达语义之间的关系。

那么如何解决以上两种极端情况呢?

  • 要么将一维进行放缩为高维,要么将高维进行压缩。【压缩数据肯定比解压要更简单】

  • 所以我们对独热编码进行降维。这里就设计矩阵和空间变换的基础了,我们可以利用向量和矩阵相乘,将向量(向量中的每个元素你可以视作一个数据点)投射到一个新的空间中,本质是对原始的向量进行了一个Linear变换(依旧是一个点对点的关系)。

一次函数(也就是线性函数),那么变量和函数值就是一个一一对应的关系,而二次函数身为非线性函数就无法保证点和点的关系。

所以说矩阵相乘能够很好的进行空间变换并保证数据与数据之间的关系。

2.神经网络基础

神经网络的数学表达式本质也是一堆矩阵运算。

sigmoid(WTX+B):本质上就是一个非线性变换,除了将原来的数据点投射到新的空间外,还能通过偏置B学习到现实世界的误差(即一种噪音),从而能够很好的拟合现实世界的数据分布。

比如猫狗分类,如果我们将原空间里面的每个数据都视作一个点的话,那么照片的分类结果就相当于投射到了新的空间,如果只需要分辨猫和狗两种状态的话,那么新空间也就只有两个点,即多对一的关系。而神经网络的作用本就是实现原空间的非线性变换,使所有能够代表猫的数据投射到一个点上,能够代表狗的数据投射到一个点上。

为什么增加更多的神经元就有更强的能力?

神经元越多,我们就能将原有数据映射到一个更高的维度的中,即便在更高的维度中,一定能找到一个超平面将数据进行分类。

为什么隐藏层越多,神经元数越少?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们可以将隐藏层理解为:它是对上一层原始数据进行抽象。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

再细致一点来说,隐藏层数可以代表他对数据进行抽象的程度,如下图的数字分类(隐藏层数越高,抽象程度越高):

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3.回答为什么要进行编码解码

编码: 先将文本编成独热码one-hot,然后进行降维,这个过程相当于将输入的一句话根据语义映射到一个潜空间中,把高维对象投射到潜空间,即为Embedding,而将高维映射到低维的矩阵即叫做嵌入矩阵。这个过程叫做词嵌入。

潜空间到底代表什么?

潜空间本身就代表一个语义空间,如下图所示,每个向量代表一个title,而在图片中,潜空间每个向量即为一个通道,而一个文本的含义也就是潜空间上所有语义叠加在一起。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

而潜空间与中文手册实验最大区别就是:潜空间是连续的,而中文手册不是,哪怕遇到之前没有学习过的情况,仍然能够在潜空间中找到对应的对象,而中文手册更像是一个K-V,这是无穷尽的。

4.如何找到将真实语言中的token投入到潜空间的方法?

即找到能够将token进行降维的嵌入矩阵——Word2Vec.

Word2Vec的作用:类似于编词典给Token用。

Word2Vec的主要方法:CBOW

核心思想就是根据上下文语义信息推断出缺失tokend的语义,类似于高中物理,根据力的分力得到合力。它的目的并不是完形填空帮助你找到缺失词的具体内容,而是像词典一样帮你找到近似语义。

因此,你可以发现,根据Word2Vec训练出来的潜空间里面的词向量对应的词意,不依赖于作者的主观意图,是一种客观表达,跟语境相关。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5.注意力

对词和词组合后的语义理解,就是靠的注意力机制。

注意力机制需要搞定的就是:识别出因为上下文关联而对词典中原本客观的语义,进行调整的幅度

Q和KT之间的内积运算主要体现的是它们之间相互的关系,每一个词向量都要和其他的词向量进行相乘得到关系。然后进行softmax得到概率分布,即得到语义之间的相互关系

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

为什么要用两个剧中Q*KT相乘呢?

如果用一个矩阵进行相乘的话就是一个线性运算,输入的数据X到输出数据A是一个线性变化,只能表示线性关系。

而两个句子相乘,看起来就像一个二次型,更像是一种高维版本,有着更强的表达能力,给模型注意力机制加一些非线性要素。

为什么不能用矩阵跟自己转置相乘呢(如下图B所示)?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

首先语义可以分为两部分

把主观语义分为设定语义和表达语义,并存不同的思想,但又可以基于一套客观语义所表达出来。

  • 设定语义:提前设置好了语境背景,为后面表达设定基础。
  • 表达语义:根据上下文语义填写挖空。
  • 在不同的设定语义之下,表达的思想不同,而又可以基于一套客观语义表现出来。

如果设定语义和表达语义有差异的话,会通过反向传播算法,利用WQ和WK进行点积缩小差距。

6.自注意力机制

自注意力机制都是从原有材料里面总结出来的,且Q、K、V的生成都是来自相同的数据。因此自注意力机制需要先了解设定语义,根据设定语义理解表达语义。

7.交叉注意力机制

像是身边有参考资料,省略掉了理解设定语义的过程,但是只能在表达语义中学习知识,交叉注意力适合校准,因此适用于翻译任务。

8.Transformer中的训练和推理流程

1.训练:

比如好久不见long time no see,分别输入到编码器和解码器,然后按照Transformer的流程,直到红圈地方有一个交叉注意力进行互相匹配,最后得到一个损失函数,即得到二者词向量之间的差异。然后通过损失函数得到的损失值进行反向传播去修改模型的参数,最后使编码器和解码器在潜空间的词向量的词义是能够对应起来的。

2.推理:

把输入翻译成词向量,再把词向量翻译成对应目标的语言可以吗?

答案是肯定不行的,因为中英文的token并不一一对应。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

那么翻译问题是如何解决的呢?

Transformer在解码器中采用了RNN的策略。编码器不变,依旧将输入编码得到潜空间里的词向量。在解码器部分,需要输入一个代表开始的特殊符号,然后经过交叉注意力进行计算得到一个结果,然后将这个结果

经过升维和SoftMax结果计算后会将词汇表中的所有Token计算一个概率数值,然后选择概率最大的那个作为结果,这个结果代表下一个Token为什么。

然后下一次解码器的流程就会将以前的输出作为一个新的输入,经过交叉注意力得到新的结果。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

9.位置编码

如果没有位置编码,所有的Token就会被Transformer并行计算了,所以我们要保证词向量的位置顺序。

  • 通过矩阵乘法增加位置信息。【影响偏大,增加位置信息相当于加了一层结构】
  • 通过偏置B增加位置信息。

我们可以加一个矩阵,该矩阵可以体现出词向量的相互顺序。这里的具体工作是:将一个自然数集映射到与词向量维度相同的连续空间中。然后与词向量矩阵进行相加。

如何把自然数映射到连续空间中?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

傅里叶级数:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

我们将函数看作向量,然后相加。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

思路:通过痕迹还原出案发过程和作案动机来。【侦探:通过作案动机思考作案背景对作案痕迹进行推导】

绝对位置编码和相对位置编码的区别:
  1. 绝对位置编码是对数据进行修改,数据本身进行增强。
  2. 相对位置编码,会更多考虑到一个词向量和另一个词向量的相对位置。

10.多头注意力机制

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

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

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

相关文章

复习之 java 锁

裁员在家,没有面试机会,整理整理面试知识点吧! 不得不知道的java 锁 Java 中,提供了两种方式来实现同步互斥访问(也就是锁):synchronized 和 Lock 多线程编程中,有可能会出现多个线…

基于YOLOv8的缺陷检测任务模型训练

文章目录 一、引言二、环境说明三、缺陷检测任务模型训练详解3.1 PCB数据集3.1.1 数据集简介3.1.2 数据集下载3.1.3 构建yolo格式的数据集 3.2 基于ultralytics训练YOLOv83.2.1 安装依赖包3.2.2 ultralytics的训练规范说明3.2.3 创建训练配置文件3.2.4 下载预训练模型3.2.5 训练…

招聘|头部云厂商招 PG 核心骨干 DBA【上海】

我们的招聘专区又回来了!🏃 Bytebase 作为先进的数据库 DevOps 团队协同工具 🔧,用户群里汇聚了 💗 业界优秀的 DBA,SRE,运维的同学们 🌟。 上周用户群里有小伙伴发招聘信息 &…

webrtc学习笔记1

WebRTC开发环境 配置vscode 安装插件 Prettier Code Formatter 使用 Prettier 来统一代码风格,当保存 HTML/CSS/JavaScript 文件时,它会自动调整代码格式。 Live Server:在本地开发环境中,实时重新加载(reload)页面。 第一个简…

QT:Telnet客户端与服务器的创建

客户端 telnetClient类 #ifndef TELNETCLIENT_H #define TELNETCLIENT_H#include <QObject> #include <QTcpSocket>class TelnetClient : public QObject {Q_OBJECTpublic:explicit TelnetClient(QObject *parent nullptr);~TelnetClient();// 连接到指定的主机…

启发式算法之模拟退火算法

文章目录 1. 模拟退火算法概述1.1 算法起源与发展1.2 算法基本原理 2. 算法实现步骤2.1 初始化过程2.2 迭代与降温策略 3. 模拟退火算法的优化策略3.1 冷却进度表的设计3.2 参数调整与策略 4. 模拟退火算法的应用领域4.1 组合优化问题4.1.1 旅行商问题&#xff08;TSP&#xff…

YOLO好像也没那么难?

“学YOLO的念头是想整个游戏外挂&#xff01;” 目录 基本原理 模型推理 IOU交并比 NMS非极大值抑制 模型训练 损失函数LOSS 代码实现 YOLO学习渠道 基本原理 模型推理 学习一个新的神经网络结构&#xff0c;作者认为整明白输入和输出是怎么回事就OK了&#xff0c;至于…

HTML静态网页成品作业(HTML+CSS)——安徽宣笔设计制作(5个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有6个页面。 二、作品演示 三、代…

回调函数,字符函数,字符串函数

前言&#xff1a;上一趴我们学习了指针。那么今天我们来学习新的知识&#xff0c;回调函数&#xff0c;字符函数&#xff0c;字符串函数。 1 回调函数 什么是回调函数呢&#xff1f;回调函数就是通过函数指针调用的函数。 如果你把函数的指针&#xff08;地址&#xff09;作…

【Docker系列】Docker 容器时区设置指南

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

尚硅谷MYSQL(5-6章)

排序和分页 排序 如果没有使用排序操作的话 查询出来的数据是按添加的顺序排序的 ORDER BY是来进行排序的 后面可以添加ASC升序 DESC降序 如果后面没有显示指明排序的方式的话 则默认按照升序排序 where中不能使用列的别名 我们在使用sql语句的时候 她的执行顺序不是从第一…

FastCopy文件快速复制v5.7.15

软件介绍 FastCopy文件快速复制工具。Windows平台上最快的文件复制、删除软件&#xff01;功能强劲&#xff0c;性能优越&#xff01;它是源于日本的高效文件复制加速软件&#xff0c;支持拖拽操作&#xff0c;三种不同HDD模式&#xff1b;支持通配符&#xff0c;任务管理/命令…

微信小程序保存图片到相册

申请权限 代码如下 wx.downloadFile({url: image, //仅为示例&#xff0c;并非真实的资源success(res) {// 只要服务器有响应数据&#xff0c;就会把响应内容写入文件并进入 success 回调&#xff0c;业务需要自行判断是否下载到了想要的内容if (res.statusCode 200) {consol…

XSS Game练习

1.Ma Spaghet 直接get传参 ?somebodyaaaa直接使用img标签 ?somebody<img%20src1%20onerror"alert(1337)">官方文档 应使用innertext&#xff0c;安全性更高 2.Jefff 通过代码可以知道是通过eval的代码执行&#xff0c;setTimeout中的内容表示在一秒后执行…

uniapp预览图片uni.previewImage图片放大

<image v-if"file.image!" :src"file.image" click"previewImage(file.image)"></image>file: {image: ,status: 1}, // 预览 图片previewImage() {uni.previewImage({current: 1,urls: [this.img] // 是个 数组 单张的&#xff08…

JAVA打车小程序APP打车顺风车滴滴车跑腿源码微信小程序打车系统源码

&#x1f697;&#x1f4a8;打车、顺风车、滴滴车&跑腿系统&#xff0c;一键解决出行生活难题&#xff01; 一、出行新选择&#xff0c;打车从此不再难 忙碌的生活节奏&#xff0c;让我们常常需要快速、便捷的出行方式。打车、顺风车、滴滴车系统&#xff0c;正是为了满足…

[C#]winform基于opencvsharp结合Diffusion-Low-Light算法实现低光图像增强黑暗图片变亮变清晰

【训练源码】 https://github.com/JianghaiSCU/Diffusion-Low-Light 【参考源码】 https://github.com/hpc203/Diffusion-Low-Light-onnxrun 【论文地址】 https://arxiv.org/pdf/2306.00306.pdf 【算法原理图】 【效果展示】 【测试环境】 vs2019 netframework4.7.2 …

ffmpeg采用gpu加速增加水印

1.环境需要 系统 windows10 ffmpeg&#xff0c;ffprobe 字体文件 python3以上版本 2.环境配置 从官网上下载ffmpeg版本https://github.com/BtbN/FFmpeg-Builds/releases&#xff0c;这里我用的是这个&#xff0c;解压之后里面包含ffmpeg&#xff0c;ffprobe&#xff0c;f…

【uniapp】vue3+vite配置tailwindcss

安装 npm install autoprefixer tailwindcss uni-helper/vite-plugin-uni-tailwind -Dautoprefixer &#xff1a;自动管理浏览器前缀的插件&#xff0c;可以解析css文件并且添加前缀到css内容里。uni-helper/vite-plugin-uni-tailwind: 将 Tailwind CSS 框架集成到使用 Vite 作…

Cesium天空盒子(Skybox)制作(js代码)和显示

介绍 在Cesium中&#xff0c;星空背景是通过天空盒子方式&#xff08;6张图片&#xff09;来显示的&#xff0c;原生的图片分辨率太低&#xff0c;本项目用于生成天空盒子的6张图片。最终生成的6个图片大小约为500kb(每个)&#xff0c;格式为jpg&#xff0c;总共的恒星数目约为…