Mean Teacher的调研与学习

news2024/10/5 19:15:30

Mean Teacher的调研与学习

  • 0 FQA:
  • 1 Mean Teacher
    • 1.1 Mean Teacher简介
    • 1.2 回顾Π-Model 和 Temporal Ensembling
    • 1.3 Mean Teacher

0 FQA:

Q1,什么是Mean Teacher? MT的训练方式是怎样的?
A1: Mean Teacher是一种基于一致性正则化的半监督学习框架,从Π-model时序集成演化而来。该模型由一个教师模型和一个学生模型组成,两者使用相同的网络结构。在训练过程中,该方法对学生和教师模型添加不同的扰动,并通过最小化二者的输出差异训练模型,使模型在不同扰动下的输出结果仍具有一致性,从而有效提升模型的泛化能力。

Q2:为什么叫平均教师?
A2: 因为在MT模型的训练过程中,Mean Teacher 首先对学生模型进行训练,并利用梯度下降法更新其模型参数,其次计算学生模型参数的指数移动平均值,并将计算结果更新为教师模型的参数由于教师模型是连续若干训练step产生的学生模型的平均值,我们称之为平均教师方法。

Q3: MT与时序集成的不同点在哪?
A3: 与 Temporal Ensembling 方法的不同之处在于,Mean Teacher 并未对模型的输出结果进行操作,而是关注于对模型参数的处理。

Q4:后续的引用MT的文章中,都有那些创新思路? 比如说对着Mean Teacher结构上是如何创新点等等?
A4:感觉mean teacher 的变化形式特别的多,我先对着mean teacher为主题进行调研,再来回答这个问题。

1 Mean Teacher

Mean Teacher 论文名 Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning results
论文地址链接:https://arxiv.org/pdf/1703.01780.pdf

1.1 Mean Teacher简介

Mean Teacher 是一种半监督学习方法,是在方法 Π-Model 和 Temporal Ensembling 之上做了一些改进。 Π
-Model 和 Temporal Ensembling 方法都是用了单个模型,而 Mean Teacher 是用了两个模型。 Teacher 的学习方法是参数进行动量更新。Student 则是普通的学习方式。

1.2 回顾Π-Model 和 Temporal Ensembling

  • Π-Model 对一个 Batch 的数据做两次不同数据增强(例如两次不同的噪声),然后把两次不同数据增强后结果分别输入到同一个模型中,最终的损失函数对于有类标的样本是一个数据增强和类标的交叉熵,另一个是两个数据增强输出的最小二乘损失,对于无类标样本是两个数据增强输出的最小二乘损失。
  • Temporal Ensembling 和 Π-Model 基本上是一样的,区别在于一个样本在一个epoch中只需要进行一次数据增强即可。原始的模型计算两个损失项以充分利用无标签数据,第一项是带标签数据输入模型后的预测值与标签的交叉熵损失,第二项是对无标签数据施加两种不同的干扰(数据增强),理论上施加数据扰动后的属性值应该不变,这时候就使用均方差损失函数计算两个预测值之间的“距离”。这种思想其实是自监督学习的思想,然后被移植到半监督学习领域了。但是,每一次的计算都需要进行多次的前向传播,显然这会很耗费时间,而且随着数据的变动,模型参数更新的方向也会增加不确定性。为此,引入了集成模型的思想,而且是时序集成,即将Π模型的zi 视为过去若干step预测值的集成,而非单一模型的预测值。这样能够充分利用模型学习的过往经验,使得整个预测过程更具有鲁棒性。集成模型的思想很常见,如Adaboost, dropout等。很显然,这是一个以空间换时间的策略,因为要开辟一定的内存空间存放历史的预测值,但是对缩短训练时间的贡献是卓越的。

Q: Because the targets change only once per epoch, Temporal Ensembling becomes unwieldy when learning large datasets. 怎么理解?
_A:_应该是代表zi 要等一个epoch遍历后才能得到更新,实际上无标签数据的预测属性值是和很久远的平均状态进行对比,而不是跟当前步最新的平均状态进行对比。在面对大型数据集时会显得“迟钝”。

image.png

1.3 Mean Teacher

在 Mean Teacher 这篇论文中,加入了知识蒸馏中 Teacher 和 Student 的概念来解释其方法。这里面的 Student 表示直接和正确类标计算交叉熵的一组数据增强输入,另外一组只计算最小二乘损失的数据增强输入为 Teacher(因为 Teacher 不再从原始输入中学习了嘛)。

