【大模型学习】Transformer(学习笔记)

Transformer介绍

在这里插入图片描述

word2vec

Word2Vec是一种用于将词语映射到连续向量空间的技术,它是由Google的Tomas Mikolov等人开发的。Word2Vec模型通过学习大量文本数据中的词语上下文信息,将每个词语表示为高维空间中的向量。在这个向量空间中,具有相似语境的词语通常被映射到彼此附近的位置,从而使得词语之间的语义关系得以保留。

Word2Vec有两种主要的模型结构:连续词袋模型(CBOW)和Skip-gram模型。CBOW模型试图根据上下文词语预测目标词语,而Skip-gram模型则相反,它试图根据目标词语预测上下文词语。这两种模型都使用了神经网络结构,通常是浅层的前馈神经网络。

通过Word2Vec技术,可以实现词语之间的语义相似度计算、词语之间的关系推断、词语的聚类和分类等任务,是自然语言处理领域中一个重要的基础工具。

RNN不足

在这里插入图片描述
串行,无法并行,不能加速
在这里插入图片描述

词向量的建模

Transformer是一种基于注意力机制的模型,最初用于机器翻译任务,但后来被证明在各种自然语言处理任务中都取得了巨大成功。在Transformer模型中,词向量的建模是通过自注意力机制(Self-Attention Mechanism)来实现的。

在Transformer中,输入的词语首先被转换成词向量(Word Embeddings),然后这些词向量被传递到多个Transformer层中进行处理。在每个Transformer层中,自注意力机制被用来捕捉输入序列中词语之间的关系。通过自注意力机制,模型可以计算每个词语在上下文中的重要性,并将这些重要性作为权重,对每个词语的表示进行加权求和,从而得到更丰富的上下文表示。

在自注意力机制中,每个词语的表示都会考虑到整个输入序列中的所有词语,这使得模型能够在不同位置之间进行信息交互,从而更好地捕捉上下文信息。通过多个Transformer层的堆叠,模型可以逐层地提炼和组织输入序列中的信息,最终得到更具有丰富语义信息的词向量表示。

总的来说,Transformer通过自注意力机制实现了对输入序列中词语的建模,使得模型能够更好地理解和处理自然语言文本。

Transformer网络架构

在这里插入图片描述
基本组件:seq2seq网络
核心架构是中间的网络设计

输入如何编码?

输出结果是什么?

self-attention

自注意力机制进行并行计算,输入和输入都相同。

计算方法

attention是什么?
让计算机关注到有价值的信息。
在这里插入图片描述
self-attention是什么?
关注到与自身相关的信息,融入上下文语境。
在这里插入图片描述
本质就是提取特征。(获取权重值)
在这里插入图片描述
用内积计算两个向量的关系。内积的结果为相关度分数。内积越大,相关度越高。
在这里插入图片描述
softmax用于归一化求概率。

multi-headed

多头,提取多个特征。
通过不同的head得到多个特征表达。
将所有特征拼接在一起。
通过一层全连接来降维。
在这里插入图片描述

位置信息表达

position encoding
加入位置编码

以下结果针对分类任务,其他任务需要而外考虑。
在这里插入图片描述

层归一化和残差连接

层归一化加速模型收敛,使得训练更稳定。
残差网络使得网络可以深层叠加。不同特征的融合(浅层特征和深层特征),防止模型退化。
在这里插入图片描述

mask机制

解决训练和测试的信息不对称。
在这里插入图片描述

softmax 和 linear

在这里插入图片描述

模型梳理

在这里插入图片描述

BERT

在这里插入图片描述

Transformer发家史

在这里插入图片描述

ViT(Vision Transformer)

在这里插入图片描述

对图像数据构建patch序列

图像有空间位置信息,需要添加位置信息。
patch + position embedding

CNN缺陷

为了获得更大的感受野(获取全局信息),需要堆叠很深的卷积核(不断的卷积+池化)。

Transformer

对于训练数据要求很高(数据量大)。
在这里插入图片描述

TNT

在这里插入图片描述

Swin Transformer

在这里插入图片描述

解决问题

在这里插入图片描述

Transformer Blocks

