本篇博客将分享一篇来自2020ICLR的小样本学习文章。在噪声标签处理方向目前比较流行的主要方法有三个:

  1. 基于度量学习的小样本学习方法,主要是对支持集和询问集样本特征的度量进行建模,使得通过设计的度量方法可以对支持集和询问集各样本间的相似度量化,从而得到询问集样本的预测类别;

2)基于元学习的小样本学习方法,通过元学习的相关算法使得模型具有适应多任务场景的能力,而小样本学习便可以看做是一种经典的多任务学习的问题;

3)基于数据增强的小样本学习方法,从起初使用迁移学习方法增强特征表达到最近使用半监督学习方法引入未标记样本,都属于广义上的数据增强方法。而本博客要介绍的便是使用半监督学习方法实现的小样本图像分类。

1 主要贡献

从机器学习中的偶发参数入手,研究其在对有标签支持集数据和无标签补充数据的回归模型中的作用。使用该偶发参数反应模型对样本的拟合程度,并根据该拟合程度不断选择可信度高的伪标签数据增强回归模型的泛化能力和拟合能力,进而提高模型在小样本分类中的表现。

2 整体思路

实例可信度推断模型聚焦如何将未标记样本更好加入到分类器的训练当中。其整体的模型见图1,首先支持集中有标签标记样本集和未标记补充样本集经过一个预训练好的特征提取网络,得到各自对应的特征映射。其中含标签的样本将直接参与线性分类器的训练以得到一个初步的分类器模型,然后使用该分类器模型对未标记样本进行标签预测,得到对应的假标签 (pseudo label)。这些含假标签的样本集将通过实例可信度推断模块进行筛选,得到置信度高的假标签样本数据,并将这些数据添加到线性分类器模型的训练数据中再次训练分类器。以此不断往复训练、推断、添加,最终训练出一个拟合能力和泛化能力更强的线性分类器。最后,便可利用该训练好的分类器对询问集数据进行标签预测,完成小样本分类任务。

论文解读--Instance Credibility Inference for few shot learning

图1. ICI整体模型示意图

3 关键技术

3.1 实例可信度推断

对于一个线性回归问题而已,有一个概念叫做偶发参数,即除了模型自身的结构化参数外,还存在着与数据相关的并发参数。那么,对于本文使用的线性分类器而言,其模型如下:
yi=xiβ+γi+ϵi y_{i}=\mathbf{x}_{i}^{\top} \beta+\gamma_{i}+\epsilon_{i}
这里的γi\gamma_{i}便是该线性分类器中与训练样本相关的偶发参数,那么我们把这个偶发参数也当成需要优化的参数,继续分类器接下来的训练。优化问题如下:
(β^,γ^)=argminβ,γYXβγF2+λR(γ) (\hat{\beta}, \hat{\gamma})=\underset{\beta, \gamma}{\arg \min }\|Y-X \beta-\gamma\|_{F}^{2}+\lambda R(\gamma)
其中R(γ)R(\gamma)为对该偶发参数的正则项。令右边为函数LL,即有
L(β,γ)=YXβγF2+λR(γ) L(\beta, \gamma)=\|Y-X \beta-\gamma\|_{F}^{2}+\lambda R(\gamma)
将其对β\beta求偏导,并令Lβ=0\frac{\partial L}{\partial \beta}=0,解得理论上的β^\hat{\beta},文章中得到的β^\hat{\beta}解如下:
β^=(XX)X(Yγ) \hat{\beta}=\left(X^{\top} X\right)^{\dagger} X^{\top}(Y-\gamma)

这里给出大致的推导过程,可选择性略过。
首先对β\beta求偏导,其与式中正则项无关,仅考虑第一项的话便可以写成:
L=tr[(YXβγ)T(YXβγ)]=tr[(YTβTXTγT)(YXβγ)]=2tr(YTXβ)+tr(βTXTXβ)+2tr(βTXTγ)+tr(Y,X,γ) \begin{aligned} L &=\operatorname{tr}\left[(Y-X \beta-\gamma)^{\mathrm{T}}(Y-X \beta-\gamma)\right] \\ &=\operatorname{tr}\left[\left(Y^{\mathrm{T}}-\beta^{\mathrm{T}} X^{\mathrm{T}}-\gamma^{\mathrm{T}}\right)(Y-X \beta-\gamma)\right] \\ &=-2\operatorname{tr}\left(Y^{\mathrm{T}} X \beta\right)+\operatorname{tr}\left(\beta^{\mathrm{T}} X^{\mathrm{T}} X \beta\right) +2\operatorname{tr}\left(\beta^{\mathrm{T}} X^{\mathrm{T}} \gamma\right)+\operatorname{tr}(Y, X, \gamma) \end{aligned}
其中tr(Y,X,γ)\operatorname{tr}(Y, X, \gamma)是与β\beta无关的迹,在求导之前需要明确F范数的求导法则。
法则1:
tr(ATX)X=tr(XTA)X=A \frac{\partial \operatorname{tr}\left(A^{T} X\right)}{\partial X}=\frac{\partial \operatorname{tr}\left(X^{T} A\right)}{\partial X}=A
法则2:
tr(XTAX)X=AX+ATX \frac{\partial \operatorname{tr}\left(X^{T} A X\right)}{\partial X}=AX+A^{T} X
那么根据这两个法则,将LL各项分别对β\beta求导:
tr(YTXβ)β=XTY,tr(βTXTXβ)β=2XTXβ,tr(βTXTγ)β=XTγ \frac{\partial \operatorname{tr}\left(Y^{T} X\beta\right)}{\partial \beta}=X^{T}Y,\frac{\partial \operatorname{tr}\left(\beta^{T} X^{T}X\beta\right)}{\partial \beta}=2X^{T}X\beta,\frac{\partial \operatorname{tr}\left(\beta^{T} X^{T}\gamma\right)}{\partial \beta}=X^{T}\gamma
代入则有
XTγXTY+XTXβ=0 X^{T}\gamma-X^{T}Y+X^{T}X\beta=0
便可以解得β^\hat{\beta}
β^=(XX)X(Yγ) \hat{\beta}=\left(X^{\top} X\right)^{\dagger} X^{\top}(Y-\gamma)

