Transformer(二)(VIT,TNT)(基于视觉CV)

目录

1.视觉中的Attention

 2.VIT框架(图像分类,不需要decoder)

2.1整体框架

2.2.CNN和Transformer遇到的问题

2.3.1CNN

2.3.2Transformer

2.3.3二者对比

2.4.公式理解

3TNT

参考文献


1.视觉中的Attention

      对于人类而言看到一幅图可以立即区分背景和主体,我们希望计算机也可以清楚区分背景和主体,这样就可以专注在主体上提取特征。 

 2.VIT框架(图像分类,不需要decoder)

2.1整体框架

      如下图所示,transformer框架需要输入为序列形式,但图像是高维的,所以首先要对图像预处理,简单理解,假设下图是一个30*30*3的输入,将其分为9块,每块大小为10*10*3,再对其做一个卷积处理,变成300*1。 

      同样图像处理也要考虑到位置编码(Position Embedding),有两种方式,一种是直接再一维空间用1,2,3,4....,一种是在二维空间用(1,1),(1,2)...。一维,二维对结果影响不大(仅图像分类)。但编码方式,也是一个创新点。

      下图框架为分类任务,多加了一部分,简单理解,目的在于整合所有输入量,最后用其进行分类

       和文本处理,区别在于多了一个图像的数据处理,要将高维变成序列形式,

       最后说下下图右的框架,Norm是归一化处理,Multi-Head Attention是多头注意力机制,MLP是全连接层。

2.2.CNN和Transformer遇到的问题

2.3.1CNN

      以Resnet50为例,首先回忆一下感受野的概念,即当前层神经元(特征图)可以看到的原图的区域,我们假设conv1,conv6,conv11,conv16,此时我们想做一个分类任务,区分这个女生好不好看,对于conv1它的感受野为红色小框,显然特征过小,conv4为绿色小框,此时已经能看到眼睛,但还是不足以做出判断,conv11为黄色框,此时已经能看到较多的局部特征,但还不足以准确判断,最后来到conv16,此时足以看到整个脸,可以进行判别,但我们发现想要得到一个全局信息这个过程需要多层嵌套才能实现,比较麻烦。 

      对比一下,CNN通常第一层卷积用3*3的核也就是说只能看到原图3*3大小的区域,可能要最后一层才能看到全局,而transformer可以实现第一层就看到全局。

2.3.2Transformer

transformer对于CNN需要极大数据集才能得到好的结果。

2.3.3二者对比

2.4.公式理解

      E为全连接层,目的是对输入数据进行预处理,就是将高维图像变成序列形式,假设P*P=196,就是图像分割的块数,像上面将图分为9块的意思,C=256是每一块含有的向量,D=512,目的是将256映射成512,N=196是位置信息编码,+1是因为图像分类任务要多一个输入,LN是归一化处理,MSA是多头自注意力机制,MLP是全连接层。类似于残差链接 。可以对比流程图理解。

3TNT

假设VIT每一个patch是16*16.TNT希望这个patch更小。

     

      基于这个思想,TNT将数据预处理,分为外部和内部两块,外部和VIT一样,内部就是对外部的信息再次细分,比方说外部一个patch是16*16,内部就用4*4的块进行分割,下面超像素的概念就是不想按照1*1大小进行分割,多选择几个像素点分割。

      在实际应用中,如下图所示,将一个图分为4块(外部),VIT中是直接预处理后变成一个4维向量输入了,而在TNT中,假设第3块(外部),进行了一个内部分割,然后重构后也变成一个4维向量,将其加入外部的4维向量。同样内外部都做位置编码时效果最好。

      从可视化角度看,TNT在不同层下得到的结果更好,从T-SNE看,TNT更集中,效果更好。

参考文献

1.【VIT算法模型源码解读】1-项目配置说明1.mp4_哔哩哔哩_bilibili

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

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

相关文章

机器学习笔记 - 基于C++的​​深度学习 二、实现卷积运算

一、卷积 卷积是信号处理领域的老朋友。最初的定义如下 在机器学习术语中: I(…)通常称为输入 K(…)作为内核,并且 F(…)作为给定K的I(x)的特征图。 虑多维离散域,我们可以将积分转换为以下求和 对于二维数字图像,我们可以将其重写为: <

STM32F103-OLED使用教程

目录 1. OLED屏介绍2. OLED如何显示一个点3. 配置OLED屏幕4. OLED显示字符串和汉字5. OLED屏幕显示图片6. 总结 1. OLED屏介绍 OLED&#xff08;Organic Light Emitting Diode&#xff09;&#xff1a;有机发光二极管OLED显示屏&#xff1a;性能优异的新型显示屏&#xff0c;具…

Jay17 2023.8.14日报 即 留校集训阶段性总结

8.14 打了moeCTF&#xff0c;还剩一题ak Web。 Jay17-集训结束阶段性总结&#xff1a; 集训产出&#xff1a; 自集训开始以来一个半月&#xff0c;最主要做的事情有三。 一是跟课程&#xff0c;复习学过的知识&#xff0c;学习新的知识&#xff1b;目前课程已大体听完&…

HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具

公文一键排版系统基本完成&#xff0c;准备继续完善SysInfo&#xff0c;增加用户帐户信息&#xff0c;其中涉及到Win32_Account结构&#xff0c;其C定义如下&#xff1a; [Dynamic, Provider("CIMWin32"), UUID("{8502C4CC-5FBB-11D2-AAC1-006008C78BC7}"…

H13-922题库 HCIP-GaussDB-OLAP V1.5

