[Semi-笔记]Switching Temporary Teachers for Semi-Supervised Semantic Segmentation

news2024/9/29 9:37:45

目录

  • 概要
  • 创新一:Dual Temporary Teacher
    • 挑战:
    • 解决:
  • 创新二:Implicit Consistency Learning(隐式一致性学习)
    • 挑战:
    • 解决:
  • 实验结果
  • 小结
  • 论文地址
  • 代码地址

分享一篇2023年NeurIPS的文章。

概要

半监督语义分割中流行的师生框架,主要采用指数移动平均(EMA)来更新单个教师的权重。然而,EMA 更新提出了一个问题,即教师和学生的权重耦合,导致潜在的性能瓶颈。此外,当使用更复杂的标签(例如分割掩模)进行训练但注释数据很少时,这个问题可能会变得更加严重。本文介绍了双位教师,这是一种简单而有效的方法,采用双位临时教师,旨在缓解学生的耦合问题。临时老师轮班工作,逐步提高,始终防止师生关系过于亲密。具体来说,临时教师定期轮流生成伪标签来训练学生模型,并保持每个时期学生模型的独特特征。

创新一:Dual Temporary Teacher

挑战:

半监督语义分割中流行的师生框架主要采用指数移动平均(EMA)来基于学生的权重更新单个教师的权重。问题:教师与学生的权重正在耦合,从而导致潜在的绩效瓶颈。此外,当使用更复杂的标签(例如分割掩模)进行训练但使用很少的注释数据时,这个问题可能会变得更加严重。解决:双师制,旨在缓解学生耦合问题。
Mean Teacher使用学生模型的 EMA 权重更新教师模型,而不是从集成角度与学生模型共享权重。尽管这一师生框架展现了重大影响,但一个关键问题是耦合问题,其中紧密耦合的权重会降低性能

解决:

在半监督语义分割的背景下,我们的目标是减轻传统师生框架中采用的单个 EMA 更新例程引起的耦合问题 。在改进教师模型的关键因素中,我们主要注意到的是学生模型的多样性,我们努力通过建立学生模型的多样性增强教师模型的良性循环来防止随着训练的进行教师和学生模型变​​得过于相似。反过来,改进后的教师保留了学生的多元化观点,并有效地指导了学生模型。由于学生更新了每位 EMA 教师,由于整体效应,教师在学生多样化的同时得到了增强。强化后的教师模型随后可以向学生模型提供更精细的监督信号。
该文引入了一个简单而有效的框架——双教师:一种临时EMA教师模型交替生成伪标签来指导学生模型的方法;同时,学生模型使用其自身权重的指数移动平均值更新教师模型的权重。我们声称,引入额外的 EMA 教师可以通过提供独特且多样化的监督来促进学生的多元化。如图 所示,双教师由一对教师-学生模型组成,其中两个临时教师模型在训练过程中每个时期都会切换以教授单个学生模型。
在这里插入图片描述
与之前的研究类似,采用强增强图像作为学生模型的输入,采用弱增强图像作为教师模型的输入,以确保可靠的伪标签。然而,我们没有采用传统的依赖单一固定教师模型的师生框架,而是引入了每个时期交替激活的双临时教师,为学生模型提供了多样化的指导。临时 EMA 教师捕捉学生模型不断变化的时间知识,在不同的时间步上表现得像一个时间集合。

  • 强大的增强池

为了使学生模式更加多样化,我们不仅仅依靠 EMA 教师模式,尽管有交替的双教师。为了进一步确保多样性,我们通过在每个时期转移临时教师模型时改变应用于学生模型的强增强类型来提供多样性。我们通过构建预定义但非确定性的强增强池来实现这一点,包括精细类级别和粗略区域级别增强(即 ClassMix 和 CutMix)。每个训练时期从池中随机采样一个增强,限制连续时期不使用相同的增强。

  • 更新学生和教师

简而言之,临时教师模型的使用有助于将多样性引入学生模型,而学生模型获得的多样性特征有助于教师模型的增强。学生模型的目标函数定义如下:
在这里插入图片描述
在这里插入图片描述 (2)

其中 Bu 表示训练批次中未标记图像的数量,图像大小为 H ×W,第 i 个图像上的第 j 个像素,未标记输入应用强增强的学生模型的预测 pu ij,以及相应的伪标签 ˆyu ij来自教师模型。 λu 是一个标量超参数,用于调整无监督损失权重。
其中一名临时教师在每个时期交替激活,并通过 EMA 权重保留学生模型的特征。第 k 个临时教师 k ∈ {1, …, tn} 在每个 epoch 交替切换;第 k 个临时教师的参数 θk t 根据学生参数 θs 通过 EMA 通过式(2)进行更新。

