论文阅读:SERE: Exploring Feature Self-relation for Self-supervised Transformer

news2024/11/25 1:39:18

Related Work

  • Self-supervised 学习目的是在无人工标注的情况下通过自定制的任务(hand-crafted pretext tasks)学习丰富的表示。

Abstract

  • 使用自监督学习为卷积网络(CNN)学习表示已经被验证对视觉任务有效。作为CNN的一种替代方案,视觉变换器(ViT)具有强大的表示能力,具有空间自注意力和通道级前馈网络。最近的研究表明,自监督学习有助于释放ViT的巨大潜力。然而,大多数研究仍然遵循为CNN设计的自监督策略,例如实例级别的样本区分,但它们忽视了ViT的特性。我们观察到,关于空间和通道维度的关系建模使ViT与其他网络有所不同。为了强化这一特性,我们探索了特征自关系(SElf-RElation,SERE)来训练自监督ViT。具体来说,我们不仅仅在来自多个视图的特征嵌入上进行自监督学习,还利用特征自关系,即空间/通道自关系,进行自监督学习基于自关系的学习进一步增强了ViT的关系建模能力,产生了更强的表示,稳定地提高了多个下游任务的性能。

Introduction

  • 空间自关系(spatial self-relation)提取图像中块的联系。
  • 通道自关系(channel self-relation)建模不同通道间的联系,特征图(feature embeddings)中每一个通道代表了(Highlight)独特的语义信息。
  • 特征自关系是新维度的表示
    在这里插入图片描述
  • (a)典型的自监督学习方法编辑图像视图的特征嵌入。
  • (b)我们提出的方法去建模测量不同维度间一张图像视图内的特征自相关度
  • (c )两种特殊形式的自相关,空间自相关与通道自相关。

在这里插入图片描述

  • 对空间(spatial)和通道(channel)维度的自关联(self-relation)。给出图像x,通过随机数据增强( τ n \tau_n τn)获得两个视角。再通过编码器 f n f_n fn得到特征。特征再通过表示变化 P \mathbb{P} P得到空间或者通道自相关。对于空间自相关,只有特征再重叠部分会被考虑。 O \mathbb{O} O代表再重叠区域提取特征的操作。

Method

  • 我们关注于 the instance discrminative(实例判别) self-supervised learning pipeline.首先介绍一下普通实例判别自监督学习方法的框架。给一个未标注图像x,由不同的随机数据增强获得多视角。假设不同视角包含相同的信息,主要的思想是最大化不同视角间的共享信息编码。首先,两个视角被送到Encoder网络提取特征 r 1 , r 2 r_1,r_2 r1,r2。特征被 P \mathbb{P} P变换成不同的表示。再借由不同的优化目标获得不同的损失函数:
    在这里插入图片描述
  • R代表最大化视角间一致性。受启发于ViT的关系建模特性,而不是直接使用特征。

空间自相关(Spatial Self-relation)

  • ViT有通过多头注意力机制(MHSA)建模局部块的特性。

  • 生成 spatial self-relation 表示。首先给出嵌入特征 r 1 = f 1 ( τ 1 ( x ) ) ∈ R C × H W r_1 = f_1(\tau_1(x)) \in \mathbb{R}^{C \times HW} r1=f1(τ1(x))RC×HW r 2 = f 2 ( τ 2 ( x ) ) ∈ R C × H W r_2 = f_2(\tau_2(x)) \in \mathbb{R}^{C \times HW} r2=f2(τ2(x))RC×HW。一个预测头 h p h_p hp, 处理得到 p 1 = h p ( r 1 ) p_1 = h_p(r_1) p1=hp(r1) and p 2 = h p ( r 2 ) p_2 = h_p(r_2) p2=hp(r2)

  • 不同于图像级的嵌入,不同视角的空间自监督(Sptial Self-relation)需要由计算相同空间位置的patches计算。为此,提出 O \mathbb{O} O的操作去采样 p 1 p_1 p1 p 2 p_2 p2的重叠区域,如下图。
    在这里插入图片描述

  • 我们在原图中定位重叠区域,并将其分为 H s × W s H_s \times W_s Hs×Ws个格子。对于每个格子中心,我们计算其在不同视角特征中的空间坐标。然后通过bi-linear 内插采样特征。

  • 这样我们就可以计算空间自相关(Self-Relation) A p ( p 1 ) ∈ R H s W s × H s W s \mathbb{A_p}(p_1) \in \mathbb{R}^{H_sW_s \times H_sW_s} Ap(p1)RHsWs×HsWs
    在这里插入图片描述

  • t_p是温度参数控制Softmax的峰值。

  • 空间自关系(Spatial Self-Relation)的自监督:使用 asymmetric non-contrastive self-supervised loss:
    在这里插入图片描述

  • R e R_e Re是交叉熵损失函数, G \cancel{G} G 是 stop-gradient 操作防止训练崩溃。 A p \mathbb{A}_p Ap是asymmetric non-contrastive self-supervised loss的预测头,包含全连接层以及batch normalization 层。

