常见于伪标签(Pseudo Label)、Mean Teacher、Noisy Student、FixMatch这类半监督算法,核心思想:教师模型生成软 / 硬伪标签,学生模型用标注数据 + 无标注数据一起训练。
一、两个模型基本定义
- 学生模型(Student)可训练参数,实时更新;接收输入,输出预测。同时用有标签数据做监督损失,用无标签数据 + 教师的伪标签做一致性损失。
- 教师模型(Teacher)一般不直接用梯度更新,参数由学生模型的参数EMA(指数移动平均)缓慢拷贝得到; 作用:对无标签样本生成高质量伪标签(软标签概率分布 / 硬标签 one-hot)。
⚠️ 区分:Noisy Student 里教师是固定预训练模型,学生训练完又变成新教师,属于迭代师生;Mean Teacher 是训练过程中同步维护 EMA 教师,是在线师生。
二、训练时完整互动流程(Mean Teacher 典型流程)
- 输入分支
- 有标签样本:原图,带真实标签
- 无标签样本:做两次不同的增强(强增广 + 弱增广)
- 教师侧无标签样本弱增强版本送入教师模型 → 输出预测概率,作为伪标签(target)
教师不计算梯度,只做推理;参数 = EMA (学生参数),每一步慢慢跟着学生走,比学生更稳定。
- 学生侧
- 有标签样本:学生预测和真实标签算分类损失(CE)
- 无标签样本:强增强版本送入学生模型,输出预测,和教师给出的伪标签计算一致性损失(MSE / KL 散度)
- 总损失
:一致性损失权重,控制无标注部分的强度 5.参数更新
- 梯度只回传给学生模型,更新学生权重
- 教师权重:\(\theta_t = \alpha \cdot \theta_t + (1-\alpha)\cdot\theta_s\) \(\alpha\)一般取 0.95~0.99,平滑更新,抑制噪声伪标签抖动
三、互动核心机制:一致性正则化
假设:同一个样本,经过不同数据增广,模型预测应该保持一致
- 教师:看扰动更小的样本(弱增广),生成稳定目标
- 学生:看扰动更大的样本(强增广),学习在变化下依然匹配教师的预测
- 目的:强迫模型学习鲁棒特征,利用海量无标注数据,防止过拟合少量标注集
四、两种主流师生范式区别
1. Mean Teacher(在线师生,最经典)
✅ 训练全程同时维护教师和学生;教师是学生 EMA,单轮训练并行互动
- 优点:实现简单,稳定;CV 半监督基线
- 缺点:教师永远滞后学生,极端情况下会继承学生错误
2. Noisy Student(迭代式师生)
✅ 分多轮迭代,不是同时存在:
- 第一轮:用少量标注数据训练一个教师(固定不动)
- 教师给全部无标注数据打伪标签,加入训练集
- 用带标注 + 伪标签数据训练学生,训练时对输入加噪声(增广、dropout)
- 训练完成后,学生升级成为新教师,重复打标签训练下一轮学生
特点:一轮结束才切换师生,每一轮教师完全固定
五、关键坑点(师生互动容易出的问题)
- 伪标签漂移(Confirmation Bias)学生学了教师的错误伪标签,越训越错;教师跟着学生 EMA 更新,错误不断放大。 缓解:用软标签(概率分布)而不是硬 one-hot;筛选高置信度伪标签;强数据增广。
- 教师过早跟上学生,失去 “稳定目标”:EMA 的\(\alpha\)不能太小。
- 一致性损失权重\(\lambda\)不能一开始就开很大,通常预热训练,前期只训练监督损失,模型有一定能力后再打开无标注一致性损失。
六 、三大查询(匹配查询、一致性查询、去噪查询)
1️⃣ 匹配查询 Match Query(主检测 Query,正常 Object Query)
作用:负责常规检测、和伪标签做匈牙利匹配,产生检测输出,推理时只用它。
- 来源:DETR 原生可学习 object queries,数量固定(例如 100 个)
- 有标注分支:和 GT 做匈牙利 1‑to‑1 匹配,算标准检测 loss(分类 + 框回归)
- 无标注分支:接收教师输出的伪框伪标签,执行混合分配策略:
- 训练前期:1 对多分配,一个伪标签匹配多个 match query,提升召回、挖掘小目标;
- 训练后期:切回 1 对 1,保证 NMS‑free 输出质量。
- 和师生的关系:学生的 Match Query 做前向,输出预测,学生梯度更新;教师(EMA)用同样这套 query 在弱增广图上推理,产出伪标签。
一句话:就是正常 DETR 检测 query,负责真正输出框;一致性、去噪是训练辅助 query。
2️⃣ 一致性查询 Consistency Query(CQC,跨视图一致性正则化核心)
解决 DETR 半监督老问题:不同增广视图之间,物体不绑定固定 query 索引,传统一致性正则无法直接用。作用:专门做跨视图(弱增广 view / 强增广 view)一致性约束,实现半监督一致性正则。
工作流程(师生互动)
- 无标注图生成两个视图:
- view‑A:弱增广,送入教师模型,教师 Match Query 输出伪实例;
- view‑B:强增广,送入学生模型。
- 把教师在弱视图匹配到物体的query 特征复制出来,作为学生侧的Consistency Query 初始化。
✨关键点:不是用索引对齐,是直接复制教师 query embedding;保证:强视图学生这边的 CQC,语义上和弱视图教师检测同一个物体。
- 学生把这批 CQC 送入解码器,在强增广图像特征上做注意力推理,得到学生侧预测。
- Loss:学生 CQC 输出 VS 教师对应伪标签,计算一致性损失(只作用 CQC,不干扰 Match Query)。
- 意义:
Match Query 索引会乱跑;CQC 强制把 “同一个物体的 query 特征” 跨视图搬运过去。实现 Mean‑Teacher 那套一致性正则思想,但适配 DETR 动态 query 特性。
- 注意:CQC只训练,不参与推理;不会出检测结果,只用来传递无标注数据的监督信号。
3️⃣ 去噪查询 Denoise Query(DN‑Query,借鉴 Denoise‑DETR)
作用:降低伪标签噪声、帮助解码器区分前景 / 背景,缓解半监督里伪标签错标、漏标噪声。
Denoise‑DETR 原本是给有监督用:把带小噪声的 GT 框编码成 DN‑query,帮助学习框回归;Semi‑DETR 把它迁移到半监督,拿教师输出伪标签做带噪声编码,生成 denoise queryCVF Open A...。
师生下的工作:
- 取教师输出的伪框、伪类别,人为给坐标加轻微高斯噪声;
- 将噪声伪框 + 类别编码,生成一批 Denoise Query,送入学生解码器;
- 监督信号:依然用原始干净教师伪标签做目标,算 loss;
- 效果:强迫解码器学会,即使 query 输入位置有偏移噪声,依然回归到真实物体位置;提升对伪标签位置抖动的鲁棒性,抑制 confirmation bias。
关键点:DN‑Query 也仅训练阶段存在,推理直接丢弃,不会占用推理开销。
三者完整协作(Semi‑DETR 半监督训练数据流)
输入一批数据:有标注图 + 无标注图(强弱双增广)
- 教师(EMA 学生参数,不回传梯度)
- 弱增广无标注图,走 Match Query → NMS 后得到伪框伪标签。
- 学生(梯度更新主体)三路 Query 并行过解码器
- Match Query
- 有标注:匈牙利匹配 GT,监督 loss;
- 无标注:匈牙利匹配教师伪标签,1 对多→1 对 1 混合分配,主检测损失。
- Consistency Query(CQC)
- 复制教师匹配成功实例的 query embedding 初始化;在强增广图像上解码;对齐教师伪标签,一致性正则 loss。
- Denoise Query
- 教师伪标签加入位置噪声编码生成 query;学生回归回原始伪标签;抗伪标签位置噪声。
- Match Query
- 总损失 = 标注数据监督损失 + Match‑query 无标注分配损失 + λ₁一致性查询损失 + λ₂去噪查询损失
- 更新学生参数;教师执行 EMA 平滑更新。
- 推理:只保留 Match Query,CQC / Denoise Query 全部扔掉。
三者简明对比表
| 查询 | 是否推理使用 | 来源 | 核心目的 | 监督来源 |
|---|---|---|---|---|
| 匹配查询 Match Query | ✅推理使用 | 原生可学习 object query | 正常目标检测输出框 | GT / 教师伪标签匈牙利匹配 |
| 一致性查询 Consistency Query (CQC) | ❌仅训练 | 复制教师在弱视图匹配成功的 query embedding | 跨增广视图一致性正则,解决 DETR 动态 query 问题 | 教师伪标签 |
| 去噪查询 Denoise Query | ❌仅训练 | 教师伪标签加位置噪声编码生成 | 抵抗伪标签位置噪声,提升回归鲁棒性 | 原始教师干净伪标签 |
核心坑点理解
- CNN‑based SSOD(如 Consistent‑Teacher)不需要 CQC,因为输出是空间特征图,不需要关心 query 索引;DETR 必须 CQC,因为 query 索引不绑定物体实例。
- CQC 不是新学一批参数,是拷贝教师的 query embedding 作为初始化,强视图下再经过学生解码器注意力更新;实现 “同一物体语义的 query 跨视图传递”。
- Denoise Query 不是过滤伪标签,而是训练解码器对位置噪声鲁棒;真正过滤伪标签是另外 GMM 代价挖掘模块,和 DN‑Query 是两个独立模块。
和 Mean‑Teacher 的对应关系
- Mean‑Teacher(CNN):
弱增广图教师预测 → 强增广图学生预测 → 直接对输出做一致性损失。
- Semi‑DETR(Transformer):
弱增广图教师 Match Query 检测物体 → 复制该物体 query embedding 生成 CQC → CQC 送入强增广学生解码器 → CQC 输出对齐教师伪标签做一致性损失。
七、整体流程图
八、一句话总结师生互动
学生不断学习,用梯度更新;教师缓慢复制学生的权重,用更稳定的预测作为无标注样本的学习目标;学生要做到:样本经过剧烈增广后,预测依然对齐教师给出的目标,以此挖掘无标注数据信息。