【Transformer】ViT and TNT(2)

本文详细介绍了Transformer的基础知识,包括位置编码的不同方式,如一维序号和二维坐标,以及在分类任务中的应用。文章还探讨了Transformer与CNN的对比,强调了Transformer在处理大规模数据和复杂任务的优势。TNT部分提到如何通过细化patch来改进Transformer性能,以及T-SNE展示的特征分布差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

文章目录

太…完整了!同济大佬唐宇迪博士终于把【Transformer】入门到精通全套课程分享出来了,最新前沿方向

学习笔记

上篇文章:【Transformer】Transformer and BERT(1)


1、VIT

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

eg,图片分块,10x10x3 的 patch 通过 conv 拉成向量,就无缝对接了

在这里插入图片描述
位置编码可以多种方式,一维序号,二维坐标,无

在这里插入图片描述
位置编码 0 这里的 token,为分类任务设计的,encoder 堆叠后(self-attention),0 位置上的 token 已有了全局信息,最后把 0 位置上的特征向量作为分类特征就行

分类仅用到了 encoder,检测任务中会用到 decoder

CNN 的缺点

在这里插入图片描述

在这里插入图片描述

层多,每一层需要设计

在这里插入图片描述
需要的数据比较多,比较难训练

在这里插入图片描述

eg, patch P 为 14*14,C 为 256, D 为 512
Epos 是位置编码
MSA 是 multi-head self-attention
LN 是 layer normalization

在这里插入图片描述
在这里插入图片描述
多层共用一个位置编码即可,不用每层都用

仅能反应分类任务的规律,检测可能 2D 位置编码还是更好

在这里插入图片描述

下面跟随数据的维度和代码(我也没有,哈哈)看看整体流程

(1)embedding

输入 [16,3,224,224]

cls token = [16,1,768]

  • 768 超参, hidden size

patch = 16,划分的方式如下。输入通道 3,输出通道 768,kernel size =16, stride = 16 的 conv 把图片分成 patch,[16,768,14,14]

  • 16x14 = 224

拉长一下成向量,[16,768,196],transpose 一下成 [16,196,768]

  • batch 16,每个 batch 196 个 token,每个 token 的特征维度是 768

加上 position embedding,维度为 [16,197,768]

  • 在这里插入图片描述
    每个 batch 的位置编码一样,所以第一个维度是 1
    在这里插入图片描述
    在这里插入图片描述

(2)encoder

LN [16,197,768]

query (fc)[16,197,768]
key (fc)[16,197,768]
value(fc)[16,197,768]

在这里插入图片描述

q,k,v transpose for score [16,197,768]->[16,197,12,64]->[16,12,197,64],12 表示共有 12 个 multi-head attention,197 个 token,每个 token 64 维的特征

在这里插入图片描述
q,k 内积 attention score [16,12,197,197],197 个 token 间相互的关系

归一化,消除数量的影响

在这里插入图片描述

再接一个 softmax 计算出来权重

权重乘以 v,重构了特征得到 [16,12,197,64],还原回去得到 [16,197,768]

再来个 fc 层,和输入来个 res 结构

在这里插入图片描述

[16,197,768]

在这里插入图片描述

继续

在这里插入图片描述
再来个 layer norm + MLP + res

在这里插入图片描述

重复执行 L 次,输出选第 0 个 token 作为预测

接个 fc 得到 logits,eg:[16,197,768]->[16,768]->[16,10] 十分类

在这里插入图片描述

2、TNT

在这里插入图片描述

conv 是基于每个空间位置进行的,相比于来说 patch 过于大了,可以把patch 进一步细分,

在这里插入图片描述
在这里插入图片描述
类似于 focus,eg 16 ∗ 16 ∗ 3 16*16*3 16163 变成 4 ∗ 4 ∗ 28 4*4*28 4428

在这里插入图片描述

内部 transformer 得到的结果和外部 transformer 得到的结果相加

在这里插入图片描述
在这里插入图片描述
T-SNE 蓝色特征更发散一些(更能分得开)

方差越大,特征越鲜明,越容易区分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值