深度学习论文: Emerging Properties in Self-Supervised Vision Transformers

深度学习论文: Emerging Properties in Self-Supervised Vision Transformers
Emerging Properties in Self-Supervised Vision Transformers
PDF: https://arxiv.org/pdf/2104.14294v1
PyTorch代码: https://github.com/shanglianlm0525/CvPytorch
PyTorch代码: https://github.com/shanglianlm0525/PyTorch-Networks

1 概述

本文探讨自监督学习是否为Vision Transformer(ViT)带来了相较于卷积网络的新特性。发现自监督ViT特征包含明确的图像语义分割信息,并展现出色的k-NN分类性能。同时,强调了动量编码器、多裁剪训练及小补丁在ViT中的重要性。基于这些发现,提出了DINO这一无标签自蒸馏方法,与ViT结合在ImageNet上实现了80.1%的top-1准确率。
在这里插入图片描述

2 DINO

DINO框架结合了自监督学习和知识蒸馏的特点。在知识蒸馏中,学生网络gθs的目标是模仿教师网络gθt的输出。两个网络对输入图像x产生K维概率分布Ps和Pt,通过softmax函数归一化网络输出得到。
在这里插入图片描述

2-1 SSL with Knowledge Distillation

从给定图像中,生成一组不同的视图V。该组包含两个全局视图xg1和xg2以及几个较小分辨率的局部视图(切图)。所有的局部视图都通过学生网络,只有全局视图通过教师网络,从而鼓励“局部到全局”的对应关系。最小化损失:
在这里插入图片描述
DINO中使用2个全局视图,分辨率为224x224,覆盖原始图像的大区域(例如大于50%),以及几个分辨率为96x96的局部视图,仅覆盖原始图像的小区域(例如小于50%)。

教师网络不是预先给定的,而是从学生网络的过去迭代中构建。使用指数移动平均(EMA)作为教师网络参数的更新规则,这在DINO框架中效果良好。

网络架构由主干网络(如ViT或ResNet)和投影头(MLP)组成,学生和教师网络共享相同的架构但参数不同。DINO不使用批量归一化(BN),特别是在使用ViT作为主干时。
在这里插入图片描述
为了避免模型坍塌,DINO结合了动量教师输出的居中和锐化操作。居中防止模型输出偏向单一维度,而锐化则增强输出分布的锐度。通过这种方式,DINO能够在不同批次大小下稳定工作。

2-2 Implementation and evaluation protocols

Vision Transformer (ViT):

  • 描述了Vision Transformer的机制,参考了相关文献中的Transformer和图像适应细节。
  • 本文使用的ViT配置总结在表1中,ViT输入为N×N分辨率的图像块网格,通常N=16或8。
  • 通过线性层将图像块转换为嵌入,加入一个额外的可学习类别标记[CLS],并通过Transformer网络处理。

实现细节:

  • 在无标签的ImageNet数据集上预训练模型,使用adamw优化器和1024的批量大小。
  • 学习率根据线性缩放规则调整,并采用余弦退火和权重衰减。
  • 使用BYOL的数据增强方法和双三次插值,模型代码和可复现结果公开。

评估协议:

  • 自监督学习的评估包括在冻结特征上训练线性分类器或对下游任务特征进行微调。
  • 线性评估使用随机裁剪和水平翻转的数据增强,微调评估则在预训练权重基础上调整网络。
  • 引入k-NN分类器作为特征质量的评估,简化了评估过程,避免了超参数调整和数据增强的复杂性。

在这里插入图片描述

3 Results

3-1 Comparing with SSL frameworks on ImageNet

在这里插入图片描述

3-2 Properties of ViT trained with SSL

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

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

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

相关文章

go语言实战--基于Vue3+gin框架的实战Cetide网项目(讲解开发过程中的各种踩坑)

最近被要求学习go语言开发,也就做一个项目实战巩固一下,也分享一下关于gin框架的实战项目 (后续应该还是会继续学习Java,这一期还是做一个govue的) 经过一段时间的开发过后,感觉现在的开发效率要快不少了&…

传统工科硕士想转嵌入式,时间够吗?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 零基础开始学&#xff0…

