本文主要研究无监督embedding问题,该问题要求在低维度embedding空间有效地度量样本之间的相似性。基于从分类有监督学习汇中观察到正集中而负分散的特性(即:同类别样本距离相近,从而会集中在一起;不同类别样本距离较大,从而会分散分布),我们提出利用有监督样本来近似这个特性,旨在学习数据扩展不变性和样本扩展性。为了达到这个目标,我们提出基于样例的softmax embedding方法,该方法直接优化softmax函数上的“真是”的实例。与现有所有方法相比,它的学习速度更快、准确率更高。提出的该方法对于具有余弦相似性的可见或不可见测试类别上都有很好的效果。即使没有预训练网络,它也能在细粒度分类问题上达到相当好的效果。
该论文解决的就是非监督的embedding学习问题,这就解决了人工标注的问题。无监督embedding学习主要挑战是在非标定样本中发现视觉相似性或者弱类别信息。
本文提出了,利用实例监督来近似之前提到的“正集中负分散”的特性,这样做的好处就是只依赖实例关系,而不依赖预先定好的类别关系,从而在未见过的类别上有很好的泛化能力。对于“正集中”,我们通过数据增强的方式(通过变换、放缩等手段)增加正样本;对于“负分散”,考虑未标注样本高度不均衡问题,将随机选取一批样本作为每个样例的负样本。由于样本数量远大于类别数量,所以我们引入孪生网路训练策略,将多分类问题转换成二分类问题,并用极大似然估计来优化。
这篇论文主要贡献,体现在以下三点:
(1)提出了一种新颖的基于特征实例的softmax embedding方法来学习数据增强的不变性和实例的扩展性。
(2)我们看到数据增强不变性和实例扩张性,对于实例非监督的embedding学习很重要。
(3)论文提出的方法,在图像分类和embedding学习的试验中,超越其他非监督学习方法,取得了最佳效果。
在过去的研究中,主要分为以下三种类型
我们的目标是在未标定的图片集 X = x 1 , x 2 , ⋅ ⋅ ⋅ , x n X = {x_1, x_2, · · · , x_n} X=x1,x2,⋅⋅⋅,xn上,学习一个特征embedding网络结构 f θ ( ⋅ ) f_θ(·) fθ(⋅)。 f θ ( ⋅ ) f_θ(·) fθ(⋅)劲输入的图片xi映射到一个低纬度的embedding特征 f θ ( x i ) ∈ R d f_θ(x_i) ∈ R^d fθ(xi)∈Rd,其中d为特征的维度。简单地,一个图片示例的特征 f θ ( x i ) f_θ(x_i) fθ(xi)记为 f i f_i fi,且我们假设所有特征都是L2归一化,即 ∣ ∣ f i ∣ ∣ 2 ||f_i||_2 ∣∣fi∣∣2 = 1.一个有效的特征embedding应该满足一下两点:1)视觉相似图片对应的特征embedding应该相近;2)不相似图片对饮过的特征embedding应该分散。
没有类别标签,我们使用实例监督来近似“正集中负分散”的特性。特别地,同一个实例使用不同数据增强方式得到的embedding特征应该是一致的,而不同实例应该分散。
类别权重的Softmax Embedding
典型的CNN将每张图片当做一个独立的类。依照常规的分类训练,会定义一个矩阵 W = [ w 1 , w 2 , ⋅ ⋅ ⋅ , w n ] T ∈ R n × d W = [w_1, w_2, · · · , w_n]^T ∈ R^{n×d} W=[w1,w2,⋅⋅⋅,wn]T∈Rn×d, 其中 w j w_j wj表示第j个实例对应的类别权重。经典的CNN会通过学习权重将不同图片变换的图片实例正确的分类到原始实例上。基于Softmax函数, x j x_j xj被识别为第i类实例的概率表达为式(1)。每一步网络都会将样本特征fi拉向其对应的权重 w i w_i wi,且将它从其他实例的类别权重 w k w_k wk推离。然而,类别权重明显的阻碍了特征的比较,这导致效率和可分辨性受到限制。
存储式的Softmax Embedding
为提高效率,Wu等人提出开辟一个存储库来存储之前计算的实例特征 f i f_i fi。存储在存储库中特征即为 v i v_i vi,这些特征用于接下来步骤中实例对应的分类其权重。因此,样本 x j x_j xj被判别为第i个实例的概率如式(2),其中τ是控制样本分布密度的参数。 v i T f j v^T_i f_j viTfj度量特征fj和第i个存储的特征 v i v_i vi之间的余弦相似度。对于实例 x i x_i xi,网络每一步都会将他的特征 f i f_i fi拉向它对应的存储向量 v i v_i vi,且将它从其他实例的存储向量推离。为了保证效率,实例 x i x_i xi对应的存储特征 v i v_i vi只有在输入为 x i x_i xi的迭代中才被更新。换句话说,存储特征 v i v_i vi在每个epoch中只会被更新一次。然而,网络会在每次迭代中更新一次。比较实时实力特征 f i f_i fi和历史存储特征 v i v_i vi会阻碍训练过程。因此,存储库方式仍然效率不高。
提高效率最直截了当的方法就是直接在特征上做优化,比如将fi替换权重{ w i w_i wi}或者存储{ v i v_i vi}。然而,这是不现实的,原因有二:1)考虑到将xi识别为自己的概率 P ( i ∣ x i ) P(i|x_i) P(i∣xi),由于 f i T f i = 1 f^T_i f_i=1 fiTfi=1,也即特征和“伪分类器权重”(特征自己)高度一致,优化网络并不能提供任何的“正集中”特性。2)计算式(2)的分母需要需要实时计算所有样本特征( f k f_k fk, k = 1, . . . , n),这是不现实的,尤其在大规模数据集上。
为解决以上问题,我们针对非监督Embedding学习提出一种Softmax Embedding的变体,它直接优化真实实例特征而非分类器权重或者存储库。为达到数据增强一致性和不同实例之间的分散性,我们打算考虑两种因素:1)原始图片及其增强图片,2)一小批随机选择的样本而非所有数据集数据。
对于每一步迭代,我们从数据集中随机抽样m个样本。为简化标记且不失一般性,{ x 1 , x 2 , ⋅ ⋅ ⋅ , x m x_1, x_2, · · · , x_m x1,x2,⋅⋅⋅,xm}表示选中的样本。 对于每一个实例,通过一个任意的图像增强操作T(·)来略微修改原图。增强样本 T ( x i ) T(x_i) T(xi)记为xˆi,且其Embedding特征fθ(xˆi)记为ˆfi。实例特征学习不再是一个多酚类问题,我们通过极大似然估计把它作为一个二分类问题解决。具体地,对于实例i,增强样例xˆi应该被分到实例i,而其他实例 x j ( j ≠ i ) x_j(j ≠ i) xj(j=i)不能被分到实例i。xˆi被识别为实例i的概率如式(3)。
另一方面, x j x_j xj被识别为实例i的公式如式(4)所示。相应地, x j x_j xj不被识别为实例i的概率为 1 − P ( i ∣ x j ) 1 - P(i|x_j ) 1−P(i∣xj)。
假设每个实例被识别为实例i是相互独立的,那么xˆi被识别为实例i和 x j x_j xj(j ≠ i)不被识别为实例i的联合概率如式(5)所示。
则负对数似然函数如式(6)所示。
我们通过极小化一个batch内的所有实例的负对数似然函数之和,来求解这个问题,如式(7)所示。
这小节给出了一个相似的原理分析,解释为什么极小化式(6)会达到增强不变性和实例分散的特性。极小化式(6)可以视作为最大化式(3)和最小化式(4)。
考虑式(3),它可以重写为式(8)。最大化式(3)需要最大化exp( f i T f^T_i fiT ˆ f i / τ ˆf_i/τ ˆfi/τ )以及最小化 exp( f k T f^T_k fkT ˆ f i / τ ˆf_i/τ ˆfi/τ ), k ≠ i。由于所有特征都是L2归一化的,最大化exp( f i T f^T_i fiT ˆ f i / τ ˆf_i/τ ˆfi/τ )需要扩大fi 和 ˆfi的内积(余弦相似度),这样数据增强的特征保持不变性另一方面,最小化exp( f k T f^T_k fkT ˆ f i / τ ˆf_i/τ ˆfi/τ)保证 f i f_i fi和其他的实例 { f k f_k fk}可分离。考虑同一个batch内的实例,这些实例被强制相互独立,这样就保证分散的特征。
注意到fTj fj内积是1,且τ一般为很小的值(实验中用的是0.1)。因此,exp( f i T f^T_i fiT ˆ f i / τ ˆf_i/τ ˆfi/τ )通常决定分母的大小。最小化式(4)意味着exp( f i T f^T_i fiT ˆ f i / τ ˆf_i/τ ˆfi/τ )极小化,这样就能将fj和fi分开。因此,进一步提升分散特性。
我们提出一个孪生网路来实现如图2所示的算法。每一次迭代,m个随机选出的图片实例喂到第一个分支,对应的增强样本喂到第二个分支。值得注意的是,数据增强也会在第一个分支使用,来丰富训练样本。这个实现上,每个样本都有一个随机增强的正样本和2N-2个负样本类计算式(7),其中N是batch的大小。该训练策略大大减少了计算消耗。同时,该训练策略也利用了一个mini-batch所有实例之间关系的优势。理论上,我们也可以通过对batch里每个实例考虑多个增强图片使用多分支的网络结构。
我们用两种不同的设置进行试验,来评估提出的方法。第一种设置是训练和测试共享相同的类别(即测试类别可见),这种方式被广泛应用在常见的无监督特征学习上。第二种设置是训练和测试不共享任何公共类别(即测试类别不可见),这种经常用于监督Embedding学习上。我们在训练集上不使用任何语法标签。后者设置比前者更具有挑战性,它鲜明地展示了在不可见类别上的特征学习的质量。综合实验表明,直接优化过实例特征可以显著提高性能和效率。
更多内容,欢迎关注“机器爱学习”公众号~