论文阅读笔记 [NIPS2019] Learning to Self-Train for Semi-Supervised Few-Shot Classification

学习自我训练的半监督小样本分类

Li-nips2019-LST-Learning to Self-Train for Semi-Supervised Few-Shot Classification

摘要

作者提出了一种新颖的半监督元学习方法:学习自我训练(简称 LST)。这种方法利用无标签数据,特别是学习如何择优挑选和标记这些无标签数据,以进一步提高性能。对于每个小样本任务,训练一个小样本模型来预测无标签数据的伪标签,然后对有标签和伪标签数据的自训练步骤进行迭代,每一步都进行调优。还学习了一个软权重网络(简称 SWN)来优化伪标签的自我训练权重,如此一来,更好的权重能够对梯度下降优化有更多的贡献。(这个软权重网络,软在哪里?如何学习的?)。在半监督小样本分类的两个 ImageNet 基准上进行评估,取得了很大改进超过最先进的方法。(很大改进是多大?最先进的方法是什么方法?)。
代码在 https://github.com/xinzheli1217/learning-to-self-train

1 引言

元学习是最强的小样本学习方法之一,在元学习策略中,基于梯度下降的方法特别有前景。另一个有趣的想法是利用额外的无标签数据。半监督学习在有标签的小样本数据上利用无标签数据,在标准数据集上取得了很好的性能。一个经典、直观、简单的方法是自训练(self-training)。自训练是一种常见的半监督算法:首先利用有标签数据训练一个监督模型,然后基于无标签数据的最可信的预测标签(称为伪标签)来扩大这个有标签数据集,其性能可超过基于正则化的方法(都有哪些? entropy minimization、Temporal ensembling、Virtual adversarial training),尤其是有标签数据非常稀少时。

因此,本文聚焦于半监督小样本分类任务:用于训练分类器的有标签数据很少而无标签数据很多。为了处理这个问题,作者提出了一个新方法:学习自我训练(LST),成功地把性能良好的半监督方法嵌入到元学习模式中。然而,这并不简单,因为直接递归地应用自训练会导致逐渐漂移,从而增加有噪声的伪标签。为了解决这个问题,首先通过元学习一个软权重网络(SWN)来自动地减少噪声标签的影响,而且在每个自训练步骤之后对只有已标记数据的模型进行调优。

特别地,作者的 LST 方法包括内循环自训练(针对一个任务)和外循环元学习(针对所有任务)。LST 的元学习针对每个任务不但学习初始化自训练模型而且学习怎样挑选噪声标签。内循环:首先利用元学习到的初始化方法,使一个特定任务模型快速适应很少有标签数据的情况,然后用该模型预测伪标签,最后通过元学习到的软权重网络(SWN)给标签添加权重。在外循环中,这些元学习器的性能通过一个独立的验证集进行评估,并利用对应的验证损失进行参数优化。

本文的贡献有三个:

  1. 一种新的自训练策略,能够避免标签噪声导致的模型漂移,实现健壮的递归训练。
  2. 一种新的元学习择优挑选方法,能够优化伪标签的权重,特别是快速有效的自我训练。
  3. 在两个版本的 ImageNet 基准测试上(miniImageNet 和 tieredImageNet)进行了广泛的实验,达到了最佳性能。

2 相关工作

小样本分类(FSC),半监督学习(SSL),半监督小样本分类(SSFSC)。

3 问题定义和符号表示

小样本分类任务的构成:

  • 支持集 S:有标签
  • 查询集 Q:没见过的样例
  • 无标签数据 R:用于半监督学习,可能包含干扰类(S 中没有的类别)

元学习与传统分类的区别:

  • 1 主要阶段是元训练和元测试(而非训练和测试),本文的训练还包括自训练。
  • 2 元训练和元测试中的样例不是数据点而是片段(小样本学习任务)。
  • 3 元学习的目标不是对没见过的数据点进行分类,而是让分类器快速适应新的任务。

元学习的符号表示:

  • D:数据集
  • T:小样本分类任务
  • S:支持集,类别少且样例少,例如5个类别,每个类别1个样例。
  • R:无标签样例集,大量样例。
  • Q:查询集,用于计算验证损失,优化元学习器。

元测试的符号表示:

  • D u n D_{un} Dun:之前没见过的数据集(与 D 中的样例类别没有重叠)。
  • T u n T_{un} Tun:小样本分类任务
  • S u n S_{un} Sun:支持集
  • R u n R_{un} Run:无标签样例集
  • Q u n Q_{un} Qun:查询集

4 学习自我训练(LST)

在这里插入图片描述

图1:LST 方法在单个任务上的流程。一个类别的原型是该类别中的样例特征均值,SWN 是软加权网络,其优化过程在图2和4.2节给出。

在这里插入图片描述

图2:LST 方法中的外循环和内循环训练流程。红色方框中的内循环包括 m 步再训练(用 S 和 R p R^p Rp)、T-m 步调优(只用 S)。在迭代训练中,用调优后的 θ T \theta_T θT 替换 MTL 学到的初始 θ T \theta_T θT(参见4.1节)用于下个阶段的伪标签。

LST 方法在单个任务上的流程如图1 所示,包括:

  • 给无标签样例“打伪标签”(利用预训练的小样本模型);
  • 通过硬挑选和软加权,“择优挑选”打了伪标签的样例;
  • 在选出的样例上“再训练”,调优;
  • 在查询集上进行“最终测试”。

在一个元训练任务上,“最终测试”作为一个验证输出一个 loss 用于优化 LST 的元学习参数,如图2所示。

4.1 给无标签数据打上伪标签,择优挑选无标签数据

打伪标签

采用小样本学习的监督学习方法训练一个特定于任务的分类器 θ \theta θ,然后用 θ \theta θ 预测无标签数据集 R 的伪标签。从根本上说,可以使用多种方法来训练 θ \theta θ。作者选择了一种表现最好的方法:元迁移学习(MTL),是基于梯度下降进行优化。在外循环元学习中,MTL 学习缩放和移动参数 Φ s s \Phi_{ss} Φss ,使得预训练的大规模神经网络 Θ \Theta Θ(例如,对于 miniImageNet 上的 64 个类别,每个类别 600 张图片)快速适应新的学习任务。在内循环的基础学习中,MTL 把最后的全连接层作为分类器 θ \theta θ 并用 S 来训练它。

在一个任务 T 上,打伪标签的过程:

  • 给定支持集 S,其损失用于优化特定于任务的基础学习器(分类器) θ \theta
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值