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

本文主要是介绍[Semi-笔记]Switching Temporary Teachers for Semi-Supervised Semantic Segmentation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 概要
  • 创新一: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

这篇关于[Semi-笔记]Switching Temporary Teachers for Semi-Supervised Semantic Segmentation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/855788

相关文章

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

Git 的特点—— Git 学习笔记 02

文章目录 Git 简史Git 的特点直接记录快照,而非差异比较近乎所有操作都是本地执行保证完整性一般只添加数据 参考资料 Git 简史 众所周知,Linux 内核开源项目有着为数众多的参与者。这么多人在世界各地为 Linux 编写代码,那Linux 的代码是如何管理的呢?事实是在 2002 年以前,世界各地的开发者把源代码通过 diff 的方式发给 Linus,然后由 Linus