本文主要是介绍A holistic approach to semi-supervised learning,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Berthelot D, Carlini N, Goodfellow I, et al. Mixmatch: A holistic approach to semi-supervised learning[J]. arXiv preprint arXiv:1905.02249, 2019.
https://github.com/samihaija/mixhop
半监督学习的核心想法是利用无标注的数据来减轻对有标数据的需求。正则项可分为三类:一致性正则化、熵最小化和传统正则化。本文结合了这三种正则,消融实验表明MixMatch效果好于三个正则项每部分提升之和。
正则项
一致性正则化
分类器对于数据增强后的的数据的分类分布应该与之前的类别分布一样:
∣ ∣ P ( y ∣ A u g m e n t ( x ) ; θ ) − p ( y ∣ x ) ∣ ∣ 2 2 ||P(y|Augment(x);\theta)-p(y|x)||^2_2 ∣∣P(y∣Augment(x);θ)−p(y∣x)∣∣22
熵最小化
分类器的决策边界不应该穿过数据边缘分布的高密度区域:
- 显式的对unlabeled data加入 P ( y ∣ x , θ ) P(y|x,\theta) P(y∣x,θ)的熵作为损失函数
- 使用“sharpening”函数来隐式地实现熵的最小化
传统正则化
传统的正则化项位 L2 范数。本文的优化方法为Adam算法,使用权值衰减来替代L2损失项。
MixMatch
使用 MixMatch 生成数据,有标签的数据X和等量的无标数据U,和超参数:锐化(“sharpening”)参数T、对于无标数据强化K次和 Mixup 的参数 α \alpha α。
sharpening:
s h a r p e n ( p , T ) i = p i 1 T ∑ j = 1 L p j 1 T sharpen(p,T)_i=\frac{p_i^{\frac{1}{T}}}{\sum_{j=1}^{L}p_j^{\frac{1}{T}}} sharpen(p,T)i=∑j=1LpjT1piT1
MixUp
λ = B e t a ( α , α ) \lambda=Beta(\alpha, \alpha) λ=Beta(α,α)
λ ’ = m a x ( λ , 1 − λ ) \lambda^’=max(\lambda,1-\lambda) λ’=max(λ,1−λ)
x ’ = λ ’ x 1 + ( 1 − λ ’ ) x 2 x’=\lambda^’x_1+(1-\lambda^’)x_2 x’=λ’x1+(1−λ’)x2
p ’ = λ ’ p 1 + ( 1 − λ ’ ) p 2 p’=\lambda^’p_1+(1-\lambda^’)p_2 p’=λ’p1+(1−λ’)p2
loss
X ’ , U ’ = M i x M a t c h ( X , U , T , K , α ) X’,U’=MixMatch(X , U, T, K, \alpha) X’,U’=MixMatch(X,U,T,K,α)
L X = 1 ∣ X ’ ∣ ∑ x , p ∈ X ’ H ( p , p m o d e l ( y ∣ x ; θ ) ) L_X=\frac{1}{|X’|}\sum_{x,p\in X’}H(p, p_{model}(y|x; \theta)) LX=∣X’∣1x,p∈X’∑H(p,pmodel(y∣x;θ))
L U = 1 L ∣ U ’ ∣ ∑ u , q ∈ U ’ ∣ ∣ q − p m o d e l ( y ∣ x ; θ ) ∣ ∣ 2 2 L_U = \frac{1}{L|U’|}\sum_{u,q\in U’}||q-p_{model}(y|x; \theta)||^2_2 LU=L∣U’∣1u,q∈U’∑∣∣q−pmodel(y∣x;θ)∣∣22
L = L X + λ U L U L=L_X+\lambda_UL_U L=LX+λULU
这篇关于A holistic approach to semi-supervised learning的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!