Mixup 数据增强是一种用于提高机器学习模型,特别是在图像分类任务中,性能和鲁棒性的技术。它通过在现有数据点对及其相应标签之间进行线性插值来创建新的训练样本。具体来说,给定两个输入图像及其标签,mixup 通过对像素值进行加权平均并按比例混合标签来生成新样本。例如,如果您有一张带有标签 [1, 0] 的猫的图像和一张带有标签 [0, 1] 的狗的图像,mixup 可能会创建一个 70% 是猫和 30% 是狗的新图像,其混合标签为 [0.7, 0.3]。这迫使模型学习更平滑的决策边界,从而降低预测中的过度自信。
mixup 的主要优点是它能够正则化模型,这有助于防止过拟合。像旋转或翻转这样的传统增强方法增加了多样性,但仍然依赖于“硬”标签(例如,100% 猫或 100% 狗)。相比之下,mixup 引入了“软”标签,这些标签反映了混合样本的不确定性。这鼓励模型更好地泛化,因为它学会处理中间情况,而不是记忆精确的训练样本。例如,经过 mixup 训练的模型可能在模糊或嘈杂的真实世界数据上表现更好,在这种数据中,清晰的类别区分并不总是存在。该技术在训练数据有限的情况下特别有用,因为它在通过插值保持标签一致性的同时人为地扩展了数据集。
实施 mixup 非常简单。开发人员通常随机选择成对的训练样本,并从 Beta 分布中计算混合系数 (λ),通常参数为 α=0.2 或 α=0.4 来控制混合强度。例如,在 PyTorch 中,您可能会获取两批图像和标签,计算 λ,然后使用 mixed_input = λ * batch1 + (1-λ) * batch2
和 mixed_labels = λ * labels1 + (1-λ) * labels2
创建混合输入和标签。但是,mixup 并非普遍有效——它最适用于标签混合有意义的任务,例如分类,但可能会损害需要精确标签边界的场景(例如,目标检测)的性能。通常需要试验 α 值并将 mixup 与其他增强(例如,cutout 或标准转换)相结合,才能获得最佳结果。