为了克服时序集成(Temporal Ensembling)的局限性,我们采用平均模型权重而不是平均模型预测的方法。
由于教师模型是连续若干训练step产生的学生模型的平均值,我们称之为平均教师方法。平均模型权重往往会产生一个比直接使用最终权重更精确的模型。教师模型使用学生模型的EMA权重,而不是与学生模型共享权重。
现在它可以在每一个step完成后即刻聚合之前学习到的所有信息,而不仅仅在每一个epoch。此外,由于EMA提高了所有层的输出质量,而不仅仅是最后一层的输出,因此模型能够更好地表征中层乃至高层语义信息。这些方面早就了该模型相对于Temporal ensemble的两个优势。
首先,更准确的标签使学生和教师模型之间发生更快的反馈循环,从而产生更好的精度。其次,这种方法适用于大型数据集和在线学习。

image.png
形式化描述,Student 和 Teacher 的损失函数为:
image.png
其中 θ和θ’分别是 Student 和 Teacher 的模型参数,η和η’分别是 Student 和 Teacher 的噪声扰动,Teacher 模型参数的更新方法是:
image.png

参考:
【论文阅读笔记:Mean teachers are better role models】
https://zhuanlan.zhihu.com/p/467917019
【Mean teacher 论文阅读】
https://zhuanlan.zhihu.com/p/526985640

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

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

相关文章

【web】nginx+php环境搭建-关键点(简版)

一、nginx和php常用命令 命令功能Nginxphp-fpm启动systemctl start nginxsystemctl start php-fpm停止systemctl stop nginxsystemctl stop php-fpm重启systemctl restart nginxsystemctl restart php-fpm查看启动状态systemctl status nginxsystemctl status php-fpm开机自启…

读书笔记之《大加速》:为什么我们的生活节奏越来越快?

《大加速—为什么我们的生活越来越快》作者是 [英] 罗伯特科尔维尔,原作名: The Great Acceleration:How the World is getting Faster,Faster,2019年出版。 罗伯特科尔维尔(Robert Colvile),是一位政治评论员、作家、资深互联网媒体人。作品刊登在英国《…

《C++面向对象程序设计》✍学习笔记

C的学习重点 C 这块,重点需要学习的就是一些关键字、面向对象以及 STL 容器的知识,特别是 STL,还得研究下他们的一些源码,下面是一些比较重要的知识: 指针与引用的区别,C 与 C 的区别,struct 与…

【Spring MVC】处理器映射器:AbstractHandlerMethodMapping源码分析

目录 一、继承体系 二、HandlerMapping 三、AbstractHandlerMapping 四、AbstractHandlerMethodMapping 4.1 成员属性 4.1.1 MappingRegistry内部类 4.2 AbstractHandlerMethodMapping的初始化 4.3 getHandlerInternal()方法:根据当前的请求url,…

RocketMQ-架构与设计

RocketMQ架构与设计 一、简介二、框架概述1.设计特点 三、架构图1.Producer2.Consumer3.NameServer4.BrokerServer 四、基本特性1.消息顺序性1.1 全局顺序1.2 分区顺序 2.消息回溯3.消息重投4.消息重试5.延迟队列(定时消息)6.重试队列7.死信队列8.消息语…

智慧城市与数字孪生:共创未来城市新篇章

一、引言 随着科技的飞速发展,智慧城市与数字孪生已成为现代城市建设的核心议题。智慧城市注重利用先进的信息通信技术,提升城市治理水平,改善市民生活品质。而数字孪生则通过建立物理城市与数字模型之间的连接,为城市管理、规划…

接近于pi的程序

在一个平静的午后,两个神秘的数字悄然相遇了。它们分别是-1031158223和-328227871。这两个数字看起来普普通通,但谁知它们背后隐藏着一段令人惊叹的奇幻之旅。 这两个数字其实是π的两位探险家,它们决定通过一次除法运算来探索π的奥秘。它们…

浅谈密码学

文章目录 每日一句正能量前言什么是密码学对称加密简述加密语法Kerckhoffs原则常用的加密算法现代密码学的原则威胁模型(按强度增加的顺序) 密码学的应用领域后记 每日一句正能量 人生在世,谁也不能做到让任何人都喜欢,所以没必要…

Vue+SpringBoot打造快递管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 数据中心模块2.2 快递类型模块2.3 快递区域模块2.4 快递货架模块2.5 快递档案模块 三、界面展示3.1 登录注册3.2 快递类型3.3 快递区域3.4 快递货架3.5 快递档案3.6 系统基础模块 四、免责说明 一、摘要 1.1 项目介绍 …

