机器学习:MixMatch 论文解读

最近谷歌出了一篇有关半监督学习的 paper,几乎可以说是到目前为止,半监督学习领域的集大成者了,在常用的数据集上,取得了非常惊人的效果。这篇 paper,基本把之前半监督学习领域,有用的方式方法都尝试了一下,然后组合出了一个更为有效的方法。

这篇文章的名称叫做 MixMatch: A Holistic Approach to Semi-Supervised Learning

想解决的也是半监督学习的问题,半监督学习,就是为了解决标注数据不够的情况,标签不够,那无标签的数据也可以用上,至少从目前学术界的成功来看,在同分布的数据集上,这些效果都还是不错的。

言归正传,看看这篇 paper,都有什么 trick 深藏其中,不过这篇 paper,还是比较厚道的,把每个 trick 的影响都做了对比实验,paper 里也给出了对比实验结果。

当然,一开始都是讲情怀的了,说明半监督学习的必要性与重要性。

作者也说了,目前半监督学习的几种方法:一个是熵最小化,也就是说,尽可能让模型对无标签样本的预测置信度高;另外一个是,连续性,当样本出现扰动的时候,模型的输出还是非常的 robust;还有一个是泛化能力,模型应该有很好的泛化能力。

这篇 paper,作者主要抓住了两点,一个是熵最小化,一个是连续性。熵最小化,文章里提出了一种对数据做增广,用模型预测,取平均,然后再做一个 sharpen;连续性,主要就是样本增广,结合 Mixup 的方法。

在这里插入图片描述

文章的主体思路就是给定一个有标签的样本 batch X \mathcal{X} X 和同样大小的无标签的样本batch U \mathcal{U} U,通过 mixMatch 的方式,这两个 batch 分别变成了 X ′ \mathcal{X'} X U ′ \mathcal{U}' U,这两个 batch 分别按照有标签的情况,和无标签的情况,计算不同的 loss,

X ′ , U ′ = MixMatch ( X , U , T , K , α ) \mathcal{X}', \mathcal{U}' = \text{MixMatch} (\mathcal{X}, \mathcal{U}, T, K, \alpha) X,U=MixMatch(X,U,T,K,α)

L X = 1 ∣ X ′ ∣ ∑ x , p ∈ X ′ H ( p , p m ( y ∣ x , θ ) ) \mathcal{L}_{\mathcal{X}} = \frac{1}{| \mathcal{X}'|} \sum_{x, p \in \mathcal{X}'} H(p, p_m(y|x, \theta)) LX=X1x,pXH(p,pm(yx,θ))

L U = 1 L ∣ U ′ ∣ ∑ u , q ∈ U ′ ∣ ∣ q − p m ( y ∣ u , θ ) ∣ ∣ 2 2 \mathcal{L}_{\mathcal{U}} = \frac{1}{L| \mathcal{U}'|} \sum_{u, q \in \mathcal{U}'} || q - p_m(y|u, \theta) ||_{2}^2 LU=LU1u,qUqpm(yu,θ)22

L = L X + λ u L U \mathcal{L} = \mathcal{L}_{\mathcal{X}} + \lambda_{u} \mathcal{L}_{\mathcal{U}} L=LX+λuLU

H ( p , q ) H(p, q) H(p,q) 是我们常见的分类交叉熵, T , K , α , λ T, K, \alpha, \lambda T,K,α,λ 是超参数,整体的算法流程如下所示:

在这里插入图片描述

上面这个算法流程,基本就是一个数据增广的算法过程,不过,由于现在的数据是混合了有标签和无标签两种数据,文章对无标签数据做了一些处理。

Data Augmentation

正如文章所说,数据增广是非常有效的一种方式,所以这篇 paper,也用到了数据增广的技术,文章里说,有标签的数据,只做一次增广, x b ′ = A u ( x b ) x'_b = Au(x_b) xb=Au(xb),没有标签的数据,要做 K K K 次增广, u b , k ′ = A u ( u b ) u'_{b,k} = Au(u_b) ub,k=Au(ub)

Label Guessing

对于无标签的数据,只能依靠模型去猜测,所以,这里用求平均的方式对无标签的数据做预测:

q b ˉ = 1 K ∑ k = 1 K p m ( y ∣ u b , k ; θ ) \bar{{q}_b} = \frac{1}{K} \sum_{k=1}^{K} p_m(y|u_{b,k}; \theta ) qbˉ=K1k=1Kpm(yub,k;θ)

Sharpening

对预测之后的标签,文章里做了一个 sharpen 的操作,就是让预测概率分布更加的 sharpen,文章利用了一种 “加热” 的技术:

Sharpen ( p , T ) i : = p i 1 T / ∑ j = 1 L p j 1 T \text{Sharpen} (p, T)_{i} := p_{i}^{\frac{1}{T}} / \sum_{j = 1}^{L} p_{j}^{\frac{1}{T}} Sharpen(p,T)i:=piT1/j=1LpjT1

Mixup

对增广后的数据,文章也做了 mixup, 这个融合系数 λ \lambda λ 利用概率分布来获得:

λ − B e t a ( α , α ) λ ′ = m a x ( λ , 1 − λ ) x ′ = λ ′ x 1 + ( 1 − λ ′ ) x 2 p ′ = λ ′ p 1 + ( 1 − λ ′ ) p 2 \lambda - Beta(\alpha, \alpha) \\ \lambda' = max(\lambda, 1 - \lambda) \\ x' = \lambda' x_1 + (1 - \lambda') x_2 \\ p' = \lambda' p_1 + (1 - \lambda') p_2 λBeta(α,α)λ=max(λ,1λ)x=λx1+(1λ)x2p=λp1+(1λ)p2

文章里为了利用 Mixup 这种技术,将有标签数据 X \mathcal{X} X 和无标签数据 U \mathcal{U} U 混合在一起形成一个混合数据 W \mathcal{W} W,然后有标签数据和 W \mathcal{W} W 中的前 ∣ X ∣ | \mathcal{X} | X 个进行 mixup,mixup 的数据,作为有标签数据,加入 X ′ \mathcal{X}' X 中,同样,无标签数据和 W \mathcal{W} W 中的后 ∣ U ∣ | \mathcal{U} | U 个进行 mixup,mixup 的数据,作为无标签数据,加入 U ′ \mathcal{U}' U 中。

构造的这些数据,然后对网络不断的迭代训练。文章里的超参数 $T = 0.5, K =2 $, 而 α , λ u \alpha, \lambda_u α,λu 根据不同的数据库,需要做一定的适配。

这篇paper 在常用的半监督测试集上取得效果,非常惊人,而且作者也给出了各个 trick 对最终结果的影响:

在这里插入图片描述

可以看到,mixUp 和 sharpen 这两个技术,对结果的影响最大。

参考文献:

MixMatch: A Holistic Approach to Semi-Supervised Learning

  • 5
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值