在这里插入图片描述

整体网络架构

在这里插入图片描述

窗口和滑动窗口

W-MSA(Window Multi-head Self Attention)
学习窗口内部的信息

SW-MSA(Shift Window Multi-head Self Attention)
学习窗口之间的信息

Patch Merging

下采样,类似但不同于池化。
把不同维度进行间隔采样后拼接在一起。

DETR

DETR(DEtection TRansformer)是一种基于Transformer架构的目标检测模型,它将目标检测任务转换为一个端到端的Transformer网络。这种方法消除了传统目标检测模型中需要使用特定的子网络(如R-CNN系列中的区域建议网络)的需求,取得了很好的性能。

以往的目标检测算法

Faster R-CNN

Faster R-CNN是一种流行的目标检测算法,它基于区域建议网络(RPN)生成区域建议,并对这些建议中的对象进行分类。它以在图像中检测对象的准确性和效率而闻名。
"proposal"的中文意思是“建议”或者“提议”,在Faster R-CNN中,指的是由Region Proposal Network (RPN) 生成的候选目标区域。

YOLO

YOLO(You Only Look Once)是一种流行的实时目标检测算法,它将目标检测任务视为一个回归问题,通过在单个神经网络中同时预测边界框和类别概率来实现目标检测。与传统的目标检测方法相比,YOLO具有更快的处理速度,因为它只需要在图像上运行一次网络,而不需要使用滑动窗口或区域提议。这使得它非常适合需要实时检测的应用场景,如视频分析和自动驾驶。
“Anchor”(锚点)在目标检测中通常指的是一种预定义的边界框形状和尺寸,在训练过程中用来作为参考,用于生成候选区域或者预测目标边界框的偏移量。在一些目标检测算法中,比如Faster R-CNN和YOLO,锚点被用来定义可能包含目标的区域。这些锚点可以根据数据集和目标的大小进行调整,以提高模型的准确性。

NMS

NMS是非极大值抑制(Non-Maximum Suppression)的缩写,它是一种常用的技术,在目标检测和边界框回归中用于过滤重叠的边界框。该技术通过保留具有最高置信度的边界框,并消除与其高度重叠的其他边界框来优化结果。这样可以确保在输出中每个检测到的目标只有一个边界框与之对应,从而提高检测结果的准确性和可靠性。

DETR基本思想

在这里插入图片描述

整体网络架构

在这里插入图片描述

object queries

decoder中的查询是平行的,同时进行。
在这里插入图片描述
初始化 object queries :0 + 位置编码

输出的匹配

在这里插入图片描述

匈牙利匹配

匈牙利匹配是一个图论中的算法,用于解决二部图的最大匹配问题。在二部图中,顶点集合可以分为两个互不相交的子集,使得图中的每条边的一个端点属于一个子集,另一个端点属于另一个子集。

匈牙利匹配算法旨在找到一个最大的匹配,即图中能够相互连接的边的最大数量。它采用了增广路径的方法,在图中不断寻找增广路径并将其添加到匹配中,直到无法找到增广路径为止。增广路径是一条交替包含未匹配顶点和已匹配顶点的路径,通过不断寻找增广路径,可以不断增加匹配的边数,直到找到最大匹配。

匈牙利匹配算法的时间复杂度为 O(V^3),其中 V 是图中的顶点数量。尽管时间复杂度相对较高,但匈牙利匹配算法在实际应用中被广泛使用,例如在任务分配、资源分配等领域。

参考链接

太…完整了!同济大佬唐宇迪博士终于把【Transformer】入门到精通全套课程分享出来了,最新前沿方向均有涉猎!-人工智能/深度学习

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

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

相关文章