通道自相关(Channel-relation)

  • 不同的通道编码不同的模式,给与神经网络强大的表示能力。ViT的前馈网络(FFN)结合了跨通道模式并且编码了通道间的关系。
  • Generating channel self-relation representation. 根据 r 1 , r 2 r_1,r_2 r1,r2,一个投影头 h c h_c hc(与 h p h_p hp结构相同),获得 c 1 = h c ( r 1 ) T , c 2 = h c ( r 2 ) T c_1 = h_c(r_1)^T,c_2 = h_c(r_2)^T c1=hc(r1)T,c2=hc(r2)T。然后独立计算通道自相关。对于 c 1 , c 2 ∈ R H W × C c_1,c_2 \in \mathbb{R}^{HW \times C} c1,c2RHW×C,我们计算通道自相关 A c ( c 1 ) ∈ R C × C \mathbb{A_c(c_1)} \in \mathbb{R}^{C \times C} Ac(c1)RC×C
    在这里插入图片描述
  • 通道自关系的自监督函数同空间自关系
    在这里插入图片描述

实施细节

  • 使用提出的Spatial/channel self-relations 以及 Image Embedding 作为自关系损失函数,这些损失揭示了特征的不同属性。
    在这里插入图片描述
  • L I L_I LI是图像级Embedding的损失,在Tab.8中可知使用我们提出的方法可以获得有竞争力甚至是更好的结果。
    在这里插入图片描述

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

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

相关文章

poll epoll初学习

正是select这些缺点,才有了poll 1.I/O多路转接之poll 2.I/O多路转接之epoll 其中的struct epoll_event:

[计算机入门] 项目的压缩与解压缩

3.6 项目的压缩与解压缩 有几个原因使得我们要将文件压缩打包: 节省存储空间:压缩文件能够减小文件的体积,从而节省存储空间。尤其是对于多个大型文件或文件夹进行打包压缩时,可以显著降低所需的存储容量。方便传输:…

gRpc入门

gRpc 一、简介 1、gprc概念 gRpc是有google开源的一个高性能的pc框架,Stubby google内部的rpc,2015年正式开源,云原生时代一个RPC标准。 tips:异构系统,就是不同编程语言的系统。 2、grpc核心设计思路 grpc核心设计思路1. 网络通信 --&g…

C++ string

目录 string类介绍访问:[ ] 遍历迭代器遍历范围for遍历 容量相关:修改相关:编码表的了解写时拷贝的了解string的模拟 STL(standard template libaray-标准模板库):是C标准库的重要组成部分,不仅是一个可复用的组件库&a…

【Linux】高级IO --- 多路转接,select,poll,epoll

所有通过捷径所获取的快乐,无论是金钱、性还是名望,最终都会给自己带来痛苦 文章目录 一、五种IO模型1.什么是高效的IO?(降低等待的时间比重)2.有哪些IO模型?哪些模型是高效的?3.五种IO模型的特…

【韩顺平 零基础30天学会Java】面向对象编程(基础)(5days)

面向对象编程 Java设计者引入类与对象(OOP),根本原因就是现有的技术,不能完美的解决新的需求。 对象主要是由属性和行为构成的。 类就是数据类型(比如Cat),对象就是具体的实例。 //定义一个猫…

