Bootstrap

【开集识别论文解读】Classification-Reconstruction Learning for Open-Set Recognition——CVPR2019

论文原文:https://arxiv.org/pdf/1812.04246v2.pdf

本文提出的CROSR利用潜在表示进行重建,并在不损害已知类别分类精度的情况下实现鲁棒未知检测。

开集分类器可以检测不属于任何训练类的样本。通常,它们将概率分布拟合到某些特征空间中的训练样本中,并将异常值检测为未知值。对于表示样本的特征,几乎所有现有的深度开集分类器都依赖于通过完全监督学习获得的特征,如图1(a)所示。然而,它们是为了强调已知类别的区别特征,对于表示未知或将未知与已知分开并不一定有用。

本文提出了一种新的开集分类框架,称为开集识别的分类重建学习(CROSR)。如图1(b)所示,开集分类器由两部分组成:闭集分类器和未知检测器,这两部分都利用了深度分类重建网络。当已知类分类器利用监督学习的预测y时,未知检测器使用重建的潜在表示z和y。这允许未知检测器利用可能对已知类没有区别的更广泛的特征池。CROSR可以利用重构表示z来补充预测y中丢失的信息。 

本文的contribution:

  • 首次讨论了基于深度重构的表征学习在开集识别中的有用性;所有其他深开集分类器都是基于已知类中的区分表示学习。
  • 开发了一个新的开集识别框架CROSR,该框架基于DHRNET,并使用它们联合执行已知分类和未知检测。
  • 在五个标准图像和文本数据集中进行了开集分类实验,结果表明,对于大多数已知数据和离群值的组合,本文的方法优于现有的深度开集分类器。

Softmax:

给定一个已知类集合K = \{C_1,C_2, ..., C_N \}和输入x,

y = f (x)

p(C_i|x, x \in K)=Softmax_i(y)= \frac{exp(x_i) }{\sum_j^N exp(x_j) }

Openmax:

Openmax_i (x)=Softmax_i ( \hat{y})

\begin{equation} \hat{y}_i =\left\{ \begin{aligned} &y_iw_i (i \le N ), \\ &\sum_ {i=1}^N y_i(1-w_i)(i = N +1). \end{aligned} \right. \end{equation}

p(x \in C_i)=1-R_\alpha(i) \cdot WeibullCDF(d(x,C_i); \rho_i) =1-R_\alpha(i)exp ( - (\frac{d(x,C_i))}{\eta_i} )^{m_i} )\rho_i=(m_i, \eta_i)是从C_i类的训练数据得出的分布参数.R_\alpha(i)=max ( 0, \frac{\alpha-rank(i)}{\alpha})是一种启发式校准器.

 CROSR:Classification-reconstruction learning for open-set recognition

CROSR的设计基于对Openmax公式的观察:AVs不一定是建模类归属p(x\in C_i)的最佳表示。尽管监督网络中的AV经过优化以给出正确的p(C_i|x),但它们没有对x的信息进行编码,并且不足以测试x本身是否在C_i中。本文通过利用重建潜在表示来缓解这个问题,它对x进行了更多编码。

1. Open-set classification with latent representations

对Openmax进行了扩展:

(y,z)=f(x)

p(C_i|x,x\in K)=Softmax_i(y)

\tilde{x}=g(z)

这里引入了g,一种仅用于训练的解码器网络,通过重建使潜在表示z有意义。

将网络的预测y和潜在表示z联合用于类归属建模,CROSR将y和z的联合分布视为每个类的超球体:

d(x,C_i)=|[y,z]-\mu_i|_2

其中,[y,z]表示y和z向量的串联,\mu_i表示它们在类C_i内的平均值。

2.Deep Hierarchical Reconstruction Nets

DHRNet从分类网络的中间层的每个阶段提取潜在表示。具体而言,它从多级特征x_1,x_2,...x_L中提取了一系列潜在表示z_1,z_2,z_3,...,z_L,这些潜在表示称为瓶颈。这种体系结构的优点是,它可以检测隐藏在输入数据中但在推理链中间消失的外围因素。由于我们无法假定外围因素最明显的阶段,我们通过简单地将z_l从层中串联起来来构造未知检测器z的输入向量。这里,z_1,z_2,...,z_L可以被解释为分解因子来生成x。打个比方,使用分解的潜在表示进行未知检测类似于大修机械产品,将x分解为z_1,z_2,...,z_L等零件,调查零件是否存在异常,并将其重新组装到\bar{x}中。

图2比较了现有架构和DHRNet。大多数闭集分类器和Openmax依赖于监督分类模型(a),该模型除了y之外,没有用于异常值检测的有用因子,因为x_l通常具有已知类别分类的高维性。使用自动编码器(b)是一种引入潜在表示进行重建的简单方法,但在使用它们进行开集分类时存在一个问题。深度自动编码器逐渐降低中间层x_1,x_2,x_3,...的维数用于有效的信息压缩,这不适合大规模闭集分类,因为它需要所有层中相当多的神经元来学习丰富的特征层次。LadderNet(c)可以被视为自动编码器的变体,因为它执行重建。然而,区别在于横向连接,x_l的一部分通过横向连接流向重建流,而无需进一步压缩。它们的作用是进行详细的抽象分解;也就是说,LadderNet在主流中编码抽象信息,在横向路径中编码细节。虽然这对于开放集分类更为可取,因为未知的外围因素可能在细节和摘要中,但LadderNet本身并不提供紧凑的潜在变量。DHRNet(d)通过压缩表示z_1,z_2,...,z_L中的横向流,进一步增强了分解信息对未知检测的有效性。

具体来说,第l层的DHRNet被表示为:

x_{l+1}=f_l(x)

z_l=h_l(x_l)

\bar{x}_l=g_l(\bar{x}_{l+1}+\bar{h}_l(z_l))

这里,f_l表示网络中的特征变换块,h_l表示非线性降维操作,包括ReLU和卷积层,而\bar{h}_l表示重新投影到x_l的原始维数。h_l\bar{h}_ll对类似于自动编码器。g_l是自顶向下信息\bar{x}_{l+1}和横向信息\bar{h}_l(z_l)的组合。图3说明了这些操作,操作堆栈给出了图2(d)所示的整个网络。

;