C++ | Leetcode C++题解之第59题螺旋矩阵II

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<vector<int>> generateMatrix(int n) {int num 1;vector<vector<int>> matrix(n, vector<int>(n));int left 0, right n - 1, top 0, bottom n - 1;while (left < r…

YOLOV8 pycharm

1 下载pycharm 社区版 https://www.jetbrains.com/zh-cn/pycharm/download/?sectionwindows 2 安装 3 新建 4 选择 文件-> setting 配置环境变量 5 添加conda 环境

DigitalOcean 托管 Kafka 新增横向扩展功能

自2023年9月推出以来&#xff0c;DigitalOcean托管的Kafka已经使初创公司、不断增长的数字业务以及独立软件供应商(ISV)能够改善实时数据处理和分析&#xff0c;从而做出更具洞察力的决策。在新的一年里&#xff0c;我们很高兴地宣布DigitalOcean托管Kafka的横向扩展功能&#…

TDengine写入2000万数据查询体验

最近在寻找时序数据库&#xff0c;想应用在公司的项目上。 上一篇文章实验了InfluxDB:windows上使用influx2.7学习,还学习了flux语言&#xff0c;最后发现宽表查询比较困难&#xff0c;就放弃了&#xff0c;于是决定试试国产时序数据库TDengine 参考 官方文档&#xff1a;htt…

C语言异步编程

回调函数在异步编程中有着重要的作用&#xff0c;在接口编程应用广泛&#xff0c;实战中经常会注册一个回调函数来接收其他程序返回的数据&#xff0c;这样做的好处是调用者无需主动去获取被调用者的数据&#xff0c;仅仅需要回调&#xff0c;让被调用者去传送数据&#xff0c;…

群晖Docker部署Java jar包

安装群晖Docker组件Container Manager 打开组件,找到注册表搜索java,安装java映像 安装完成后会在映像目录里展示出来,点击运行 常规设置按需配置即可 这里要设置一个文件夹目录给这个容器来使用 一般来说给个/root来用就够了 设置完成后可以在容器目录里看到容器已经运行起来了…

图论之最短路算法模板总结

来个大致的分类&#xff1a; 朴素的迪杰斯特拉&#xff1a; 实现&#xff1a; 我们让s表示当前已经确定的最短距离的点&#xff0c;我们找到一个不在s中的距离最近的点t&#xff0c;并用t来更新其他的点。 下面是AC代码&#xff1a; #include<bits/stdc.h> using nam…

Apache SeaTunnel k8s 集群模式 Zeta 引擎部署指南

SeaTunnel提供了一种运行Zeta引擎(cluster-mode)的方法&#xff0c;可以让Kubernetes在本地运行Zeta引擎&#xff0c;实现更高效的应用程序部署和管理。在本文中&#xff0c;我们将探索SeaTunnel k8s运行zeta引擎(cluster-mode模式)的更多信息&#xff0c;了解如何更好地利用Ze…

从正文开始计算并设置第x页,共x页

如下图&#xff0c;本人正文以下内容只有34页&#xff0c;但wps/word会自动计算全部的页数&#xff0c;看到网上有许多解决方法&#xff0c;但都太麻烦&#xff0c;下面教你两步解决所有问题。 第一步&#xff0c;手动更改第1页的共x页的x为自己需要的页数。 第二步&#xff0c…

【JavaWeb Day 2 - JS 】

JavaWeb Day 2 - JS JS背景故事1. JS 引入方式2. JS 基本语法2.2 变量2.3 数据类型2.4 运算符 3. JS 函数4. JS 对象4.1 Array对象4.2 String对象4.3 JSON对象4.4 BOM对象4.4.1 windows 对象4.4.2 location 对象 4.5 DOM 对象DOM 案例 5. JS 事件监听5.1 JS 事件绑定 及 常见事…

PF-NET与3D点云补全

文章目录 点云补全 (Point Cloud Completion) 点云补全 (Point Cloud Completion) 3D点云补全问题的主要目标是估计缺失点 点云坐标。这个问题在实际解决的时候主要有2个问题&#xff0c;第一就是点云补充得过于完整&#xff0c;比如目标点云中是有缺口&#xff0c;但是补全的…

人脸识别概念解析

目录 1. 概述 2. 人脸检测 3. 人脸跟踪 4. 质量评价 5. 活体检测 6. 特征提取 7. 人脸验证 8. 人脸辨识 1. 概述 人脸识别在我们的生活中随处可见&#xff0c;例如在大楼门禁系统中&#xff0c;它取代了传统的门禁卡或密码&#xff0c;提高了进出的便捷性和安全性。在商…