QT转型Visual Studio(qmake项目到cmake项目的移植)

前言 由于工作需要,同时也为了方便以后的集成升级,希望将之前用Qt creator qmake开发的项目移植到cmake项目中,并使用Visual Studio 进行后续开发,本文主要用以记录该过程中的常规步骤和遇到的特殊情况。 qmake项目 在一开始&a…

MATLAB 的 figure 用法总结

文章目录 Syntax:DescriptionExamples1.figure2.figure(Name,Value)Position 属性: 设置 Figure 的位置和大小Name 属性: 设置 Figure 的名称NumberTitle 属性: 取消 Figure 名称里默认的数字units 属性color 属性 3.f figure(___)4.Working with Multiple Figures…

JAVA反序列化漏洞复现

Weblogic(CVE-2017-10271) 拉取容器 访问 http://192.168.142.151:7001/console/login/LoginForm.jsp ​ 启动nacs 进行漏洞扫描 下载weblogicScanner工具 git clone https://github.com/0xn0ne/weblogicScanner.git 开始扫描 访问http://192.168.1…

数据结构队列

数据结构队列 队列的概念及结构队列的是实现数据结构函数接口初始化销毁入队列(尾插)出队列(头删)求队列的长度判断队列是否为空取队头的数据取队尾的数据 队列的概念及结构 队列之允许在一段及进行数据插入操作,在另…

LeetCode 356. Line Reflection【数学,哈希表】中等

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

IO day1

1->x.mind 2-> 3->计算一个文件的大小,计算一个文件有几行。封装成函数

MyBatisPlus查询条件设置、映射匹配兼容性、id生成策略、多数据操作

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 MyBatisPlus 一、 查询条件设置二、 映射匹配兼容…

数据结构day7栈-链式栈原理及实现

全部代码&#xff1a; main.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include "linkstack.h"int main(int argc, char *argv[]) {linkstack s;s stack_create();if(s NULL){return -1;}stack_push(s, 10);stack_push(s…

[图文并茂]C++线性表及其逻辑结构

1.1线性表的定义 线性表是具有相同特性的数据元素的一个有限序列 对应的逻辑结构图形&#xff1a; 从线性表的定义中可以看出它的特性&#xff1a; &#xff08;1&#xff09;有穷性&#xff1a;一个线性表中的元素个数是有限的 &#xff08;2&#xff09;一致性&#xff1a…

注册登录首选,趣味滑块验证码

前言 注册登录账户时&#xff0c;保障账户安全是首要任务&#xff01;使用趣味滑块验证码&#xff0c;既能有效防御恶意攻击&#xff0c;又能为验证过程增添一丝乐趣。让注册和登录变得更加有趣又安全&#xff01; HTML代码 <script src"https://cdn6.kgcaptcha.co…

Ubutnu python2与python3切换

python -V #查看默认版本 Python 2.7.17 python3 -V #查看电脑3的版本 Python 3.6.9 sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2 #设置两个版本的…

【Linux】虚拟地址空间理解

虚拟地址空间 虚拟地址是操作系统管理内存的一种方式。**方便不同进程使用的虚拟地址彼此隔离。方便物理内存中不相邻的内存在虚拟地址上视为连续的来使用。虚拟地址和物理地址的映射是通过MMU页表进行的。虚拟内存对实际内存有保护作用。

LeetCode(力扣)17. 电话号码的字母组合Python

LeetCode17. 电话号码的字母组合 题目链接代码 题目链接 https://leetcode.cn/problems/letter-combinations-of-a-phone-number/ 代码 class Solution:def __init__(self):self.letterMap ["", # 0"", # 1"abc", # 2"def&qu…

备战9月9日C/C++青少年等级考试(1~8级)

由中国电子学会举办的《全国青少年软件编程等级考试》将于9月9日&#xff08;周六&#xff09;举行&#xff0c;你准备的怎么样了&#xff1f;我在这里列举了1~8级的历届真题及解析&#xff0c;希望能助你考试通过&#xff01;&#xff01;&#xff01; C/C编程一级 一级标准 …