主要解决的问题是让模型更加鲁棒性的区分很相似的类别;
举例来说就是,比如我们一个batch一个batch去训练的时候, 猫对应的label就是猫, 狗就是狗, 完全只靠看猫和狗来区分他们. 那么在实际情况中, 如果出现一个样本, 它长得既像猫又像狗, 但实际上这是一条狗, 网络可能就不知所措了。Mixup采用的是配对的方式进行训练,通过混合两个甚至是多个样本的分布,同时加上对应的标签来训练。
在混合两个标签之后得到的不就是两个类别的中间类别了?
Label采用的是one-hot编码,可以理解为对k个种类的每个类别给出样本属于该类的概率,加权两个one-hot编码之后,就变成了two-hot编码,也就是样本同时属于前两个类别的概率。
mixup中的随机混合应运而生。
用通俗的话来说就是,当输入数据乘一个在0-1上的随机分布参数时,其对应的输出也会产生同样的效果。换句话说,就是mixup希望模型f是一个线性的函数,线性函数相当于没有加激活函数的单层神经网络,而在实际建模时所运用到的模型都是深层的,具有大量参数的、具有强的非线性能力的网络,而且参数越多,越统一产生过拟合,这样mixup的作用就更加的明显,它充当一个正则化的角色,它希望模型尽量的往线性函数靠近,这样既能保证模型预测尽可能的准确,又能让模型尽可能的简单。
最后再来说例如sample pairing和mixup这样的数据增强的手段,只不过是有着数据增强的外貌,但是实际上是通过数据增强的形式来给模型增加一个正则项,或者说是对模型进行修剪,因此,对于叠加之后的图像都不是图像这个问题,本质就是这并不是纯粹的数据增强。
存在疑问点:为什么mixup可以在半监督学习领域起作用,这样有效的前提是什么?比如mixmatch中的mixup的原理?
参考链接:
https://www.zhihu.com/question/67472285/answer/256651581
https://zhuanlan.zhihu.com/p/191558572
https://www.zhihu.com/search?type=content&q=%E5%A6%82%E4%BD%95%E7%90%86%E8%A7%A3mixup