自监督表征学习方法——BYOL(Bootstrap Your Own Latent)

news2024/12/25 13:27:05

自监督表征学习方法——BYOL(Bootstrap Your Own Latent)

参考文献:《Bootstrap Your Own Latent A New Approach to Self-Supervised Learning》

1.前言背景

        学习良好的图像表示是计算机视觉中的一个关键挑战,因为它允许对下游任务进行有效的训练。许多不同的训练方法被提出来学习这种表征,通常依赖于视觉借口任务。

        其中,最先进的对比方法是通过减少同一图像的不同增强视图的表示之间的距离和增加来自不同图像的增强视图的表示(负对)之间的距离来训练的。这些方法需要仔细处理负对,通过依赖大批量、内存库或定制的挖掘策略来检索负对。此外,它们的性能严重取决于图像增强的选择。

 BYOL与以往自监督学习方法在ImageNet上的性能对比

2.BYOL介绍

        BYOL在不使用负对的情况下,获得了比最先进的对比方法更高的性能。它迭代地引导网络的输出,以作为增强表示的目标。此外,BYOL对图像增强的选择比对比方法更鲁棒;我们怀疑不依赖负对是其提高鲁棒性的主要原因之一。虽然以前基于引导的方法使用了伪标签、聚类索引或一些标签,但我们建议直接引导表示。

        特别是,BYOL使用两种神经网络,被称为在线网络目标网络,它们相互作用和相互学习。

原理:从一个图像的增强视图开始,BYOL训练其在线网络来预测目标网络对同一图像的另一个增强视图的表示。

虽然这个目标允许折叠解,例如,为所有的图像输出相同的向量,但我们的经验表明,BYOL并不收敛于这样的解。

 BYOL的框架图

如图所示,紫色部分为在线网络,红色部分为目标网络。

在线网络由一组权值θ定义,由三个阶段组成:编码器f_\theta、投影仪g_\theta和预测器q_\theta。目标网络具有与在线网络相同的架构,但使用不同的权值ξ。

目标网络提供了对在线网络进行训练的回归目标,其参数ξ是在线参数θ的指数移动平均值。更准确地说,给定一个目标衰减率\tau \in [0,1],在每个训练步骤后,我们执行以下更新,

具体流程如下:

①给定一组图像D,图像x∼D采样均匀从D,和两个分布的图像增强\tau{\tau }',BYOL产生两个增强视图v=t(x)v'=t'(x)从x分别应用图像增强t\sim \taut'\sim \tau '

②从第一个增广视图v中,在线网络输出一个表示法y_\theta =f_\theta (v)和一个投影法z_\theta =g_\theta (y_\theta )

