伪原创工具可靠不(半监督任务的关键在于充分利用无标签数据,预测结果不可靠 )
优采云 发布时间: 2022-04-06 04:21伪原创工具可靠不(半监督任务的关键在于充分利用无标签数据,预测结果不可靠
)
论文概述
论文题目:Semi-Supervised Semantic Segmentation Using Unreliable Pseudo-Labels
作者信息:商汤科技、上海交通大学、香港中文大学
录取信息:CVPR 2022
纸:
代码刚刚开源:
项目页面:
今天我们介绍一下我们在半监督语义分割领域的工作U2PL(Semi-Supervised Semantic SegmentationUsingUnreliablePseudo-Labels)。
半监督任务的关键是充分利用未标记的数据。基于“Every Pixel Matters”的概念,我们有效地利用了包括不可靠样本在内的所有未标记数据,大大提高了算法的准确性。目前U2PL已被CVPR 2022接受,相关代码已开源。欢迎在 GitHub 上提出任何问题。
自训:因样本筛选训练不足
半监督学习的核心问题是有效地使用未标记样本作为标记样本的补充,以提高模型性能。
大多数经典的自训练方法都遵循监督学习→伪标记→重新训练的基本流程,但是学生网络会从不正确的伪标签中学习到错误的信息,因此存在性能下降的问题。
常规做法是通过样本筛选只留下高置信度的预测结果,但这会在训练过程中排除大量未标记的数据,导致模型训练不足。此外,如果模型不能很好地预测某些难类,则很难为该类的未标记像素分配准确的伪标签,从而进入恶性循环。
我们认为“每个像素都很重要”,即使是低质量的伪标签也应该合理使用,过去的方法并没有充分发挥其价值。
动机:每个像素都很重要
具体来说,预测结果的可靠性可以通过熵(per-pixel entropy)来衡量。低熵意味着预测结果可靠,高熵意味着预测结果不可靠。我们通过图 2 观察一个具体的例子。图 2(a) 是带有熵图的未标记图像。具有高熵的不可靠像素很难用明确的伪标签进行标记,因此它们不参与重新训练过程,我们在图 2(b) 中用白色表示。
图 2. 说明不可靠的伪标签。
我们分别选择了可靠和不可靠的预测结果,并将它们的类别概率绘制为图 2(c) 和图 2(d) 中的直方图。黄叉表示的像素在person类上的预测概率接近1。对于这个预测模型,模型非常有信心,低熵的像素是一个典型的可靠预测。白色十字表示的像素在*敏*感*词*和人物类别中的预测概率都很高,并且值接近。该模型无法给出确定的预测结果,这符合我们对不可预测预测的定义。对于白叉表示的像素点,虽然模型不确定它属于哪个类别,但模型在汽车和火车这两个类别中显示出极低的预测概率,
因此,我们认为即使是不可靠的预测结果,虽然不能用明确的伪标签进行标注,但仍然可以作为某些类别的负样本参与模型的训练,这样所有未标注的样本都可以用于培训过程。扮演一个角色。
方法概述
图 3. 我们提出的 U2PL 方法的概述
在网络结构上,U2PL采用了自训练技术路线中的通用动量教师结构,由教师和学生两个结构相同的网络组成。教师以 EMA 的形式接受学生的参数更新。单个网络的具体组成主要参考ReCo(ICLR'22)[1],它包括三个部分:encoder h、decoder f、representation head g。
在损失函数优化方面,标注数据直接基于标准的交叉熵损失函数Ls进行优化。对于未标注的数据,老师先给出预测结果,然后根据像素级熵将预测结果分为可靠像素和不可靠像素两部分(分流过程如图2所示),最后基于分别是 Lu 和 Lc。.
以上三部分构成了U2PL的所有损失函数。如果对self-training比较熟悉,只需要关注比较学习的Lc部分,也就是经典的InfoNCE Loss[2],后面会详细讨论。
伪标签
本节主要讨论可靠预测结果在未标记样本中的利用,即损失函数的Lu部分
随着训练过程的推进,我们认为模型的性能在不断上升,不可靠预测结果的比例也在相应下降。因此,我们对可靠部分的定义在不同的训练时刻不断变化。这里我们简单地采用了线性变化策略,没有过多探索
需要注意的是,由于并非所有未标记的像素都会参与这部分计算,因此需要计算一个权重来调整这部分损失。
使用不可靠的伪标签
本节主要讨论在未标记样本中使用不可靠的预测结果,即损失函数的Lc部分。
U2PL 以对比学习为例,介绍如何使用不可靠的伪标签来提高模型的准确性。既然是比较学习,那么不可避免的问题就是讨论如何构造正负样本对。以下比较学习内容的实现细节参考了ReCo[1],所以如果想深入了解U2PL,建议先阅读这篇论文。
第一个是锚像素(查询),我们将在训练期间为出现在小批量中的每个类别采样一系列锚像素以进行比较学习。
然后构造锚像素的正样本,我们将为每个类别统计一个特征中心,同一类别的锚像素将共享共同的特征中心作为正样本。具体来说,我们首先从小批量分类中筛选出可用于计算特征中心的像素。对于标记样本和未标记样本,筛选标准相同,即样本属于真值标签类别或伪标签类别。on 的预测概率大于一个阈值,对选取的像素表示的集合 Ac 取一个平均值作为每个类别的特征中心 zc+。这里可以参考下面的公式
最后构建anchor pixel的负样本,同样需要分为标记样本和未标记样本两部分来讨论。对于有标签的样本,我们清楚地知道它们所属的类别,所以除了ground-truth标签之外的所有类别都可以作为像素的负样本类别;对于未标记的样本,由于伪标签可能存在错误,我们并不完全,但是为了确定标签的正确性,我们需要过滤掉预测概率最高的类别,并将像素视为其余类别的负样本。这部分对应论文中的公式13-16,但说实话,用公式来描述这个内容是比较晦涩的。
算法 1:使用不可靠的伪标签
由于数据集中的长尾问题,仅使用一批样本作为负样本进行比较学习可能非常有限。因此,我们使用 MemoryBank 来维护一个与类别相关的负样本库,其中存储了教师生成的片段。梯度特征,以先进先出的队列结构维护。
与现有替代品的比较
本文所有实验结果均基于 ResNet-101 + Deeplab v3+ 的网络结构。使用的数据集组成和评估方法请参考论文描述。
我们与 Classic VOC、Blender VOC 和 Cityscapes 数据集上的现有方法进行比较,我们在两个 PASCAL VOC 数据集上都实现了最佳精度。在 Cityscapes 数据集上,我们落后于 AEL(NeurIPS'21)[3],它专门用于解决类不平衡问题,因为我们没有很好地解决长尾问题,但是我们在 AEL 上叠加了 U2PL能够超越 AEL 的准确率也证明了 U2PL 的通用性,值得一提的是,U2PL 在标注数据较少的划分上有着出色的准确率。
消融研究
使用不可靠伪标签的有效性
我们验证了在多个数据集(如 PSACAL VOC 和 CItyscapes)的多个拆分上使用不可靠的伪标签的价值。
对比学习的替代方案
我们增加了一个通过二分类使用不可靠样本的对比实验,证明了使用低质量伪标签并不是仅仅通过对比学习来实现的。只要使用好低质量的样本,即使是二分类方法也能取得很好的准确率提升。.
附录
U2PL 和负学习的区别
这里需要强调我们的工作和消极学习之间的区别。负学习选择的负样本仍然是具有高置信度的可靠样本[4]。相比之下,我们主张充分利用不可靠的样本,而不是将它们过滤掉。.
例如预测结果 p = [0.3, 0.3, 0.2, 0.1, 0.1]T 将是负学习方法被丢弃,但它可以用作 U2PL 中多个不太可能的类的负样本。实验结果还发现,负学习方法的准确率不如U2PL。
U2PL 技术蓝图
技术蓝图贴在这里,让大家更好的了解论文的核心故事和实验设计
U2PL 技术蓝图参考
^ab[2104.04465] 使用区域对比引导语义分割
^[1807.03748] 使用对比预测编码的表示学习
^[2110.05474] 基于自适应均衡学习的半监督语义分割
^为伪标签辩护:用于半监督学习的不确定性感知伪标签选择框架
<p style="outline: 0px;color: rgba(0, 0, 0, 0.8);letter-spacing: 0.544px;white-space: normal;text-align: left;font-family: -apple-system-font, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;overflow-wrap: break-word !important;">ICCV和CVPR 2021论文和代码下载<br style="outline: 0px;overflow-wrap: break-word !important;">
<br style="outline: 0px;overflow-wrap: break-word !important;">
后台回复:CVPR2021,即可下载CVPR 2021论文和代码开源的论文合集<br style="outline: 0px;overflow-wrap: break-word !important;">
后台回复:ICCV2021,即可下载ICCV 2021论文和代码开源的论文合集<br style="outline: 0px;overflow-wrap: break-word !important;">
后台回复:Transformer综述,即可下载最新的3篇Transformer综述PDF
<br style="outline: 0px;overflow-wrap: break-word !important;">
CVer-图像分割交流群成立
<br style="outline: 0px;overflow-wrap: break-word !important;">
扫码添加CVer助手,可申请加入CVer-图像分割 微信交流群,<strong data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-color="rgb(230, 230, 230)" data-darkmode-original-color="rgb(0, 0, 0)" style="outline: 0px;overflow-wrap: break-word;">方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。</strong>
<br style="outline: 0px;overflow-wrap: break-word !important;">
一定要备注:研究方向+地点+学校/公司+昵称(如<strong data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-color="rgb(255, 76, 0)" data-darkmode-original-color="rgb(255, 76, 0)" style="outline: 0px;overflow-wrap: break-word;letter-spacing: 0.54px;"><strong data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-color="rgb(255, 76, 0)" data-darkmode-original-color="rgb(255, 76, 0)" style="outline: 0px;overflow-wrap: break-word;letter-spacing: 0.54px;">图像分割</strong></strong>+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
<br style="outline: 0px;overflow-wrap: break-word !important;">
▲长按加小助手微信,进交流群
<br style="outline: 0px;">
CVer学术交流群(知识星球)来了!想要了解最新最快最好的CV/DL/ML论文速递、优质开源项目、学习教程和实战训练等资料,欢迎扫描下方二维码,加入CVer学术交流群,已汇集数千人!
<br style="outline: 0px;overflow-wrap: break-word !important;">
▲扫码进群
▲点击上方卡片,关注CVer公众号<br style="outline: 0px;">
<strong data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-color="rgb(21, 189, 255)" data-style="box-sizing: border-box; color: rgb(0, 122, 170); font-size: 20px; letter-spacing: 0.54px; max-width: 100%; overflow-wrap: break-word;" data-darkmode-original-color="rgb(0, 122, 170)" style="outline: 0px;letter-spacing: 0.54px;text-align: right;overflow-wrap: break-word;"><strong data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-color="rgb(21, 189, 255)" data-style="box-sizing: border-box; color: rgb(0, 122, 170); font-size: 20px; letter-spacing: 0.54px; max-width: 100%; overflow-wrap: break-word;" data-darkmode-original-color="rgb(0, 122, 170)" style="outline: 0px;letter-spacing: 0.54px;text-align: right;overflow-wrap: break-word;"><strong data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-color="rgb(21, 189, 255)" data-style="box-sizing: border-box; color: rgb(0, 122, 170); font-size: 20px; letter-spacing: 0.54px; max-width: 100%; overflow-wrap: break-word;" data-darkmode-original-color="rgb(0, 122, 170)" style="outline: 0px;letter-spacing: 0.54px;text-align: right;overflow-wrap: break-word;"><strong data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-color="rgb(21, 189, 255)" data-style="box-sizing: border-box; color: rgb(0, 122, 170); font-size: 20px; letter-spacing: 0.54px; max-width: 100%; overflow-wrap: break-word;" data-darkmode-original-color="rgb(0, 122, 170)" style="outline: 0px;letter-spacing: 0.54px;text-align: right;overflow-wrap: break-word;"><strong data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-color="rgb(21, 189, 255)" data-style="box-sizing: border-box; color: rgb(0, 122, 170); font-size: 20px; letter-spacing: 0.54px; max-width: 100%; overflow-wrap: break-word;" data-darkmode-original-color="rgb(0, 122, 170)" style="outline: 0px;letter-spacing: 0.54px;text-align: right;overflow-wrap: break-word;"><strong data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-color="rgb(21, 189, 255)" data-style="box-sizing: border-box; color: rgb(0, 122, 170); font-size: 20px; letter-spacing: 0.54px; max-width: 100%; overflow-wrap: break-word;" data-darkmode-original-color="rgb(0, 122, 170)" style="outline: 0px;text-align: right;letter-spacing: 0.54px;overflow-wrap: break-word;"><strong data-darkmode-bgcolor="rgb(36, 36, 36)" data-darkmode-color="rgb(21, 189, 255)" data-style="box-sizing: border-box; color: rgb(0, 122, 170); font-size: 20px; letter-spacing: 0.54px; max-width: 100%; overflow-wrap: break-word;" data-darkmode-original-color="rgb(0, 122, 170)" style="outline: 0px;letter-spacing: 0.54px;text-align: right;overflow-wrap: break-word;">整理不易,请点赞和在看<strong style="outline: 0px;font-variant-numeric: normal;font-variant-east-asian: normal;letter-spacing: 0.544px;font-size: 20px;font-family: 微软雅黑;color: rgb(0, 122, 170);overflow-wrap: break-word !important;"></strong></strong></strong></strong></strong></strong></strong></strong></p>