论文阅读笔记:Unsupervised Feature Learning via Non-Parametric Instance Discrimination

Unsupervised Feature Learning via Non-Parametric Instance Discrimination

论文下载地址

github代码地址

Summary

这篇论文主要论述如何通过非参数的实例判别进行无监督的特征学习。本文使用CNN backbone,原始图片输入网络后输出一个经过L2标准化的128维向量,通过Non-Parametric Softmax Classifier计算每个单一样本被识别正确的概率,同时使用Memory Bank存储特征向量,通过NCE来近似估计softmax的数值减少计算复杂度,最后使用Proximal Regularization稳定训练过程的波动性。主要的思想是将每个单一实例都看作不同的“类”

Problem Statement

  • 许多有监督模型的成功依赖于其背后大量的带标签数据,而获取带标签的数据往往是需要巨大的成本或者难以实现的。
  • 能否仅通过特征表示表示来区分不同的实例。
  • 能否通过纯粹的判别学习(discriminative learning)反应样例间的相似性。
  • 将不同个例都看作不同的“类”,那么这个数量将是巨大的,如何进行处理。

Research Object

在无监督的情况下学习从实例本身到其特征表示的映射v=fθ(x)v=f_\theta(x)

Methods

论文阅读笔记:Unsupervised Feature Learning via Non-Parametric Instance Discrimination

1.Non-Parametric Softmax Classifier

  • Parametric Classifier

    在传统的参数softmax函数中,对图片xx及特征$ v=f_\theta (x) ,被识别为第i$的样例的概率为:

    P(iv)=exp(wiTv)j=1nexp(wjTv) P(i|v)=\frac {exp(w_i^{T}v)} {\sum_{j=1}^n exp(w_j^Tv)}

  • Non-Parametric Classifier

    使用viTvv_i^{T}v来替换wiTvw_i^{T}vτ\tau用来控制concentration level of distribution。

    P(iv)=exp(viTv/τ)j=1nexp(vjTv/τ) P(i|v)=\frac {exp(v_i^{T}v/\tau)} {\sum_{j=1}^n exp(v_j^Tv/\tau)}

  • Mermory Bank

    使用Mermory Bank V 来存储上述的{vjv_j},在每个iteration对应修改其值$f_i\to v_i $,在初始化时通过单位随机向量对V进行初始化。

2.Noise-Contrastive Estimation

当n特别大时计算Non-Parametric Softmax的开销过大,于是使用NCE来估算。其基本思想是将多分类问题转化为一组二分类问题,其中二分类任务是区分数据样本和噪声样本。

Memory bank中特征表示 vv对应于第ii个样例的概率为:

P(iv)=exp(vTfi/τ)Zi P(i|v)=\frac {exp(v^{T}f_i/\tau)} {Z_i}

Zi=j=1nexp(vTfi/τ)Z_i=\sum_{j=1}^n exp(v^{T}f_i/\tau)

我们设定噪声分布为一个均匀分布:Pn=1/nP_n=1/n,假设噪声样本的频率是数据样本的mm倍,那么样本ii及特征vv来自数据分布(D=1D=1)的后验概率为:

h(i,v):=P(D=1i,v)=P(iv)P(iv)+mPn(i)h(i,v):=P(D=1|i,v)=\frac {P(i|v)}{P(i|v)+mP_n(i)}

训练目标为最小化 JNCE(θ)=EPd[logh(i,v)]mEPn[log(1h(i,v)]J_{NCE}(\theta)=-E_{P_d}[\log h(i,v)]-m \cdot E_{P_n}[\log(1-h(i,v^\prime)]

其中,PdP_d指代真实数据分布,对PdP_d而言vvxix_i的特征;vv^\prime是来自另一幅图片,从噪声分布PnP_n中随机采样得到。注:vvvv^\prime都是从Memory Bank中采样得到的。

ZiZ_i的计算量过大,我们把它当作常量,由蒙特卡罗算法估计得到:

ZZinEj[exp(vjTfi/τ)]=nmk=1mexp(vjkTfi/τ)Z\approx Z_i\approx nE_j[exp(v_j^Tf_i/\tau)]=\frac {n}{m}\sum_{k=1}^m exp(v_{j_k}^Tf_i/\tau)

{jkj_k}是indices的随机子集,NCE将每个样例的计算复杂度从O(n)O(n)减少到O(1)O(1)

3.Proximal Regularization

由于每个“类”只有1个样例,在每个epoch中,一个“类”只被访问一次,训练的过程比较不稳定。

假设在tt次iteration时,vi(t)=fθ(xi)v_i^{(t)}=f_\theta(x_i),memory bank的值V=v(t1)V={v^{(t-1)}},对于PdP_d的loss function定义为:logh(i,vi(t1))+λvi(t)vi(t1)22-\log h(i,v_i^{(t-1)})+\lambda||v_i^{(t)}-v_i^{(t-1)}||^2_2

总的loss function为:JNCE(θ)=EPd[logh(i,v)λvi(t)vi(t1)22]mEPn[log(1h(i,v)]J_{NCE}(\theta)=-E_{P_d}[\log h(i,v)-\lambda||v_i^{(t)}-v_i^{(t-1)}||^2_2]-m \cdot E_{P_n}[\log(1-h(i,v^\prime)]

使用后效果如图:
论文阅读笔记:Unsupervised Feature Learning via Non-Parametric Instance Discrimination

4.Weighted k-Nearest Neighbor Classifier

进行测试,根据余弦相似度与Memory Bank进行对比,选出最相近的k个样例,根据样例的类别与自身的实际类别判定是否查询正确。

Experiment

1.在CIFAR-10上比较Parametric Softmax和Non-Parametric Softmax

论文阅读笔记:Unsupervised Feature Learning via Non-Parametric Instance Discrimination

2.在ImageNet上比较本方法和其它无监督学习方法

论文阅读笔记:Unsupervised Feature Learning via Non-Parametric Instance Discrimination
图上conv1~conv5下面对应的Accuracy是对应网络相应层输出的特征输入线性SVM得到的结果,kNN下面的Accuracy是最后128D维特征向量输入kNN得到的结果。可以看出来,当层数加深时,我们使用的方法的Accurary一直增加,而别的无监督学习方式则是呈下降的趋势,说明我们的方法对更深层的网络具有良好的适应性。
论文阅读笔记:Unsupervised Feature Learning via Non-Parametric Instance Discrimination
上图是直接使用之前训练好的模型进行测试的结果。
论文阅读笔记:Unsupervised Feature Learning via Non-Parametric Instance Discrimination
特征向量维数对top-1 accuracy的影响。
论文阅读笔记:Unsupervised Feature Learning via Non-Parametric Instance Discrimination
训练集大小对accuracy的影响。

3.半监督学习任务上的应用论文阅读笔记:Unsupervised Feature Learning via Non-Parametric Instance Discrimination

4.目标检测任务上的应用

论文阅读笔记:Unsupervised Feature Learning via Non-Parametric Instance Discrimination

Notes

如果有补充,再来更新。