创新二:Implicit Consistency Learning(隐式一致性学习)

挑战:

解决:

我们从一致性正则化的角度引入了另一种隐式集成学习来增强我们的学生模型。在[14,38,10]的推动下,我们鼓励层子集在学生模型中活跃,并且所有这些子模型做出一致的预测。与之前的研究[38, 2]相比,在同一模型中的完整模型和子模型之间强制执行一致的预测,我们在学生模型和完整教师模型的子模型之间强制执行一致性。我们通过多功能随机深度 [14] 在学生模型中构建子模型,适用于从 CNN 模型到基于 Transformer 的模型。因此,学生模型通过以下目标函数进行训练:
在这里插入图片描述

其中~θs表示学生模型的子模型参数,下降率为τ,B是训练批次中的图像数量。请注意,我们只对教师和学生模型的输入应用弱增强,这与等式 1 不同。 3,我们分别向学生模型提供强增强输入,向教师模型提供弱增强输入。最后这个loss配合Lunsup来更新学生模型。

实验结果

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

小结

该文引入了一种新颖的双教师框架来解决广泛使用的师生框架中由 EMA 更新引起的耦合问题。从隐式集成学习的角度提出了一种简单而有效的方法,而不是依赖于显式集成的现有解决方案。
(1)缓解传统师生框架中使用的单一EMA更新例程所引起的耦合问题。努力防止教师和学生模式变得过于相似,建立一个良性循环,在这个循环中,学生模式的多样性增强了教师模式。
(2)经过改进的教师保留了学生的不同观点,并有效地指导了学生模式。由于学生更新了每一位EMA老师,由于合奏效应,老师在使学生多样化的同时得到了增强。强化的教师模型随后可以向学生模型提供更精细的监督信号。

论文地址

pdf地址

代码地址

https://github.com

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

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

相关文章

碳素光线疗法与阳光猪舍

碳素光线疗法与阳光猪舍 生息在地球上的所有动物、在自然太阳光奇妙的作用下、生长发育。太阳光的能量使它们不断进化、繁衍种族。现在、生物能够生存、全仰仗于太阳的光线。太阳光线中、包含有动物健康所需要的极为重要的波长。因此、和户外饲养的动物相比、在室内喂养的观赏动…

动态规划相关题目

文章目录 1.动态规划理论基础2.斐波那契数3.爬楼梯4.使用最小花费爬楼梯5.不同路径6.不同路径 II7. 整数拆分8. 不同的二叉搜索树 1.动态规划理论基础 1.1 什么是动态规划? 动态规划,英文:Dynamic Programming,简称DP,如果某一…

ClickUp、clickupython

文章目录 关于 ClickUp关于 clickupython安装Authentication方法 1: API Key (最快)当前 ClickUpClient 功能TaskListFolderAttachmentsCommentsTeamsChecklistsGoalsMembersTagsSpacesTime Tracking 教程 关于 ClickUp 官网:https://clickup.com/University Cours…

Acer宏碁暗影骑士擎AN515-58笔记本电脑工厂模式原厂Win11系统ISO镜像安装包下载

宏基AN515-58原装出厂OEM预装Windows11系统工厂包,恢复出厂时开箱状态一模一样,带恢复还原功能 链接:https://pan.baidu.com/s/1iCVSYtList-hPqbyTyaRqQ?pwdt2gw 提取码:t2gw 宏基原装系统自带所有驱动、NITROSENSE风扇键盘灯…

【动手学深度学习】深入浅出深度学习之线性神经网络

目录 🌞一、实验目的 🌞二、实验准备 🌞三、实验内容 🌼1. 线性回归 🌻1.1 矢量化加速 🌻1.2 正态分布与平方损失 🌼2. 线性回归的从零开始实现 🌻2.1. 生成数据集 &#x…

H4020 40V输入EN智能控制 带线补 同步降压控制器芯片

40V输入EN智能控制带线补的同步降压控制器芯片的工作原理涉及多个方面,以下是其关键部分的解释: 输入电压管理:芯片能够接收高达40V的输入电压。这通常需要一个前端电路来处理高电压,比如使用电阻分压、电容器滤波或者其他保护电…

