【开集识别论文解读】C2AE: Class Conditioned Auto-Encoder for Open-set Recognition——CVPR2019

 原文链接:https://arxiv.org/abs/1904.01198

开集识别的一般场景设定如图1所示, 我们已知四类图片,但是在测试过程中,可能会出现不属于任何一类的样本,而开集识别的目标就是识别出未知类,并且对已知类正确分类。

【开集识别论文解读】C2AE: Class Conditioned Auto-Encoder for Open-set Recognition——CVPR2019_第1张图片

本文将开集识别任务分成了两个子任务:闭集分类和开集识别。训练过程如图2中的1)和2)所示。

1. Closed-set Training (Stage 1)

给定一个batch\{X_1,X_2,...,X_N\}\in K的图像,以及相应的标签\{y_1,y_2,...,y_N\}。编码器(F)和分类器(C)分别具有参数\Theta _f\Theta _c,使用以下交叉熵损失进行训练,

L_c(\{\Theta_f,\Theta_c\})=-\frac{1}{N}\sum_{i=1}^{N}\sum_{j=1}^{k}\mathbb{I}_{y_i}(j)log[p_{y_i}(j)]

其中,\mathbb{I}_{y_i}是标签y_i的指示函数(即,一个热编码向量),p_{y_i}=C(F(X_i))是预测概率得分向量。p_{y_i}(j)是第i个样本来自第j类的概率。

2. Open-set Training (Stage 2) 

在开集训练中有两个主要部分,条件解码器训练,然后是重建误差的EVT建模。在此阶段,编码器和分类器权重是固定的,在优化过程中不会改变。

2.1 Conditional Decoder Training

这里使用了视觉推断的一种方法:FiLM,FiLM层在神经网络的中间层特征上进行一个简单的feature-wise仿射变换(仿射变换:简单理解就是线性变化+平移,再通俗点就是A\vec{x}+\vec{b})。

对于输入特征z和包含条件信息的向量l_j,可给出如下:,

【开集识别论文解读】C2AE: Class Conditioned Auto-Encoder for Open-set Recognition——CVPR2019_第2张图片

 这里,H_\gammaH_\beta是具有参数\Theta_\gamma\Theta_\beta的神经网络。张量z_{l_j}\gamma_j\beta_j具有相同的形状。l_j用于条件处理,在本文中称为标签条件向量。此外,符号z_{l_j}用于描述以标签条件向量l_j为条件的潜在向量z,即z|l_j

当以与输入的类标识相匹配的标签条件向量(这里称为匹配条件向量(l_m))为条件时,期望解码器(带有参数\Theta_GG)能够完美地重构原始输入,可以被视为传统的自动编码器。然而,在这里,当以标签条件向量为条件时,G被额外训练以不好地重构原始输入,标签条件向量与输入的类标识不匹配,这里称为非匹配条件向量(l_{nm})。

现在,对于来自一个batch的给定输入X_il_m=l_{y_i^m}l_{nm}=l_{y_j^{nm}},对于从\{1,2,...,k\}中采样的任何随机y_i^{nm}\neq y_i,作为其相应的匹配和非匹配条件向量,第二阶段的前馈路径可以通过以下等式总结,

【开集识别论文解读】C2AE: Class Conditioned Auto-Encoder for Open-set Recognition——CVPR2019_第3张图片

按照上述前馈路径,第二阶段训练解码器(参数为\Theta_GG)和调节层(参数为\Theta_\gamma\Theta_\beta)的损失函数如下所示,

【开集识别论文解读】C2AE: Class Conditioned Auto-Encoder for Open-set Recognition——CVPR2019_第4张图片

这里,损失函数L_r^m对应于使用匹配条件向量\tilde{X}_i^m生成的输出应该是X_i的完美重构的约束。损失函数L_r^{nm}对应于使用非匹配条件向量\tilde{X}_i^{nm}生成的输出应具有差重构的约束。为了强制执行后一个条件,从训练数据中对另一个批次\{X_1^{nm},X_2^{nm},...,X_N^{nm}\}进行采样,使得新批次没有与匹配条件向量一致的类标识。这种调节策略在某种程度上模拟了openset行为。这里,网络经过专门训练,当输入图像的类标识与条件向量不匹配时,会产生较差的重建。因此,当遇到未知的类测试样本时,理想情况下,任何条件向量都不会与输入图像类标识匹配。这将导致所有条件向量的重建效果不佳。然而,当遇到已知的测试样本时,由于其中一个条件向量将匹配输入图像类标识,它将为该特定条件向量生成完美的重建。因此,非匹配损失训练有助于网络更好地适应开放集设置。