[NOVATEK] NT96580行车记录仪功能学习笔记(持续更新~

一、u-Boot升级灯 运行u-Boot程序时LED灯闪烁,找到运行过程中一直在运行的函数在里面进行LED引脚电平的翻转 宏定义 Z:\SunFan\AHD580\pip\na51055_PIP\BSP\u-boot\include\configs\nvt-na51055-evb.h Z:\SunFan\AHD580\pip\na51055_PIP\BSP\u-boot\drivers\mtd\nvt_flash_…

Linux卸载残留MySQL【带图文命令巨详细】

Linux卸载残留MySQL 1、检查残留mysql2、检查并删除残留mysql依赖3、检查是否自带mariadb库 1、检查残留mysql 如果残留mysql组件,使用命令 rpm -e --nodeps 残留组件名 按顺序进行移除操作 #检查系统是否残留过mysql rpm -qa | grep mysql2、检查并删除残留mysql…

k8s——Pod容器中的存储方式及PV、PVC

一、Pod容器中的存储方式 需要存储方式前提:容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。 首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态&…

TensorRT 精度debug分析工具

tensorRT还提供了一套可用于engine生成过程中debug的工具,包括Polygraphy、ONNX GraphSurgeon和PyTorch-Quantization。这些小工具用处很大,值得花时间进一步研究。 Debug方法示例 polygraphy Polygraphy是TensorRT官方提供的一系列小工具合集&#x…

spring源码解析-(1)关于Bean

什么是Bean? 是spring对所有注入到IoC容器中的类的统称。 我们要注册进入spirng的bean千奇百怪,所以spring必须需要使用一个统一的定义来标识bean,就有了接下来的BeandDefinition,通过名称我们就可以知道,他是对bean…

美国演员工会SAG-AFTRA 要求人工智能在广告中使用演员声音需征得同意并付费

SAG-AFTRA 的新豁免允许在人工智能生成的广告中使用演员的声音,但需要同意、补偿和安全措施 美国演员工会(SAG-AFTRA)推出了一项新的豁免,以保护会员免受未经授权的人工智能在广告中使用其声音的影响。动态人工智能音频广告豁免定…

C语言Kruskal算法求最小生成树

Kruskal算法求出最小生成树。 图形 算法描述 先找最小权值边为1的边有(V1,V4),(V2,V9),保证不产生回路就可以成功选择边 除去上一次找的边后,在找权值最小的边为2的有&a…

制作AI问答机器人:从0到1的完整指南

在数字化转型的浪潮中,企业正追求更高效、智能的客户服务解决方案。AI问答机器人以其快速响应、全天候服务和持续学习的能力,成为了提升客户满意度和加速业务发展的关键工具。本文将深入探讨如何制作一个企业级的AI问答机器人,并强调其功能体…

OpenAI发表研究论文 介绍了一种逆向工程AI模型工作原理的方法

ChatGPT 开发商 OpenAI 构建人工智能的方法本周遭到了前员工的抨击,他们指责该公司利用可能有害的技术冒不必要的风险。今天,OpenAI 发布了一篇新的研究论文,目的显然是为了表明它在通过提高模型的可解释性来应对人工智能风险方面的认真态度。…

hot100 -- 二分查找

目录 前言 🎂搜索插入位置 🌼搜索二维矩阵 🌼排序数组元素第一和最后一个位置 🌼旋转排序数组 💪旋转排序数组中的最小值 💪两个正序数组的中位数 前言 二分算法学习_时间超限ac:0%-CSDN博客 &#…

2024年【起重机械指挥】考试及起重机械指挥新版试题

题库来源:安全生产模拟考试一点通公众号小程序 起重机械指挥考试考前必练!安全生产模拟考试一点通每个月更新起重机械指挥新版试题题目及答案!多做几遍,其实通过起重机械指挥试题及解析很简单。 1、【多选题】《中华人民共和国特…

【Androi】安卓发展历程详解

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…

git推送代码到github拒绝推送的解决方案

这里描述一下本地推送的场景,首先我在码云上建立了一个前端项目,进行了自己的个性化开发,后期在github上创建了一个一样的项目仓库存放代码。使用webstorm进行代码开发。在下面这个位置可以选择推送的代码位置。 选择推送github仓库之后&…

Python深度学习基于Tensorflow(16)基于Tensorflow的对话实例

文章目录 基础数据清洗数据生成词汇表定义分词器并制作数据集构建Transformer模型并训练模型推理 Tensorflow 的核心就是注意力机制,在之前详细的介绍过,具体可以看这个:Python深度学习基于Tensorflow(9)注意力机制_te…

什么情况下需要配戴助听器

以下几种情况需要考虑配戴助听器: 1、听力无波动3个月以上的感音神经性听力障碍。如:先天性听力障碍、老年性听力障碍、噪声性听力障碍、突聋的稳定期等,均可选配合适的助听器。 2、年龄方面。使用助听器没有严格的年龄限制,从出生数周的婴…

深度学习Week16——数据增强

文章目录 深度学习Week16——数据增强 一、前言 二、我的环境 三、前期工作 1、配置环境 2、导入数据 2.1 加载数据 2.2 配置数据集 2.3 数据可视化 四、数据增强 五、增强方式 1、将其嵌入model中 2、在Dataset数据集中进行数据增强 六、训练模型 七、自定义增强函数 一、前言…

Geoserver源码解读一(环境搭建)

一、Github地址 https://github.com/geoserver/geoserver 1.1 克隆代码 git clone https://github.com/geoserver/geoserver.git 1.2 选择版本 版本选择参考我的上一篇文章 Geoserver 以及 Geotools各版本和jdk版本对照表 此处我选择的是兼容jdk8的最后一个版本 git che…

netty+springboot+vue聊天室(需要了解netty)

先看看这个使用websocket实现的聊天室,因为前端是使用websocket,和下面的demo的前端差不多就不解释实现原理,所以建议还是看看(要是会websocket的大佬请忽略) springbootwebsocketvue聊天室 目录 一、实现内容二、代码实现1.后端2.前端源码…