**H13-922 V1.5 GaussDB(DWS) OLAP题库 华为认证GaussDB OLAP数据库高级工程师HCIP-GaussDB-OLAP V1.0自2019年10月18日起&#xff0c;正式在中国区发布。当前版本V1.5 考试前提&#xff1a; 掌握基本的数据库基础知识、掌握数据仓库运维的基础知识、掌握基本Linux运维知识、…

idea打jar包

目录 1、打包设置 2、打包介绍 3、开始打包 1、打包设置 先设置要打包的模块信息&#xff0c;即打包进去的内容。如下图所示&#xff1a;File --> Project Structure --> Artifacts&#xff0c;点击&#xff0b;号完成模块创建&#xff0c;其中有两种方式&#xff1a;…

SpringBoot整合、SpringBoot与异步任务

目录 一、背景描述二、简单使用方法三、原理五、使用自定义线程池1、默认使用2、如何使用自定义线程池 六、Async失效情况1、同一个类中&#xff0c;一个方法调用 Async标注的方法 一、背景描述 java 的代码是同步顺序执行&#xff0c;当我们需要执行异步操作时我们通常会去创…

Vue 批量注册组件

全局组件 在components文件夹下新建一个Gloabl文件夹&#xff08;可以自行命名&#xff09; 在目录下新建index.js import Vue from vue// require.context(路径, 是否遍历子目录, 匹配规则) const requireComponents require.context(./, true, /\.vue/)requireComponents.k…

【TypeScript】基础类型

安装 Node.js 环境 https://nodejs.org/en 终端中可以查到版本号即安装成功。 然后&#xff0c;终端执行npm i typescript -g安装 TypeScript 。 查到版本号即安装成功。 字符串类型 let str:string "Hello"; console.log(str);终端中先执行tsc --init&#xf…

uni-app 集成推送

研究了几天&#xff0c;终于是打通了uni-app的推送&#xff0c;本文主要针对的是App端的推送开发过程&#xff0c;分为在线推送和离线推送。我们使用uni-app官方推荐的uni-push2.0。官方文档 准备工作&#xff1a;开通uni-push功能 勾选uniPush2.0点击"配置"填写表单…

日常BUG——普通页面跳转tabbar页面报错

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 微信小程序页面跳转的时候出现下面的问题&#xff1a; wx.redirectTo({url: /pages/index/i…

matlab使用教程(16)—图论中图的定义与修改

1.修改现有图的节点和边 此示例演示如何使用 addedge 、 rmedge 、 addnode 、 rmnode 、 findedge 、 findnode 及 subgraph 函数访问和修改 graph 或 digraph 对象中的节点和/或边。 1.1 添加节点 创建一个包含四个节点和四条边的图。s 和 t 中的对应元素用于指定每条…

SSL握手协议相关概念

下图为握手协议的流程图&#xff0c;具体的解释参考博客&#xff1a; 【下】安全HTTPS-全面详解对称加密&#xff0c;非对称加密&#xff0c;数字签名&#xff0c;数字证书和HTTPS_tenfyguo的博客-CSDN博客 下面梳理一下SSL协议中的一些细节。首先是相关名词&#xff1a;证书、…

SpringBoot中的可扩展接口

目录 # 背景 # 可扩展的接口启动调用顺序图 # ApplicationContextInitializer # BeanDefinitionRegistryPostProcessor # BeanFactoryPostProcessor # InstantiationAwareBeanPostProcessor # SmartInstantiationAwareBeanPostProcessor # BeanFactoryAware # Applicati…

npm install 中 --save 和 --save-dev 是什么?

npm&#xff0c;全名 Node Package Manager&#xff0c;套件管理工具&#xff0c;package.json 会记下你在项目中安装的所有套件。 假设在项目中安装 lodash npm i --save lodash这样在 dependencies 中会出现&#xff1a; 如果修改了导入方式&#xff1a; npm i --save-dev …

使用python读Excel文件并写入另一个xls模版

效果如下&#xff1a; 原文件内容 转化后的内容 大致代码如下&#xff1a; 1. load_it.py #!/usr/bin/env python import re from datetime import datetime from io import BytesIO from pathlib import Path from typing import List, Unionfrom fastapi import HTTPExcep…

Dedecms V110最新版RCE---Tricks

前言 刚发现Dedecms更新了发布版本&#xff0c;顺便测试一下之前的day有没有修复&#xff0c;突然想到了新的tricks去实现RCE。 文章发布的时候估计比较晚了&#xff0c;一直没时间写了。 利用 /uploads/dede/article_string_mix.php /uploads/dede/article_template_rand.…

Spring Boot 项目应用消息服务器RabbitMQ(简单介绍)

一、背景 本章讲述的是在用户下单环节&#xff0c;消息服务器RabbitMQ 的应用 1.1 消息服务器的应用 在写一个电商项目的小demo&#xff0c;在电商项目中&#xff0c;消息服务器的应用&#xff1a; 1、订单状态通知&#xff1a;当用户下单、支付成功、订单发货、订单完成等…

如何使用CSS实现一个模态框(Modal)效果?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用CSS实现模态框&#xff08;Modal&#xff09;效果⭐ HTML 结构⭐ CSS 样式⭐ JavaScript⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎…

在 React+Typescript 项目环境中创建并使用组件

上文 ReactTypescript清理项目环境 我们将自己创建的项目环境 好好清理了一下 下面 我们来看组件的创建 组件化在这种数据响应式开发中肯定是非常重要的。 我们现在src下创建一个文件夹 叫 components 就用他专门来处理组件业务 然后 我们在下面创建一个 hello.tsx 注意 是t…