2.1 EVT Modeling

极值理论。极值理论常用于许多视觉识别系统,是建模训练后分数的有效工具。它已被用于许多应用,如金融、铁路轨道检测等,以及开集识别。本文遵循极值定理的Picklands-Balkema-deHaan公式。它考虑了以超过高阈值的随机变量为条件的建模概率。对于具有累积分布函数(CDF)F_W(w)的给定随机变量W,任何W超过阈值u的条件CDF定义为:

F_U(w)=P(w-u\leq w|w>u)=\frac{F_W(u+w)-F_W(u)}{1-F_W(u)}

现在,给定I.I.D.样本,\{W_i,...,W_n\},极值定理指出,对于大类基础分布,并且给定足够大的uF_U可以很好地近似于广义帕累托分布(GPD), 

参数估计。当将任何分布的尾部建模为GPD时,主要的挑战是找到尾部参数u以获得条件CDF。可以使用平均超额函数(MEF)来找到u的估计值,即E[W- u | W>u]。研究表明,对于GPD,MEF与u呈线性关系。许多研究人员利用GPD的这一特性来估计u的值。这里,采用了文献[29]中针对GPD介绍的查找u的算法,但做了一些小的修改。在得到u的估计值后,从极值定理,我们知道集合\{w\in W | W>u\}遵循GPD分布,GPD的其余参数,即ζ和μ可以使用最大似然估计技术轻松估计。

2.3 Threshold Calculation

在前几节所述的训练过程之后,匹配和非匹配重建错误集从训练集\{X_1,X_2,...,X_{N_{train}}\}\in K以及它们相应的匹配和非匹配标签,\{y_1^m,y_2^m,...,y_{N_{train}}^m\}\{y_1^{nm},y_2^{nm},...,y_{N_{train}}^{nm}\}创建。设r_i^m为输入X_i的匹配重建误差,r_i^{nm}为非匹配重建误差,则匹配和非匹配误差集可计算为,

【开集识别论文解读】C2AE: Class Conditioned Auto-Encoder for Open-set Recognition——CVPR2019_第5张图片

 S_m(匹配重建误差集)和S_{nm}(非匹配重建误差集)的典型直方图如图3a所示。请注意,这些集合中的元素仅根据训练期间观察到的内容进行计算(即,不使用任何未知样本)。图3b显示出了在从已知类集(K)和未知类集(U)的测试样本进行推断期间观察到的重建误差的归一化直方图。比较图3中的这些图,可以观察到,对于来自已知集(K)和未知集(U)的测试样本,在训练期间计算的S_mS_{nm}的分布为推断期间观察到的误差分布提供了良好的近似。这一观察结果还验证了非匹配训练模拟了一个开放集测试场景,其中输入与任何类标签都不匹配。这就需要使用S_mS_{nm}来找到开放集识别的操作阈值,从而对任何已知/未知的测试样本做出决策。

【开集识别论文解读】C2AE: Class Conditioned Auto-Encoder for Open-set Recognition——CVPR2019_第6张图片

现在,可以假设最佳操作阈值(\tau^*) 位于S_m\cap S_{nm}区域。在这里,S_mS_{nm}的潜在分布尚不清楚。但是,可以使用GDP来建模S_m(右尾)和S_{nm}(左尾)的尾部,分别用G_mG_{nm}表示。GPD仅定义用于建模最大值,但可以在拟合S_{nm}G_{nm}左尾之前,执行S_{nm}'=-S_{nm}。假设观测未知样本的先验概率为pu,则误差概率可表示为阈值τ的函数,

【开集识别论文解读】C2AE: Class Conditioned Auto-Encoder for Open-set Recognition——CVPR2019_第7张图片

 3. Open-set Testing by k-inference (Stage 3)

 这部分介绍了该方法的开集测试算法,测试程序在下面的算法1中描述。该测试策略涉及使用所有可能的条件向量调节解码器k次,以获得k个重建误差。因此,它被称为k-推理算法。

【开集识别论文解读】C2AE: Class Conditioned Auto-Encoder for Open-set Recognition——CVPR2019_第8张图片

你可能感兴趣的:(开集识别,深度学习,图像处理)