C++:变量和常量(3)

变量 什么是变量:变量就是一个装东西的盒子 通俗:变量是用于存放数据的容器。我们通过变量名获取数据,甚至数据可以修改 变量的作用:给指定的内存空间起名,后期通过起的名字就可以调用整个内存空间 定义变量的格式 &a…

LVS负载均衡-DR模式配置

LVS:Linux virtual server ,即Linux虚拟服务器 LVS自身是一个负载均衡器(Director),不直接处理请求,而是将请求转发至位于它后端的真实服务器real server上。 LVS是四层(传输层 tcp/udp)负载均衡…

基于javaweb(springboot)汽车配件管理系统设计和实现以及文档报告

基于javaweb(springboot)汽车配件管理系统设计和实现以及文档报告 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐…

python--冒泡排序和main函数

1.判断是不是回文数: x int(input("请输入一个正整数:")) x str(x) if x x[::-1]:print("是回文数。") else:print("不是回文数。") 2.冒泡排序 # 冒泡排序: # [30,8,-10, 50&am…

【漏洞复现】网络验证系统getInfo接口处存在SQL注入漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

【算法】KMP-快速文本匹配

文章目录 一、KMP算法说明二、详细实现1. next数组定义2. 使用next加速匹配3. next数组如何快速生成4. 时间复杂度O(mn)的证明a) next生成的时间复杂度b) 匹配过程时间复杂度 三、例题1. [leetcode#572](https://leetcode.cn/problems/subtree-of-another-tree/description/)2.…

Python 从0开始 一步步基于Django创建项目(13)将数据关联到用户

在city_infos应用程序中,每个城市信息条目是关联到城市的,所以只需要将城市条目关联到用户即可。 将数据关联到用户,就是把‘顶层’数据关联到用户。 设计思路: 1、修改顶层数据模型,向其中添加‘用户’属性 2、根…

虹科Pico汽车示波器 | 免拆诊断案例 | 2018款东风风神AX7车发动机怠速抖动、加速无力

一、故障现象 一辆2018款东风风神AX7车,搭载10UF01发动机,累计行驶里程约为5.3万km。该车因发动机怠速抖动、加速无力及发动机故障灯异常点亮而进厂维修,维修人员用故障检测仪检测,提示气缸3失火;与其他气缸对调点火线…

HCIP-Datacom(H12-821)题库补充(3/28)

最新 HCIP-Datacom(H12-821)完整题库请扫描上方二维码访问,持续更新中。 如图所示组网,以下关于R4优选路由的描述,正确的是哪一项? A:无法判断,MED不能作为AS之间BGP选路的条件 B&a…

JAVA版鸿鹄云商B2B2C:解析多商家入驻直播带货商城系统的实现与应用

一、技术选型 java开发语言:java是一种跨平台的编程语言,适用于大型企业级应用开发。使用java开发直播商城可以保证系统的稳定性和可扩展性。 spring boot框架:spring boot是一个快速构建spring应用的框架,简化了开发过程&#xf…

2D Fantasy sprite bundle

使用精灵形状和手绘精灵创建独特的景观,非常适合侧滚动或平台游戏等2d游戏。 2D Fantasy sprite bundle是一个包含9个资源的捆绑包,价格折扣约为50%。 捆绑资产: -海岛精灵包, -森林精灵包, -地牢精灵包, -山精灵包, -古老的森林精灵包, -冰雪精灵包, -熔岩地牢精灵包…

MybatisPlus速成

MybatisPlus快速入门 快速入门入门案例常见注解常见配置 核心功能条件构造器自定义SQLService接口 扩展功能代码生成静态工具逻辑删除枚举处理器JSON处理器 插件功能分页插件通用分页实体 参考文档 mybatis-plus参考文档 全部资料链接 讲义 快速入门 入门案例 <dependency…

Phoenix伪分布安装

引言 Phoenix是构建在HBase上的一个SQL层&#xff0c;能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表&#xff0c;插入数据和对HBase数据进行查询。Phoenix完全使用Java编写&#xff0c;作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫…

win11 查看 wifi 密码

** win11 查看 wifi 密码 ** 第一种方法&#xff1a; 1.点击桌面左下角的开始菜单&#xff0c;选择“设置”。 2.在网络和internet中选择“高级网络设置”。 3.在相关设置下方点击“更多网络适配器选项”。 4.右击“WLAN”&#xff0c;在WLAN信息窗口点击“状态”。 5.…