从这个β^\hat{\beta}的解我们可以看出,线性分类器模型自身结构化参数除了受训练数据的影响外还将依赖于偶发参数γ\gamma。将理论上的这个最优β\beta解代入原优化问题中:
argminγRn×NYH(Yγ)γF2+λR(γ) \underset{\gamma \in \mathbb{R}^{n \times N}}{\arg \min }\|Y-H(Y-\gamma)-\gamma\|_{F}^{2}+\lambda R(\gamma)
其中H=X(XX)XH=X\left(X^{\top} X\right)^{\dagger} X^{\top},同时令X~=(IH)\tilde{X}=(I-H)Y~=X~Y\tilde{Y}=\tilde{X} Y,那么上式变形为:
argminγRn×NY~X~γF2+λR(γ) \underset{\gamma \in \mathbb{R}^{n \times N}}{\arg \min }\|\tilde{Y}-\tilde{X} \gamma\|_{F}^{2}+\lambda R(\gamma)
而这个优化问题便变成了以γ\gamma为回归系数的线性回归问题。观察这个新的优化问题可以发现,γ\gamma的解是依赖于λ\lambda的取值的。同时,对于λR(γ)\lambda R(\gamma)这个正则项而言,λ\lambda增大则γ\gamma减小。那么可以想象,对于小样本问题中的伪标签数据,增大λ\lambda势必会使得这些伪标签数据对应的γ\gamma依次趋向于0,而越早达到0的伪标签数据越容易被分类器拟合。那么按照各伪标签数据对应γ\gamma趋于0的先后顺序对伪标签数据进行排序,便选取靠前的数据子集作为下次线性分类器训练的补充数据。
然后根据原测试集数据和选择出的伪标签补充数据重新训练线性分类器(相比之前分类器性能更强),在根据训练得到的分类器对剩下的伪标签数据再次进行γ\gamma线性回归以筛选出下一批补充数据。依次规则迭代训练,直到全部伪标签被接受并参与分类器的训练。

4 模型实现

下面将结合代码,对该模型的具体实现进行有选择性的介绍。这里只针对mini-imagenet数据集的训练和测试进行解读,其实小样本数据集类似。对于mini-imagenet数据集而言,其共计100个类别,其中64个类别为训练集,16个类别为验证集,20个类别为测试集。

4.1 Feature Extractor

首先是特征提取网络部分,作者使用Resnet-12基础网络(未使用自带的预训练模型)在训练集中进行64分类的训练,并使用验证集作为参考。训练的总epoch为120次,选取在验证集中精度最高的那个epoch得到的模型作为接下来预训练的特征提取网络。

4.2 Linear Classifier

选取Resnet-12最后全连接层的前一层输出当成样本特征嵌入向量(dim=512),这些特征将参与线性分类器的训练。所选取的线性分类器是sklearn包的SVM和LogisticRegression,选用SVM时kernel需要选择linear,同时需要注意的是在使用LogisticRegression时其正则化强度参数C应尽量选大(值越大正则化越弱)。其原因是理论中并没有把这个正则项考虑进去(训练数据少),因此实际训练中这个参数不能对线性分类器有较大比重的影响(不去掉大概是因为训练数据会多轮次的加入训练,加入适当的正则约束可一定程度减少过拟合)。

4.3 偶发参数γ\gamma解路径

对于以γ\gamma为回归系数的带正则项线性回归问题的解路径,使用了sklearn包的ElasticNet.path方法。每次通过该方法求得解路径后,选取前5个γ\gamma达到0的伪噪声数据添加到支持集中参与线性分类器的训练。

5 实验部分

具体的实验结果及分析这里不做介绍了,文章已经给出的很详细了。从实验部分可以看出,作者对该模型研究的很透彻,且实验也很充足。

6 个人看法

  • 首先这样一篇非常值得阅读的文章,可以说是从一个较为新颖的角度审视基于半监督学习的小样本学习方法中未标记样本假标签置信度评估问题。
  • 该方法有许多值得探讨的地方,比如作者实验中将ICI与其他评估方法进行比较(文中表2),那么进一步是否可以探讨ICI与那些方法的联系,或者使用多评估结合方法是否会进一步提高模型。再者,目前模型主要聚焦于线性分类器,是否该思想可以拓展到拟合能力更强的非线性分类器。

相关文章: