文章目录
Unsupervised Feature Learning via Non-Parametric Instance Discrimination
Abstract
在带有注释类别标签的数据上训练的神经网络分类器也可以捕获类别之间明显的视觉相似性,而无需被指示这样做。 我们研究这种观察是否可以扩展到传统的监督学习领域之外:我们是否可以通过仅要求特征对单个实例进行区分来学习一个好的特征表示来捕捉实例之间的明显相似性,而不是类之间的相似性? 我们将这种直觉表述为实例级的非参数分类问题,并使用噪声对比估计来解决大量实例类带来的计算挑战。
1. Introduction
深大多数成功的模型都是通过监督学习进行训练的,这需要为特定任务完全注释的大型数据集。然而,在某些情况下,获取注释数据通常非常昂贵甚至不可行。 近年来,无监督学习越来越受到社区的关注[5, 2]。
图 1:激发我们的无监督方法的监督学习结果。对于来自豹类的图像,从训练有素的神经网络分类器获得最高响应的类在视觉上都是相关的,例如美洲虎和猎豹。不是语义标记,而是数据本身的明显相似性使一些类比其他类更接近。我们的无监督方法将类监督发挥到了极致,并学习了一种区分个体实例的特征表示
我们的无监督学习新方法源于对目标检测的监督学习结果的一些观察。在 ImageNet 上,top-5 分类错误明显低于 top-1 错误 [18],并且图像的 softmax 输出中第二高响应类更有可能在视觉上相关。图 1 显示来自豹类的图像被判别为美洲豹类而不是书柜类[11] 的评分要高得多。这些观察表明,典型的判别式学习方法可以自动发现语义类别之间的明显相似性,而无需明确指导这样做。
换句话说,明显的相似性不是从语义注释中学习到的,而是从视觉数据本身中学习到的。
我们将类监督带到实例监督的极端,并提出问题:我们能否通过纯判别学习学习一个有意义的指标来反映实例之间的明显相似性?图像本身是独特的,每个图像都可能与同一语义类别中的其他图像有显著差异 [23]。 如果我们学会在没有任何语义类别概念的情况下区分各个实例,我们最终可能会得到一个捕获实例之间明显相似性的表示,就像类监督学习如何在类之间仍然保持明显的相似性一样。 这种无监督学习作为实例级判别的表述在技术上也很吸引人,因为它可以受益于有监督的判别学习的最新进展,例如在新的网络架构上。
然而,我们也面临着一个重大挑战,现在“类”的数量是整个训练集的大小。对于 ImageNet,它将是 120 万而不是 1,000 个类。简单地将 softmax 扩展到更多类变得不可行。我们通过使用噪声对比估计 (NCE) [9] 逼近完整的 softmax 分布来应对这一挑战,并采用近端正则化方法 [29] 来稳定学习过程。
为了评估无监督学习的有效性,过去的工作如 [2, 31] 依赖于线性分类器,例如支持向量机 (SVM),将学习到的特征连接到类别以在测试时进行分类。但是,尚不清楚为什么通过训练任务学习的特征对于未知测试任务可以线性分离。
我们主张使用非参数方法进行培训和测试。我们将实例级判别描述为一个度量学习问题,其中实例之间的距离(相似性)是以非参数的方式直接从特征计算出来的。也就是说,每个实例的特征存储在离散的内存库中,而不是网络中的权重。在测试时,我们基于学习到的度量使用k-近邻(KNN)进行分类。因此,我们的训练和测试是一致的,因为我们模型的学习和评估都涉及图像之间的相同度量空间。我们报告了实验结果,并与支持向量机和KNN的精度进行了比较。
我们的实验结果表明,在无监督学习环境下,我们的方法在图像分类上大大超过了最先进的分类方法,在ImageNet 1K[1]上达到了TOP-1正确率46.5%,在Places 205上达到了41.6%[49]。我们的方法也是显著的,通过更多的训练数据和更好的网络结构来持续提高测试性能。通过对学习特征的微调,我们进一步获得了在半监督学习和目标检测任务中具有竞争力的结果。最后,我们的非参数模型是高度紧凑的:每幅图像有128个特征,我们的方法对于一百万幅图像只需要600MB的存储空间,从而在运行时实现快速的最近邻检索。
2. Related Works
人们对没有人类提供标签的无监督学习越来越感兴趣。以往的工作主要分为两类:1) generative models 2) selfsupervised approaches.
Generative Models.Generative Models的主要目标是尽可能真实地重建数据的分布。经典的Generative Models包括Restricted Bolztmann Machines (RBMs)[12,39,21]和Autoencoders[40,20]。Generative Models产生的潜在特征也有助于物体识别。最近的方法,如generative adversarial networks[8,4]和variational auto-encoder[14],改善了生成质量和特征学习。
Self-supervised Learning. Self-supervised Learning利用数据的内部结构并制定predictive tasks来训练模型。具体地说,在给定其余方面的情况下,模型需要预测实例的省略方面或组件。为了学习图像的表示,任务可以是:预测上下文[2],计算对象[28],填充图像的缺失部分[31],从灰度图像中恢复颜色[47],甚至解决拼图游戏[27]。 对于视频,自我监督策略包括:通过跟踪[44,45]利用时间连续性,预测未来[42],或保持Egomotion的等价性[13,50,30]。最近的工作[3]试图将几个自我监督任务结合起来以获得更好的视觉表征。虽然自我监督学习可能会捕获实例的部分或方面之间的关系,但尚不清楚为什么特定的自我监督任务应该有助于语义识别,以及哪项任务将是最佳的。
Metric Learning. 每个特征表示
F
F
F在实例
x
x
x和
y
y
y之间诱导一个度量:
d
F
(
x
,
y
)
=
∣
∣
F
(
x
)
−
F
(
y
)
∣
∣
d_{F}(x,y)=||F(x)-F(y)||
dF(x,y)=∣∣F(x)−F(y)∣∣。因此,特征学习也可以被视为某种形式的Metric Learning。已经有关于Metric Learning的广泛研究[15,33]。Metric Learning的成功应用通常可以导致具有竞争力的性能,例如在人脸识别[35]和人员重新识别[46]方面。在这些任务中,测试时间的课程与培训时间的课程是不相交的。一旦网络被训练,人们只能从它的特征表示中推断,而不能从随后的线性分类器中推断。度量学习已被证明对少数机会学习是有效的[38,41,37]。人脸识别中Metric Learning的一个重要技术点是归一化[35,22,43],我们也在本工作中使用了这一点。请注意,这里提到的所有方法都需要在某些方面进行监督。我们的工作有很大的不同:它以一种无监督的方式学习特征,从而学习诱导的度量,没有任何人类注释。
Exemplar CNN. Exemplar CNN[5]似乎与我们的工作相似。根本的区别在于,它在训练和测试过程中都采用了参数范式,而我们的方法本质上是非参数的。我们在4.1节中对这一本质差异进行了实验研究。对于像ImageNet这样的大规模数据集,Example CNN在计算上要求很高。
3. Approach
我们的目标是学习一个没有监督的嵌入函数
v
=
f
θ
(
x
)
v=f_{\theta}(x)
v=fθ(x)。
f
θ
f_{\theta}
fθ是一个具有参数
θ
\theta
θ的深度神经网络,将图像
x
x
x映射到特征
v
v
v。这种嵌入将在图像空间上引入一个度量,对于实例
x
x
x和
y
y
y,如
d
θ
(
x
,
y
)
=
∥
f
θ
(
x
)
−
f
θ
(
y
)
∥
d_{\boldsymbol{\theta}}(x, y)=\left\|f_{\boldsymbol{\theta}}(x)-f_{\boldsymbol{\theta}}(y)\right\|
dθ(x,y)=∥fθ(x)−fθ(y)∥。良好的嵌入应该映射视觉上相似的图像彼此更接近。
我们提出的一种新的无监督特征学习方法是实例级判别。我们将每个图像实例视为其自己的不同类,并训练分类器来区分各个实例类(图2)。
图2:我们的无监督特征学习方法的pipeline。我们使用主干CNN将每幅图像编码为特征向量,并将其投影到128维空间并进行L2归一化。最优特征嵌入是通过实例级判别学习的,它试图将训练样本的特征最大限度地分散在128维单位球面上。
3.1. Non-Parametric Softmax Classifier
**Parametric Classifier. **我们使用Softmax准则来制定实例级分类目标。假设我们有
n
n
n个图像
x
1
,
⋯
,
x
n
x_{1}, \cdots ,x_{n}
x1,⋯,xn,
n
n
n个类及其特征
v
1
,
…
,
v
n
\mathbf{v}_{1}, \ldots, \mathbf{v}_{n}
v1,…,vn,其中
v
=
f
θ
(
x
)
\mathbf{v}=f_{\theta}(x)
v=fθ(x)。在传统的参数Softmax公式下,对于具有特征
v
=
f
θ
(
x
)
v=f_{\theta}(x)
v=fθ(x)的图像
x
x
x,其被识别为第
i
i
i个示例的概率为
P
(
i
∣
v
)
=
exp
(
w
i
T
v
)
∑
j
=
1
n
exp
(
w
j
T
v
)
P(i \mid \mathbf{v})=\frac{\exp \left(\mathbf{w}_{i}^{T} \mathbf{v}\right)}{\sum_{j=1}^{n} \exp \left(\mathbf{w}_{j}^{T} \mathbf{v}\right)}
P(i∣v)=∑j=1nexp(wjTv)exp(wiTv)(1)
其中
w
j
\mathbf{w}_{j}
wj是类别
j
j
j的权重向量,并且
w
j
T
v
\mathbf{w}_{j}^{T} \mathbf{v}
wjTv测量
v
\mathbf{v}
v与第
j
j
j个类别即实例的匹配程度。
Non-Parametric Classifier. 方程中的参数Softmax公式的问题。(1)是权重向量
w
w
w用作类原型,防止实例之间的显式比较。
我们提出了公式(1)的一个非参数变种。用
v
j
T
v
\mathbf{v}_{j}^{T} \mathbf{v}
vjTv代替
w
j
T
v
\mathbf{w}_{j}^{T} \mathbf{v}
wjTv,并且我们通过L2归一化层强制
∣
∣
v
∣
∣
=
1
||\mathbf{v}||=1
∣∣v∣∣=1。则概率
P
(
i
∣
v
)
P(i|\mathbf{v})
P(i∣v)变为:
P
(
i
∣
v
)
=
exp
(
v
i
T
v
/
τ
)
∑
j
=
1
n
exp
(
v
j
T
v
/
τ
)
P(i \mid \mathbf{v})=\frac{\exp \left(\mathbf{v}_{i}^{T} \mathbf{v} / \tau\right)}{\sum_{j=1}^{n} \exp \left(\mathbf{v}_{j}^{T} \mathbf{v} / \tau\right)}
P(i∣v)=∑j=1nexp(vjTv/τ)exp(viTv/τ)(2)
其中
τ
\tau
τ是控制分布的浓度水平的温度参数[11]。
τ
\tau
τ对于有监督的特征学习是重要的[43],也是调节单位球面上
v
v
v的浓度所必需的。
然后,学习目标是最大化联合概率
∏
i
=
1
n
P
θ
(
i
∣
f
θ
(
x
i
)
)
\prod_{i=1}^{n} P_{\boldsymbol{\theta}}\left(i \mid f_{\boldsymbol{\theta}}\left(x_{i}\right)\right)
∏i=1nPθ(i∣fθ(xi)),或者等价地最小化训练集上的负对数似然,如
J
(
θ
)
=
−
∑
i
=
1
n
log
P
(
i
∣
f
θ
(
x
i
)
)
J(\boldsymbol{\theta})=-\sum_{i=1}^{n} \log P\left(i \mid f_{\boldsymbol{\theta}}\left(x_{i}\right)\right)
J(θ)=−∑i=1nlogP(i∣fθ(xi))(3)
**Learning with A Memory Bank. **计算等式中的概率
P
(
i
∣
v
)
P(i \mid \mathbf{v})
P(i∣v)。 (2),
{
v
j
}
\left\{\mathbf{v}_{j}\right\}
{vj}为所有需要的图像。我们不是每次都详尽地计算这些表示,而是维护一个特征存储库
V
V
V来存储它们 [46]。在下文中,我们分别介绍记忆库的符号和从网络转发的特征。设
V
=
{
v
j
}
V=\left\{\mathbf{v}_{j}\right\}
V={vj} 为记忆库,
f
i
=
f
θ
(
x
i
)
\mathbf{f}_{i}=f_{\boldsymbol{\theta}}\left(x_{i}\right)
fi=fθ(xi) 为
x
i
x_{i}
xi的特征。在每次学习迭代期间,表示
f
i
\mathbf{f}_{i}
fi以及网络参数 θ 通过随机梯度下降进行优化。然后在相应的实例条目
f
i
→
v
i
\mathbf{f}_{i} \rightarrow \mathbf{v}_{i}
fi→vi处将
f
i
\mathbf{f}_{i}
fi更新为
V
V
V。我们将存储库
V
V
V中的所有表示初始化为单位随机向量。
Discussions. 从类权重
w
j
\mathbf{w}_{j}
wj向量直接到
v
j
\mathbf{v}_{j}
vj特征表示的概念变化是显著的。原始 softmax 公式中的权重向量
{
w
j
}
\left\{\mathbf{w}_{j}\right\}
{wj}仅对训练类有效。因此,它们不会泛化到新类,或者在我们的设置中,新实例。当我们摆脱这些权重向量时,我们的学习目标完全集中在特征表示及其诱导metric上,它们可以应用于空间中的任何地方以及测试时的任何新实例。
在计算上,我们的非参数公式消除了计算和存储
{
w
j
}
\left\{\mathbf{w}_{j}\right\}
{wj}梯度的需要,使其对于大数据应用程序更具可扩展性。
3.2. Noise-Contrastive Estimation
当类数 n 非常大时,计算公式(2)中的非参数 softmax 成本过高,例如在数百万的规模上。类似的问题在学习词嵌入 [25、24] 的文献中得到了很好的解决,其中词的数量也可以扩展到数百万。减少计算的流行技术包括分层 softmax [26]、噪声对比估计 (NCE) [9] 和负采样 [24]。我们使用 NCE [9] 来近似完整的 softmax。
我们使 NCE 适应我们的问题,以解决计算与训练集中所有实例的相似性的困难。其基本思想是将多类分类问题转化为一组二分类问题,其中二分类任务是区分数据样本和噪声样本。具体来说,在我们的模型下,记忆库中的特征表示
v
\mathbf{v}
v对应于第
i
i
i个示例的概率是,
P
(
i
∣
v
)
=
exp
(
v
T
f
i
/
τ
)
Z
i
P(i \mid \mathbf{v})=\frac{\exp \left(\mathbf{v}^{T} \mathbf{f}_{i} / \tau\right)}{Z_{i}}
P(i∣v)=Ziexp(vTfi/τ)(4)
Z
i
=
∑
j
=
1
n
exp
(
v
j
T
f
i
/
τ
)
Z_{i}=\sum_{j=1}^{n} \exp \left(\mathbf{v}_{j}^{T} \mathbf{f}_{i} / \tau\right)
Zi=∑j=1nexp(vjTfi/τ)(5)
其中
Z
i
Z_{i}
Zi是归一化常数。我们将噪声分布形式化为均匀分布:
P
n
=
1
/
n
P_{n}=1 / n
Pn=1/n。
根据之前的工作,我们假设噪声样本的频率是数据样本的
m
m
m倍。那么特征为
v
\mathbf{v}
v的样本
i
i
i来自数据分布(表示为
D
D
D=1)的后验概率为:
h
(
i
,
v
)
:
=
P
(
D
=
1
∣
i
,
v
)
=
P
(
i
∣
v
)
P
(
i
∣
v
)
+
m
P
n
(
i
)
h(i, \mathbf{v}):=P(D=1 \mid i, \mathbf{v})=\frac{P(i \mid \mathbf{v})}{P(i \mid \mathbf{v})+m P_{n}(i)}
h(i,v):=P(D=1∣i,v)=P(i∣v)+mPn(i)P(i∣v)(6)
这里,
P
d
P_{d}
Pd表示实际的数据分布。对于
P
d
P_{d}
Pd,
v
\mathbf{v}
v是对应于
x
i
x_{i}
xi的特征;而对于
P
n
P_{n}
Pn,
v
′
\mathbf{v}^{\prime}
v′是来自另一幅图像的特征,根据噪声分布
P
n
P_{n}
Pn随机采样。在我们的模型中,
v
\mathbf{v}
v和
v
′
\mathbf{v}^{\prime}
v′都是从非参数存储库
V
V
V中采样的。
J
N
C
E
(
θ
)
=
−
E
P
d
[
log
h
(
i
,
v
)
]
−
m
⋅
E
P
n
[
log
(
1
−
h
(
i
,
v
′
)
)
]
\begin{aligned} J_{N C E}(\boldsymbol{\theta}) & =-E_{P_{d}}[\log h(i, \mathbf{v})] -m \cdot E_{P_{n}}\left[\log \left(1-h\left(i, \mathbf{v}^{\prime}\right)\right)\right]\end{aligned}
JNCE(θ)=−EPd[logh(i,v)]−m⋅EPn[log(1−h(i,v′))](7)
根据公式(4)计算归一化常数
Z
i
Z_{i}
Zi价格昂贵。我们遵循 [25],将其视为常数并通过蒙特卡洛近似估计其值:
Z
≃
Z
i
≃
n
E
j
[
exp
(
v
j
T
f
i
/
τ
)
]
=
n
m
∑
k
=
1
m
exp
(
v
j
k
T
f
i
/
τ
)
Z \simeq Z_{i} \simeq n E_{j}\left[\exp \left(\mathbf{v}_{j}^{T} \mathbf{f}_{i} / \tau\right)\right]=\frac{n}{m} \sum_{k=1}^{m} \exp \left(\mathbf{v}_{j_{k}}^{T} \mathbf{f}_{i} / \tau\right)
Z≃Zi≃nEj[exp(vjTfi/τ)]=mn∑k=1mexp(vjkTfi/τ)(8)
其中
{
j
k
}
\left\{j_{k}\right\}
{jk}是索引的随机子集。根据经验,我们发现从初始批次得出的近似值足以在实践中很好地工作。
NCE 将每个样本的计算复杂度从
O
(
n
)
O(n)
O(n)降低到
O
(
1
)
O(1)
O(1)。通过如此大幅度的减少,我们的实验仍然产生了具有竞争力的性能。
3.3. Proximal Regularization
与每个类都有许多实例的典型分类设置不同,我们每个类只有一个实例。在每个训练时期,每个类只被访问一次。因此,学习过程从随机抽样波动中振荡很大。我们采用近端优化方法 [29] 并引入一个额外的术语来鼓励训练动态的平稳性。在当前迭代
t
t
t中,数据
x
i
x_{i}
xi的特征表示是从网络
v
i
(
t
)
=
f
θ
(
x
i
)
\mathbf{v}_{i}^{(t)}=f_{\boldsymbol{\theta}}\left(x_{i}\right)
vi(t)=fθ(xi)计算的。所有表示的记忆库都存储在前一次迭代
V
=
{
v
(
t
−
1
)
}
V=\left\{\mathbf{v}^{(t-1)}\right\}
V={v(t−1)}中。来自
P
d
P_{d}
Pd的正样本的损失函数为:
−
log
h
(
i
,
v
i
(
t
−
1
)
)
+
λ
∥
v
i
(
t
)
−
v
i
(
t
−
1
)
∥
2
2
-\log h\left(i, \mathbf{v}_{i}^{(t-1)}\right)+\lambda\left\|\mathbf{v}_{i}^{(t)}-\mathbf{v}_{i}^{(t-1)}\right\|_{2}^{2}
−logh(i,vi(t−1))+λ
vi(t)−vi(t−1)
22(9)
随着学习收敛,迭代之间的差异,即
v
i
(
t
)
−
v
i
(
t
−
1
)
\mathbf{v}_{i}^{(t)}-\mathbf{v}_{i}^{(t-1)}
vi(t)−vi(t−1),逐渐消失,增广损失减少到原来的损失。通过近端正则化,我们的最终目标变为:
J
N
C
E
(
θ
)
=
−
E
P
d
[
log
h
(
i
,
v
i
(
t
−
1
)
)
−
λ
∥
v
i
(
t
)
−
v
i
(
t
−
1
)
∥
2
2
]
−
m
⋅
E
P
n
[
log
(
1
−
h
(
i
,
v
′
(
t
−
1
)
)
)
]
\begin{aligned} J_{N C E}(\boldsymbol{\theta}) & =-E_{P_{d}}\left[\log h\left(i, \mathbf{v}_{i}^{(t-1)}\right)-\lambda\left\|\mathbf{v}_{i}^{(t)}-\mathbf{v}_{i}^{(t-1)}\right\|_{2}^{2}\right] -m \cdot E_{P_{n}}\left[\log \left(1-h\left(i, \mathbf{v}^{\prime(t-1)}\right)\right)\right] \end{aligned}
JNCE(θ)=−EPd[logh(i,vi(t−1))−λ
vi(t)−vi(t−1)
22]−m⋅EPn[log(1−h(i,v′(t−1)))](10)
图 3:近端正则化的效果。原始目标值波动很大,收敛速度很慢,而正则化目标具有更平滑的学习动态。
图 3 显示,根据经验,近端正则化有助于稳定训练、加速收敛并改进学习表示,而额外成本可忽略不计。
3.4. Weighted k-Nearest Neighbor Classifier
为了对测试图像 x ^ \hat{x} x^进行分类,我们首先计算其特征 f ^ = f θ ( x ^ ) \hat{\mathbf{f}}= f_{\boldsymbol{\theta}}(\hat{x}) f^=fθ(x^),然后使用余弦相似度 s i = cos ( v i , f ^ ) s_{i}=\cos \left(\mathbf{v}_{i}, \hat{\mathbf{f}}\right) si=cos(vi,f^)将其与记忆库中所有图像的嵌入进行比较。前 k 个最近的邻居,用 N k \mathcal{N}_{k} Nk表示,然后将用于通过加权投票进行预测。具体来说,类 c 将获得总权重 w c = ∑ i ∈ N k α i ⋅ 1 ( c i = c ) w_{c}=\sum_{i \in \mathcal{N}_{k}} \alpha_{i} \cdot 1\left(c_{i}=c\right) wc=∑i∈Nkαi⋅1(ci=c)。这里, α i \alpha_{i} αi是邻居 x i x_{i} xi的贡献权重,它取决于相似度,如 α i = exp ( s i / τ ) \alpha_{i}=\exp \left(s_{i} / \tau\right) αi=exp(si/τ)。我们在训练中选择 τ = 0.07 \tau=0.07 τ=0.07,并设置 k = 0.07 k=0.07 k=0.07。