美文网首页
Adversarial Learning for Semi-Su

Adversarial Learning for Semi-Su

作者: 一技破万法 | 来源:发表于2020-08-15 19:04 被阅读0次

    作者提出了一种使用对抗网络的半监督语义分割方法。 虽然大多数现有的鉴别器都经过训练,可以在图像级别将输入图像分类为真实图像还是伪图像,但是作者以完全卷积的方式设计了一个鉴别器,以便在考虑空间分辨率的情况下将预测的概率图与地面真实分割分布区分开。 作者表明,通过将对抗性损失与所提出模型的标准交叉熵损失相结合,所提出的鉴别器可用于提高语义分割的准确性。 此外,全卷积鉴别器通过在未标记图像的预测结果中发现值得信赖的区域来实现半监督学习,从而提供其他监督信号。 与利用弱标记图像的现有方法相比,作者的方法利用未标记图像来增强分割模型。 在PASCAL VOC 2012和Cityscapes数据集上的实验结果证明了该算法的有效性。

    思路介绍

    作者采用对抗性学习方案。将分割网络看作是GAN框架中的生成器,跟经过训练从噪声矢量生成图像的典型生成器不同,作者的分割网络在给定输入图像的情况下输出语义标签的概率图。在此基础上,作者将分割网络的输出在空间上尽可能接近GT标签图。
    作者提出了一种全卷积鉴别器,该鉴别器学会了将GT标签图与 分割预测的概率图分开。结合交叉熵损失,作者的方法使用对抗损失,该损失鼓励分割网络在高阶结构生成接近于GT标签图的预测概率图。
    在作者的工作中,结合了两个半监督的损失条件来利用未标记的数据。首先,作者利用鉴别器网络生成的置信度图作为监督信号,以自学的方式指导交叉熵的损失。置信度图指示预测分布的哪些区域接近GT标签分布,以便分割网络可以通过掩码的交叉熵损失来信任和训练这些预测。其次,作者将监督损失应用于监督设置中采用的未标记数据,这鼓励模型预测接近GT分布的未标记数据的分割输出。

    思路总结

    1. 使用对抗框架,该框架可以提高语义分割的准确性。而在推理过程中无需额外的计算负担。
    2. 提出一个半监督框架,并表明通过添加没有任何注释的图像可以进一步提高分割精度。
    3. 通过未标记图像的鉴别器网络响应来发现可信赖的区域,从而促进半监督学习,该区域有助于分割的训练过程。

    算法概述

    通过使用损失L_D训练的全卷积鉴别器网络,作者在训练过程中使用三个损失函数优化了分割网络:基于分割GT的交叉熵损失L_{ce},欺骗鉴别器的对抗损失L_{adv},基于置信度图(鉴别器的输出)的半监督损失L_{semi}

    半监督语义分割系统
    该图所展示的模型包括两部分:分割和鉴别网络。前者可以是语义分割设计的任何网络,给定输入为H×W×3的图像,输出尺寸为H×W×C的类别概率图,其中C是语义类别的数量。鉴别器网络基于FCN,该网络以分类概率图为输入,来自分割网络或者是GT标签图,然后输出H×W×1的空间概率图。鉴别器输出图的每个像素p表示是从GT标签图(p=1)还是分割网络(p=0)采样的。与采用固定大小的输入图像并输出单个概率值的典型GAN鉴别器相反,作者将鉴别器转化为可以接受任意大小输入的全卷积网络。
    在训练过程中,作者在半监督设置下使用带标签的图像和未带标签的图像。当使用标记数据时,分割网络由带有GT标签图的标准熵损失和带有鉴别器网络的对抗损失监督。但是作者仅仅使用标签数据来训练鉴别器网络。对于未标记的数据,使用半监督方法训练分割网络。再从分割网络获得未标记图像的初始分割预测之后,通过鉴别器网络来计算置信度图。反过来,使用自学的方法将此置信度图视为监督信号,以训练带有掩码交叉熵损失的分割网络。该置信度图指示预测的分割区域的质量,以便分割网络在训练期间可以信任。

    对抗网络的半监督训练

    本段主要介绍针对分割以及鉴别器模块的拟议网络架构和学习方案。

    分割网络

    作者采用Deeplab-v2框架,将在ImageNet数据集和MSCOCO数据集上预先训练的ResNet-101模型作为分割基准网络。但是,作者不使用Deeplab-v2中提出的多尺度融合,因为它会占用单个GPU上的所有内存,并且使训练鉴别器变得不切实际。类似于最近的语义分割方法,作者删除了最后一个分类层,并将最后两个卷积层的跨度从2变为1,从而使输出特征图的分辨率有效地等于输入图片的1/8大小。为了扩大接受场,作者在conv4和conv5层分别应用步幅为2和4的扩张卷积。另外在最后一层使用ASPP方法,最后将上采样层与softmax输出一起应用,以匹配输入图像的大小。

    鉴别器网络

    对于鉴别器网络,作者使用类似于DCGANs的结构,它是由5个4*4的卷积层和步幅为2的{64,128,256,512,1}通道组成。每一个卷积层的后面都有一个参数为0.2的Leaky-ReLU层,除了最后一层。为了将模型转化为全卷积网络,在最后一层添加了上采样层,以将输出重新缩放为输入图的大小。

    损失函数

    给定大小为H×W×3的输入图像X_n,作者用S(`)表示分割网络并通过大小H×W×C的S(X_n)表示预测概率图,其中C为类别编号。作者用D(·)表示全卷积鉴别符,它采用大小为H×W×C的概率图并输出大小为H×W×1的置信度图。 在提出的方法中,有两个可能的输入到鉴别器网络:分割预测S(X_n)或单热编码的GT向量(Y_n)

    鉴别器网络

    为了训练鉴别器网络,我们使用以下两个类别将空间交叉熵损失L_D最小化:
    L_D = \sum_{h,w}(1-y_n)log(1-D(S(X_n))^{(h,w)})+y_nlog(D(Y_n)^{(h,w)}) \tag 1
    其中y_n=0是从指样本是由分割网络中提取的,y_=1是指样本从GT标签中提取的。另外,D(S(X_n))^{(h,w)}是X在位置(h,w)的置信度图,并且D(Y_n))^{(h,w)}的定义与此类似。为了将带有离散标签的GT标签图转换为C通道概率图,作者将GT标签图使用单热编码方案,其中如果像素X_n^{(h,w)}属于C类别,则Y_n^{(h,w,c)}取值为1,否则为0。
    鉴别器网络的一个潜在性的问题就是:它可以通过检测one-hot概率来区别出概率图是否来自GT图。但是在训练阶段不会出现此问题,因为作者使用全卷积方法来预测空间置信度,这增加了学习判别器的难度。

    分割网络

    作者通过最小化多任务损失函数来训练分割网络:
    L_{seg} = L_{ce}+\lambda_{adv}L_{adv}+\lambda_{semi}L_{semi} \tag 2
    其中L_{ce},L_{adv}L_{semi}分别表示空间多类交叉熵损失,对抗损失和半监督损失。在(2)中\lambda_{adv}\lambda_{semi}是两个权重,用于最小化多任务损失函数。
    作者首先考虑使用带注释的数据的场景。给定一个输入图像X_n,它的ong-hot编码GTY_n和预测结果S(X_n),则交叉熵可以通过以下公式获得:
    L_{ce} = -\sum_{h,w}\sum_{c\in C}Y_n^{(h,w,c)}log(S(X_n)^{(h,w,c)}) \tag 3
    给定完全卷积的鉴别器网络D(·),作者通过损失L_adv使用对抗学习过程:
    L_{adv} = -\sum_{h,w}log(D(S(X_n))^{(h,w)}) \tag 4
    有了这种损失,就能最大程度地从GT分布生成预测结果的概率来训练分割网络,以欺骗鉴别器。

    使用无标签数据进行训练

    在这项工作中,作者考虑在半监督环境下进行对抗训练。 对于未标记的数据,由于没有GT注释,因此作者不应用L_{ce}。 对抗损失L_{adv}仍然适用,因为它仅需要区分网络。 但是,我们发现选择比用于标记数据的L_{adv}小的\lambda_{adv}#至关重要。 这是因为对抗性损失可能会过度校正预测以适合GT分布,而没有交叉熵损失。 此外,作者在自学式学习框架内将训练有素的识别符与未标记的数据一起使用。 主要思想是训练有素的鉴别器可以生成置信度图D(S(X_n)),该置信度图可用于从GT分布中推断出足够接近的区域。 然后,我们将此置信度图与阈值二值化以突出显示可信赖的区域。 此外,如果c ^* = argmax_cS(X_n)^{(h,w,c)},则用\hat{Y}_n^{(h,w,c^*)}= 1逐元素设置单热编码GT\hat{Y}_n: 产生的半监督损失定义为:
    L_{semi}=-\sum_{h,w}\sum_{c\in C}I(D(S(X_n))^{(h,w)} > T_{semi}*\hat{Y}_n^{(h,w,c)}log(S(X_n)^{(h,w,c)}) \tag 5
    其中I(·)是指标函数,而T_{semi}是控制自学过程敏感性的阈值。 在训练过程中,作者将自学目标\hat{Y}_ n和指标函数的值都视为常数,因此,(5)可以简单地视为掩码的空间交叉熵损失。 在实践中,作者发现该策略在T_{semi}的范围为0.1到0.3的情况下均有效。

    实验结果

    实施细节

    作者在训练分割网络时,使用随机梯度下降(SGD)优化方法,其中动量为0.9,权重衰减为10^{-4}。初始学习率为2.5*10^{-4},并且随着多项式衰减以0.9次幂减小。对于鉴别器,采用Adam优化器,学习率为10^{-4},衰减策略跟分割网络相同。对于上述损失函数的超参数,训练带有标记和未标记的数据时,\lambda_{adv}分别设置为0.01和0.001,\lambda_{semi}设置为0.1,T_{semi}设置为0.2。
    对于半监督训练,作者在应用上述的训练方案的同时,随机交织带标签和未带标签的数据。 请注意,为防止模型受到最初的噪声屏蔽和预测的困扰,作者在使用标记数据训练了5000次迭代后开始进行半监督学习。 作者将同时更新分割网络和鉴别网络。 在每次迭代中,仅使用包含GT数据的批次来训练鉴别器。 从数据集中随机抽取部分标记和未标记的数据时,作者使用不同的随机种子对几个实验结果取平均值,以确保评估的鲁棒性。

    消融实验

    作者在下表中以PASCAL VOC数据集介绍了作者提出的系统的消融研究。 首先,作者研究使用完全卷积鉴别器(FCD)的效果。 为了构造不是全卷积的鉴别器,作者将鉴别器的最后一个卷积层替换为输出一个全连接层,该层可以像典型GAN模型中那样输出单个神经元。 如果不使用FCD,则所有数据和八分之一数据的性能分别下降1.0%和0.9%。 这表明使用FCD对对抗学习至关重要。 其次,作者采用了半监督学习方法,而不会造成对抗性损失。 结果表明,对标记数据进行对抗训练对我们的半监督方案很重要。 如果分段网络不试图愚弄鉴别器,则鉴别器生成的置信度图将毫无意义,从而提供较弱的监管信号。


    消融实验

    超参数调节

    所提出的算法由三个超参数控制:\lambda_{adv}\lambda_{semi}用于平衡(2)中的多任务学习,T_{semi}用于控制(5)中所述的半监督学习中的敏感性。 下表显示了在半监督设置下使用PASCAL VOC数据集对超参数的敏感性分析。

    Data Amount \lambda_{adv} \lambda_{semi} T_{semi} Mean IU
    Full 0 0 N/A 73.6
    Full 0.005 0 N/A 74.0
    Full 0.01 0 N/A 74.9
    Full 0.02 0 N/A 74.6
    Full 0.04 0 N/A 74.1
    Full 0.05 0 N/A 73.0
    1/8 0.01 0 N/A 67.6
    1/8 0.01 0.05 0.2 68.4
    1/8 0.01 0.1 0.2 69.5
    1/8 0.01 0.2 0.2 69.1
    1/8 0.01 0.1 0 67.2
    1/8 0.01 0.1 0.1 68.8
    1/8 0.01 0.1 0.2 69.5
    1/8 0.01 0.1 0.3 69.2
    1/8 0.01 0.1 1.0 67.6

    下图显示了来自预测概率图的样本置信度图:


    置信度图

    两个数据集的训练参数:

    Parameter Cityscaps PASCAL VOC
    Trained iterations 40,000 20,000
    Learning rate 2.5e-4 2.5e-4
    Learning rate (D) 1e-4 1e-4
    Polynomial decay 0.9 0.9
    Momentum 0.9 0.9
    Optimizer SGD SGD
    Optimizer (D) Adam Adam
    Nesterov True True
    Batch size 2 10
    Weight decay 0.0001 0.0001
    Crop size 512x1024 321x321
    Random scale No Yes

    Cityscapes数据集训练数据与模型的定性比较:


    定性比较

    了解更多请关注作者微信公众号:

    一技破万法

    相关文章

      网友评论

          本文标题:Adversarial Learning for Semi-Su

          本文链接:https://www.haomeiwen.com/subject/vvtgdktx.html