论文阅读笔记:Augmentation Matters: A Simple-yet-Effective Approach to Semi-supervised Semantic Segmentatio
论文:https://arxiv.org/pdf/2212.04976v1.pdf
代码:https://github.com/ZhenZHAO/AugSeg
1 背景
在本文中,作者打破了最近SOTAs结合日益复杂的技术的趋势,提出了AugSeg,一种简单但有效的方法,主要关注数据扰动,以提高SSS的性能。虽然有监督学习中的各种自动数据增强和cutmix相关变换在之前的SSS方法中已经被利用,但作者认为应该对这些增强进行精确调整,以更好地适应半监督训练。
一方面,现有的SSS方法中被广泛采用的自动增强方法旨在从预定义的有限离散空间中搜索最优增强策略,然而半监督学习中的数据扰动是在没有特定的最优目标或预先定义的离散搜索空间的情况下,在相同的输入上产生预测分歧,因此作者简化了现有的randomAug,设计了一个高度随机的基于强度的增广,他从连续空间中选择不同强度增广的随机数和随机失真强度。
另一方面,在SSS中,不同未标注样本之间的随机CopyPaste可以产生有效的数据扰动,但他们在相应的伪标注之间的混合不可避免的会引入确认偏差,特别是模型预测置信度较低的实例上。考虑到未标注数据的利用效率,作者简单地以随机和自适应的方式将标注样本与这些可信度较低的未标注样本混合,即自适应地注入标注信息以稳定未标注数据上的训练。
尽管结构简单,AugSeg在流行的SSS benchmark上获得了新的SOTA性能。如图1所示,AugSeg在很大程度上一致的由于当前的SOTA方法。
2 创新点
-
本文打破了SSS研究中整合日益复杂的设计的趋势,提出了一个标准的、简单的双分支师生方法AugSeg,可以获得更好的性能。
-
本文简单地修改了广泛采用的数据增强方法,通过自适应地注入标记信息和以高度随机设计简化标准的RandomAug,以更好地适应SSS任务。
3 方法
如图2,AugSeg是标准的师生框架,通过最小化相应的监督损失
L
x
L_x
Lx 和无监督一致性损失
L
u
L_u
Lu,在标注数据
(
x
,
y
)
(x,y)
(x,y) 和无标注数据
u
u
u 上同时训练学生模型
θ
s
\theta_s
θs,通过
θ
s
\theta_s
θs 的ema更新教师网络
θ
t
\theta_t
θt,并在伪标注的数据上生成伪标签
p
t
p_t
pt。AugSeg的核心是对输入的无标签样本应用各种增强技术,包括弱几何增强
A
g
A_g
Ag,基于强度的随机增强
A
r
A_r
Ar 和自适应标签输入增强
A
a
A_a
Aa。红线和蓝线分别表示有标注数据和无标注数据的向前路径,虚线表示停止梯度。
遵循当前半监督学习中站主导位置的一致性正则化方法,作者在有标签和无标签数据上同时训练分割模型。如图2所示,采用一个简单的半监督框架,该框架由一个学生模型和一个教师模型组成,分别用
θ
s
\theta_s
θs 和
θ
t
\theta_t
θt 来进行参数化。教师模型能够在未标记数据上生成用于训练的伪标注,并通过学生权重的指数移动平均来逐步更新,即:
其中
α
\alpha
α 是常见的动量参数,默认设置为0.999。另一方面,在每次迭代中,给定一批有标签样本
B
x
=
{
(
x
i
,
y
i
)
}
i
=
1
∣
B
x
∣
B_x=\{(x_i,y_i)\}_{i=1}^{|B_x|}
Bx={(xi,yi)}i=1∣Bx∣ 和一批无标签样本
B
u
=
{
u
i
}
i
=
1
∣
B
u
∣
B_u=\{u_i\}_{i=1}^{|B_u|}
Bu={ui}i=1∣Bu∣。通过最小化有监督损失
L
x
L_x
Lx 和无监督一致性损失
L
u
L_u
Lu 来训练学生模型。 因此学生模型的总训练损失为:
其中
λ
u
\lambda_u
λu 是调节无监督损失权重的标量超参数。与大多数SSS方法类似,本来采用标准的逐像素交叉熵损失直接在标记数据上训练。
其中
y
^
i
=
f
(
A
g
(
x
i
)
;
θ
s
)
\hat{y}_i=f(A_g(x_i);\theta_s)
y^i=f(Ag(xi);θs) ,表示学生模型在第
i
i
i 个弱增强标记实例上的分割结果。
j
j
j 表示
H
×
W
H×W
H×W 分辨率的图像或分割掩码上的第
j
j
j 个像素。弱集合增强
A
g
A_g
Ag 如表2所示,包括标准的缩放,裁剪和翻转操作。
对于半监督学习的关键——未标注数据的利用,主要依靠数据扰动
T
(
⋅
)
T(·)
T(⋅) 来产生预测偏差。首先,分别得到学生模型在增广
T
u
i
T_{u_i}
Tui 的分割结果
p
i
s
p_i^s
pis 和 教师模型在增广
A
g
(
u
i
)
A_g(u_i)
Ag(ui) 上的分割预测
p
i
t
p_i^t
pit:
然后,将未标记损失公式化为:
AugSeg的核心增广 T T T 由两种级联的增广组成,即 T ( ⋅ ) = A r ( A a ( ⋅ ) ) T(·) = A_r(A_a(·)) T(⋅)=Ar(Aa(⋅)) 。
4 模块
4.1 基于随机强度的增广
RandomAug与半监督学习不同的目的限制了它的有效性。具体而言,AutoAug的目的是针对特定的下游任务搜索最优的增广策略,而RandomAug进一步简化了这种在有限离散空间中搜索的过程。
AutoAug出自CVPR2019的论文《AutoAugment: Learning Augmentation Policies from Data》
概述:作者将寻找最佳增强策略的问题表述为一个离散搜索问题。首先作者构建了一个搜索空间,其中包含16中数据增广,每种数据增广的强度离散成10个区间,将增广概率离散成11个区间。搜索结束时,要找到最好的5个策略,每个策略中包含了5个子策略,每个子策略中包含两个增广,每个增广包含了强度和概率。
RandomAug出自CVPR2020论文《RandAugment: Practical automated data augmentation with a reduced search space》
概述:直接把搜索空间压缩到只需要2个超参数,第1个超参数N表示这一轮需要多少个增广,第二个超参数M则表示增广所使用的强度。如论文中贴出的代码片段:
然而半监督学习中的数据扰动的目的是同一图像生成两个不同的视图,而不需要特定的最优增强策略。此外,过度扭曲的增广会损害数据分布并降低SSS的性能。为此作者设计另一个基于强度的随机增广,记为
A
r
A_r
Ar,对未标记数据进行扰动,如图3所示。
设计的随机增广遵循以下准则:
(1) 在连续空间中均匀地采样增广的强度,而不是有限的离散空间。
(2)从增广池中采样一个以 k k k 的最大值为界的随机数,而不是使用一个固定的数字。
(3)在增广池中删除像Invert操作一样的强变换(可能是因为Invert不需要采样增广强度)。本文的增广池由RandomAug中的池直接简化而来,如表2所示。
基于随机强度的增强可以享受更好的多样性,更适合半监督。
4.2 基于自适应CutMix的增广
与CutMix相关的增广或copy-paste增广在监督和半监督分割任务重显示了其有效性。最近研究在SSS中应用了小批量内无标签样本之间的随机复制粘贴,并相应的修改了它们的伪标签。但高度依赖伪标签不可避免地会产生确认偏差,特别是对于一些难以训练的样本或是在训练的早期阶段。因此,作者倾向于利用更有信息的有标签样本来扩充无标签样本,从而充分利用有标签信息。然而,将有信心的有标签信息与无标签信息混合自然是有益的,但可能会导致无标签数据的利用不足。这仅仅是因为在训练过程汇总,未标注数据的某些区域被标记样本的区域覆盖。为此,如图4所示,作者设计了一个自使用的标签注入增强,可以充分利用标注数据,以特定实例和置信度的方式来辅助对未标注样本的训练。具体来说,首先估计一个置信度
ρ
i
\rho_i
ρi,表示当前模型对第
i
i
i 个未标记样本预测的置信度。
其中,使用归一化的预测熵对
u
i
u_i
ui 加权平均来估计得分。显然,得分
ρ
\rho
ρ 是实例特定的,并且与当前模型的泛化概率相关,然后使用
ρ
i
\rho_i
ρi 作为触发概率,随机应用标注和未标注实例之间的混合来获得混合候选集
{
u
n
′
}
\{u_n'\}
{un′} :
M
n
M_n
Mn 表示随机生成的区域掩码。
置信度低于 ρ i \rho_i ρi 的未标记样本,更有可能被置信度较高的标记样本所混合辅助。如图4,第一列和第三列因为置信度低于 ρ i \rho_i ρi 所以在第二行中采用了CutMix。
然后应用未标记示例
{
u
m
}
\{u_m\}
{um} 和置换混合候选集
u
n
′
u_n'
un′ 完成最终混合。
M m M_m Mm 表示随机生成的区域掩码。
5 效果
5.1 与SOTA方法对比
5.2 消融实验
各模块的消融实验。
半监督损失的权重实验,最终设置
λ
u
=
1.0
\lambda_u=1.0
λu=1.0。
选择增广时随机生成选择数的最大上限的消融实验,最终选择
k
=
3
k=3
k=3,即每次最多只选择3个增广。
测试本文简化和自适应设计对基于强度和基于剪切混合的增强效果的影响。
固定数目增广还是随机生成数据选择增广的消融实验,发现固定下来以后,选择的增广变多,效果反而变差。
分割效果展示,目前在复杂样本上的效果较差。