【Java程序设计】【C00294】基于Springboot的车辆充电桩管理系统(有论文)

基于Springboot的车辆充电桩管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的车辆充电桩管理系统 本系统前台功能模块分为:首页功能和用户后台管理 后台功能模块分为:管理员功能和…

博途PLC PID仿真(单容水箱液位高度控制含变积分变增益测试)

单容水箱和双荣水箱的微分方程和数值求解,可以参考下面文章链接: https://rxxw-control.blog.csdn.net/article/details/131139432https://rxxw-control.blog.csdn.net/article/details/131139432这篇博客我们利用欧拉求解器在PLC里完成单容水箱的数学建模。PLC也可以和MATL…

Vue模板引用之ref特殊属性

1. 使用实例 <template><input ref"input" name"我是input的name" /><br /><ul><li v-for"arr in array" :key"arr" id"111" ref"itemRefs">{{arr}}</li></ul> </…

我的NPI项目之设备系统启动(八) -- Android14的GKI2.0开发步骤和注意事项

GKI是什么&#xff1f; Google为什么要推行GKI&#xff1f; GKI全称General Kernel Image。GKI在framework和kernel之间提供了标准接口&#xff0c;使得android OS能够轻松适配/维护/兼容不同的设备和linux kernel。 Google引入GKI的目的是将Framework和Kernel进一步的解耦。因…

汇编反外挂

在软件保护领域&#xff0c;尤其是游戏保护中&#xff0c;反外挂是一个重要的议题。外挂通常指的是一种第三方软件&#xff0c;它可以修改游戏数据、操作游戏内存或提供其他作弊功能&#xff0c;从而给玩家带来不公平的优势。为了打击外挂&#xff0c;游戏开发者会采取一系列措…

【数据结构和算法初阶(C语言)】时间复杂度(衡量算法快慢的高端玩家,搭配例题详细剖析)

目录 1.算法效率 1.1如何衡量一个算法的好坏 1.2 算法的复杂度 2.主菜-时间复杂度 2.1 时间复杂度的概念 2.2 大O的渐进表示法 2.2.1算法的最好&#xff0c;最坏和平均的情况 3.经典时间复杂度计算举例 3.1计算冒泡排序的时间复杂度 3.2计算折半查找的时间复杂度 3.…

SQL 中如何实现多表关联查询?

阅读本文之前请参阅----MySQL 数据库安装教程详解&#xff08;linux系统和windows系统&#xff09; 在SQL中&#xff0c;多表关联查询是通过使用JOIN操作来实现的&#xff0c;它允许你从两个或多个表中根据相关列的值来检索数据。以下是几种常见的JOIN类型&#xff1a; …

C语言:指针的进阶讲解

目录 1. 二级指针 1.1 二级指针是什么&#xff1f; 1.2 二级指针的作用 2. 一维数组和二维数组的本质 3. 指针数组 4. 数组指针 5. 函数指针 6. typedef的使用 7. 函数指针数组 7.1 转移表 1. 二级指针 如果了解了一级指针&#xff0c;那二级指针也是可以很好的理解…

(每日持续更新)jdk api之ObjectStreamException基础、应用、实战

博主18年的互联网软件开发经验&#xff0c;从一名程序员小白逐步成为了一名架构师&#xff0c;我想通过平台将经验分享给大家&#xff0c;因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验&#xff0c;晚上进行用心精简、整理、总结、定稿&…

联想开天昭阳N4620Z笔记本如何恢复出厂麒麟操作系统(图解)

联想开天昭阳N4620Z笔记本简单参数&#xff1a; 中央处理器&#xff1a;KX-6640MA G2 内存&#xff1a;8GB 固态硬盘&#xff1a;512GB SSD 显示器&#xff1a;14.0”FHD 电池&#xff1a;4Cell 操作系统&#xff1a;麒麟KOS中文RTM&#xff08;试用版&#xff09; 此款笔…

[深度学习]yolov9+bytetrack+pyqt5实现目标追踪

【简介】 目标追踪简介 目标追踪是计算机视觉领域中的一个热门研究方向&#xff0c;它涉及到从视频序列中实时地、准确地跟踪目标对象的位置和运动轨迹。随着深度学习技术的快速发展&#xff0c;基于深度学习的目标追踪方法逐渐展现出强大的性能。其中&#xff0c;YOLOv9&…