mixup:样本对插值的经验风险最小化.
大型神经网络可能对样本集过拟合,表现为对训练样本具有记忆性,并且对对抗样本非常敏感。作者提出了mixup作为一种数据增强方法,用于缓解以上问题。mixup表示为成对样本及其标签的凸组合。实验表明该方法能够有效地提高网络的通用性,减小了对训练样本的记忆,增强了模型对对抗样本的鲁棒性,并进一步提高了GAN的训练稳定性。
1. mixup的提出
神经网络的训练目标是在训练数据集上实现平均误差最小化,即经验风险最小化(empirical risk minimization, ERM)原则。学习理论指出如果学习器的大小(如参数量或VC复杂度)不随训练数据的数量增强而增加,则ERM的收敛性可以得到保证。然而*ERM无法保证在与训练数据不同的测试集分布上的泛化性。这是因为ERM允许大型神经网络记忆训练数据,当其在训练分布之外的数据上评估时,预测结果会有大幅度的改变。
数据增强是指在类似但不同于训练数据的数据集上进行训练的方法,即邻近风险最小化(vicinal risk minimization, VRM)原则。VRM是指通过人类知识构建训练数据中每个样本附近的邻域区域,然后从训练样本的邻域分布中采样额外的样本,以扩大训练样本的分布范围。虽然数据增强能够提高模型的泛化性,但它依赖于数据集,需要一定的专家知识。此外数据增强只能产生相同类别的样本,不能建立不同类样本之间的邻近关系。
作者提出了mixup作为一种数据扩充方法,其先验假设是特征向量的线性插值将导致目标标签的线性插值,因此使用两个样本的凸组合构造新的样本:
2. mixup的建模
监督学习是指寻找一个函数描述服从联合分布的特征向量和目标向量之间的关系。定义损失函数衡量预测结果和实际目标之间的差异。对于数据分布中的样本,目标是最小化损失函数的平均值,即期望风险(expected risk):
在实践中分布是未知的,因此从分布中采样训练数据,通过训练样本近似的经验分布(empirical distribution):
进一步可以用经验风险(empirical risk)代替期望风险:
通过最小化上式学习函数的过程即为经验风险最小化ERM原则。对分布的近似还有其它形式,比如在邻近风险最小化VRM原则中,分布近似为:
其中是邻近分布(vicinity distribution),用于衡量样本出现在样本附近的概率。常用的邻近分布有高斯邻近,即对训练样本增加高斯噪声。
从分布的近似中采样训练数据,则目标为最小化经验邻近风险(empirical vicinal risk):
这篇论文的主要贡献是提出了一种通用的邻近分布,即mixup:
其中。超参数控制两个样本的插值强度,当时,上式恢复为ERM。
mixup实现简单,计算开销少。使用Pytorch实现mixup:
# y1, y2 should be one-hot vectors
for (x1, y1), (x2, y2) in zip(loader1, loader2):
lam = numpy.random.beta(alpha, alpha)
x = Variable(lam * x1 + (1. - lam) * x2)
y = Variable(lam * y1 + (1. - lam) * y2)
optimizer.zero_grad()
loss(net(x), y).backward()
optimizer.step()
作者进一步指出,构造三个及以上样本的凸组合不能再带来进一步的增益。在实践中可以使用单个数据加载器提供的一个minibatch,随机打乱后将mixup应用在相邻的样本之间,这样做能够减少I/O需求。实验发现,仅在相同类别的样本中使用mixup不能显著地提高性能。
mixup能够有效地减少对训练样本之外的样本预测的振荡,且复合奥卡姆剃刀的归纳偏置。 对于下图所示的样本集,绿色表示类别0,橙色表示类别1。经验风险最小化ERM构造了硬分类的决策边界,蓝色区域代表模型分类为1的区域;而mixup实现软分类的决策边界,对于中间的区域,从一个类别过渡到另一个类别,提供更平滑的不确定性估计。
作者在相同的训练条件下分别按照ERM和mixup训练模型。左图统计了对于插值样本,预测结果不属于的预测遗漏统计值,结果表明mixup具有更少的预测遗漏。右图表示对于插值样本,mixup具有更小的梯度范数。结果表明mixup模型预测和模型训练时更稳定。
Related Issues not found
Please contact @0809zheng to initialize the comment