当前位置: 首页 > news >正文

论文阅读 2025-8-26 一些半监督学习的工作

今天突发奇想,看一下cvpr2025的半监督学习的医学图片分割的相关工作。

半监督学习有两个比较经典的方法:

1.一致性正则化/学习 (Consistency Regularization)

核心思想: 对于一个输入数据,即使经过一些轻微的扰动(例如噪声、缩放、旋转等数据增强),模型给出的预测也应该保持一致(即输出分布应该相似)。

如何工作:

  • 对同一个未标记样本 x 进行两次不同的增强或扰动,得到 x’ 和 x’'。
  • 将这两个变体分别输入模型,得到两个预测分布 P(y|x’) 和 P(y|x’')。
  • 计算这两个分布之间的差异(通常使用KL散度、均方误差等作为损失函数),并最小化这个差异。这个损失项会作为正则项,与有监督的损失项一起指导模型训练。

哲学: “一个样本,无论你如何观察它,它都应该属于同一个类别。” 这鼓励模型学习到对扰动不敏感的、更鲁棒的特征表示。

经典代表模型:

  • Π-Model、Temporal Ensembling:早期开创性工作。
  • Mean Teacher:使用一个教师模型(权重的移动平均)来为学生模型生成更稳定的目标。
  • FixMatch、UDA:将一致性学习与伪标签(见下文)巧妙结合,取得了极佳的效果。
2. 伪标签学习 (Pseudo-Labeling)

核心思想: 利用模型本身在未标记数据上 confident(高置信度)的预测,作为“伪标签”(Pseudo-Labels),然后将这些数据当作有标签数据来使用,扩充训练集。

如何工作:

  • 使用当前模型对未标记数据 x 进行预测。
  • 筛选出那些模型预测置信度高于某个阈值 τ 的样本。
  • 将这些高置信度的预测(例如 argmax(P(y|x)))当作该样本的“真实”标签 ŷ。
  • 将这些 (x, ŷ) 对加入到训练集中,与原有的有标签数据一起训练模型。

哲学: “自信的预测很可能是对的,那就把它当成对的来用。” 这是一种自训练(Self-training)的现代形式。

经典代表模型:

  • Self-Training:最原始的形式。
  • Pseudo-Label:由Dong-Hyun Lee提出,明确给出了“伪标签”这一术语。
  • FixMatch:同样结合了该方法,对弱增强数据生成伪标签,并用强增强数据的一致性来训练。

重要补充:现代方法通常是混合体

需要强调的是,当今最先进的半监督学习方法通常不是单纯使用某一种,而是将两者甚至更多思想融合在一起。最著名的例子就是 FixMatch:

  • 伪标签阶段:对一张未标记图片进行弱增强(如随机水平翻转),让模型预测并生成伪标签。
  • 一致性学习阶段:对同一张图片进行强增强(如Cutout、色彩抖动),让模型预测,并要求这个预测与第一步生成的伪标签保持一致。

1. β-FFT: Nonlinear Interpolation and Differentiated Training Strategies for Semi-Supervised Medical Image Segmentation

提出了一个新的半监督训练的范式,以及一个新的图片增强的方法(不在space domain上增强,而是在频谱domain上整合两个图片),感觉不错。

2. Enhancing SAM with Efficient Prompting and Preference Optimization for Semi-supervised Medical Image Segmentation

这篇论文的模型在多个数据集上进行了半监督训练,不是一个统一的模型,因此我感觉也是一般般吧,泛化可能还是会不太好。

3. STiL: Semi-supervised Tabular-Image Learning for Comprehensive Task-Relevant Information Exploration in Multimodal Classification

多模态半监督学习。

创新点大致如下:

  1. 新的模型架构,允许模型学习modality-shared和modal-specific的特征,而不是单一特征
  2. 新的伪标签选择策略
  3. 通过类别原型进行对比学习来拉开类别差异
http://www.dtcms.com/a/350967.html

相关文章:

  • JVM-(11)JVM-定位OOM问题
  • 论文学习日志——忆阻器与神经网络——part1
  • Python大型数组计算完全指南:从基础到分布式系统实践
  • Zookeeper(分布式RPC调用和分布式文件储存)
  • [小练习]100行不到使用Java Socket网络编程实现定向聊天
  • 从双重检查锁定的设计意图、锁的作用、第一次检查提升性能的原理三个角度,详细拆解单例模式的逻辑
  • 基于SpringBoot的网上点餐系统
  • OpenTenBase核心技术解密:突破OLTP与OLAP边界的分布式数据库革新
  • Flask模块如何使用
  • 浅谈技术顾问的转型困境
  • Web前端开发基础
  • windows 下 使用C++ 集成 zenoh
  • ArcGIS学习-9 ArcGIS查询操作
  • vLLM轻松通
  • ArcGIS学习-10 空间连接和矢量分析
  • 百度IOS客户端岗位--面试真题分析
  • 5G 三卡图传终端:应急救援管理的 “可视化指挥核心”
  • PostgreSQL诊断系列(3/6):性能瓶颈定位——缓冲池、I/O与临时文件
  • 【Linux系统】线程概念
  • 【R代码分析】甲烷排放绘制代码-参考论文
  • 【云原生】CentOS安装Kubernetes+Jenkins
  • RAW API 的 UDP 总结1
  • Android Glide常见问题解决方案:从图片加载到内存优化
  • [在实践中学习] 中间件理论和方法--Redis
  • 【JavaEE】了解volatile和wait、notify(三)
  • 08-引入AI编程插件(TRAE)编写单元测试并检查覆盖率
  • Cloudflare 推出 GenAI 安全工具,守护企业数据
  • 科普 | 5G支持的WWC架构是个啥(1)?
  • android 改机系列之-虚拟摄像头-替换相机预览画面
  • excel导出,多列合并表头