目标网络从第二个增强视图v'输出y'_\xi =f_\xi (v')和目标投影z'_\xi =g_\xi (y'_\xi )

③然后,我们输出q_\theta (z_\theta )的预测和z'_\xi。最后,我们定义了以下标准化预测和目标预测之间的均方误差,

将v输入目标网络,则得到\tilde{L}_{\theta ,\xi },最终最小化

参数更新情况如下

 \eta为学习率。

3.实验结果

在ImageNet上做自监督训练。

①下游任务用作ImageNet识别

 ②ImageNet半监督任务

③迁移学习到别的数据集

④迁移学习到语义分割和目标检测以及深度估计

4.结论

        这里介绍了一种新的图像表示的自监督学习算法BYOL。BYOL通过预测其输出的以前版本来学习它的表示,而不使用负对。并且展示了BYOL在各种基准测试上取得了最先进的结果。特别是,在使用ResNet-50(1×)的ImageNet线性评估协议下,BYOL实现了一种新的技术,并弥补了自监督方法和的监督学习基线之间的大部分剩余差距。使用ResNet-200(2×),BYOL达到了79.6%的前1位精度,比之前的技术水平(76.8%)有所提高,同时少使用了30%的参数。

然而,BYOL仍然依赖于特定于视觉应用程序的现有增强集。为了将BYOL推广到其他模式(例如,音频、视频、文本、……),有必要为每种模式获得类似的合适的扩充。设计这样的增强功能可能需要大量的努力和专业知识。因此,自动搜索这些增强功能将是将BYOL推广到其他模式的重要下一步。

 

 

 

 

 

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

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

相关文章

POE接口电路设计

首先看到PSE端,主要包含PSE芯片,MOS管(有些PSE芯片MOS管是集成在芯片里面的),自恢复保险丝,还有TVS管,一般这个TVS管保护电压是58V的。这个电阻是用来检测POE传输的电流的,一般是0.几…

vue2 diff算法及虚拟DOM

概括:diff算法,虚拟DOM中采用的算法,把树形结构按照层级分解,只比较同级元素,不同层级的节点只有创建和删除操作。 一、虚拟DOM (1) 什么是虚拟DOM? 虚拟 DOM (Virtual DOM,简称 VDOM) 是一种…

KDDAC-10kV 电缆交流耐压及振荡波局放测试系统

一、概述 目前对电力电缆检修的管理,主要是依据《电力设备交接和预防性试验规程》所规定的项目和试验周期,定期在停电状态下进行绝缘性能试验。其中变频串联谐振试验由于试验状况接近电缆的运行工况,因此成为国内目前应用广泛的试验方法。 …

社科院与杜兰大学中外合作办学金融管理硕士——30+的年龄在职读研有必要吗?

说起读研,年龄在什么区间最合适呢?上次有位咨询的同学反馈年龄已经快35岁了,有一份不错的工作,但又不甘心止步于此,想要通过提升学历升职加薪,但又纠结自己是否能静下心来学习、是否能顺利毕业、拿到的证书…

[HSCSEC 2023] rev,pwn,crypto,Ancient-MISC部分

比赛后有讲解,没赶上,前20比赛完1小时提交WP,谁会大半夜的起来写WP。总的感觉pwn,crypto过于简单,rev有2个难的不会,其它不是我的方向都感觉过于难,一个都没作。revDECOMPILEONEOONE入门题,一个…

12 循环神经网络(基础篇) Basic RNN

文章目录问题引入关于权重权重共享RNN CellRNN原理RNN计算过程代码实现RNN Cell维度说明代码RNN维度说明NumLayers说明计算过程代码参考实例问题分析多分类问题代码RNN CellRNN改进Embedding网络结构Embedding说明Linear说明代码课程来源: 链接课程文本参考&#xf…

前端react面试题指南

概述下 React 中的事件处理逻辑 抹平浏览器差异,实现更好的跨平台。避免垃圾回收,React 引入事件池,在事件池中获取或释放事件对象,避免频繁地去创建和销毁。方便事件统一管理和事务机制。 为了解决跨浏览器兼容性问题&#xff0…

CSS基础:盒子模型和浮动

盒子模型 所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用 CSS盒模型本质上是一个盒子,封装HTML元素。 它包括:外边距(margin),边框(bord…

操作系统考试突击复习笔记

0 基础概念补充特权命令:有特殊权限的指令,比如清内存、置时钟、分配系统资源、修改虚拟内存的段表和页表,修改用户的访问权限。系统调用:操作系统为应用程序提供的使用接口,可以理解为一种可供应用程序调用的特殊函数…

Elasticsearch7.8.0版本进阶——数据写流程

目录一、数据写流程概述二、数据写流程步骤2.1、数据写流程图2.2、数据写流程步骤(新建索引和删除文档所需要的步骤顺序)2.3、数据写流程的请求参数一、数据写流程概述 新建、删除索引和新建、删除文档的请求都是写操作, 必须在主分片上面完…

http409报错原因

今天一个同事的接口突然报409,大概百度了一下,不是很清楚,谷歌也没找到特别好的解释 因为是直接调用的gitlab,就直接看了下gitlab的api The following table shows the possible return codes for API requests. Return valuesDescription200 OKThe GET, PUT or DELETE request…

【halcon】灰度直方图直观理解与应用

灰度直方图 横坐标:是 0~255 表示灰度值的范围 纵坐标:是在不同灰度值下像素的个数! 那么灰度直方图的本质就是统计不同灰度下像素的个数! 它的直观目的,就是查看灰度的分布情况! 与之相关的函数&#xff…

宝塔搭建实战php开源likeadmin通用管理pc端nuxt3源码(三)

大家好啊,我是测评君,欢迎来到web测评。 昨天给大家分享了admin前端的搭建部署方式,今天来给大家分享pc端在本地搭建,与打包发布到宝塔的方法,希望能够帮助到大家,感兴趣的朋友可以自行下载学习。 技术架构…

C语言在游戏中播放音乐

使用 mciSendString 播放音乐 mciSendString 支持 mp3、wma、wav、mid 等多种媒体格式,使用非常简单。这里做一个简单的范例,用 mciSendString 函数播放 MP3 格式的音乐,代码如下: // 编译该范例前,请把 music.mp3 放…

Kotlin实现简单音乐播放器

关于音乐播放器,我真的是接触比较多,听歌作为我第一大爱好,之前也用Java设计过音乐播放器,感兴趣的同学可以阅读:Android Studio如何实现音乐播放器(简单易上手)和 Android Studio实现音乐播放器…

全链路异步,让你的 SpringCloud 性能优化10倍+

背景 随着业务的发展,微服务应用的流量越来越大,使用到的资源也越来越多。 在微服务架构下,大量的应用都是 SpringCloud 分布式架构,这种架构,总体是全链路同步模式。 同步编程模式不仅造成了资源的极大浪费&#x…

设计模式:适配器模式(c++实现案例)

适配器模式 适配器模式是将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。好比日本现在就只提供110V的电压,而我的电脑就需要220V的电压,那怎么办啦?适配器就是干这活的&#xff0…

CVE-2019-2725

//去年存货 前言 在学习内网过程中遇到了weblogic比较常见的漏洞,编号是cve-2019-2725,之前没有总结过,于是本篇文章给大家总结归纳一下该漏洞的利用方法与原理。 基础知识 cve-2019-2725漏洞的核心利用点是weblogic的xmldecoder反序列化漏洞&#x…

Bean(Spring)的执行流程和生命周期

Bean(Spring)的执行流程具体的流程就和我们创建Spring基本相似。启动 Spring 容器 -> 实例化 Bean(分配内存空间,从无到有) -> Bean 注册到 Spring 中(存操作) -> 将 Bean 装配到需要的…

基于微信小程序的医院挂号系统小程序

文末联系获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器…