©作者 | spectator
单位 | 核桃量化
研究方向 | 量化投资
深度学习从业者通常面临过度拟合的挑战,为了改进泛化,先前的工作已经提出了许多技术,包括数据扩增和显式正则化。其中最典型的工作是 mixup,其通过对随机采样的样本对的特征进行线性插值并对相应的标签应用相同的插值来完成数据增广,达到隐式地正则化效果。虽然 mixup 在提高分类问题的泛化能力方面表现出了良好的效果,但在连续标签回归的背景下却很少得到研究。
本文分享了一种简单而有效的算法 C-Mixup,用来提高回归任务的泛化能力,C-mixup 算法则根据 Label 的相似性来调整样本的抽样概率,不仅可以在回归任务中获得了更好的效果,可以提高分布外鲁棒性。实验显示,C-Mixup 在分布内泛化、任务泛化和分布外鲁棒性方面分别提高了 6.56%、4.76% 和 5.82%。
论文标题:
C-Mixup: Improving Generalization in Regression
论文链接:
https://arxiv.org/abs/2210.05775
代码链接:
https://github.com/huaxiuyao/C-Mixup
与分类问题不同,回归的目标是为每个输入预测一个连续的标签进行输出。在回归任务中直接对输入特征和标签应用 mixup 可能会产生任意错误的标签。如下图 1 所示,预测的目标是当前对象的方向角度。尝试随机选择几对样本进行 mixup 混合(混合图像和标签),其中仅第 1 对的混合结果是合理的。因此可以看到,从回归数据集中均匀地采样混合对可能会引入了更多的噪声,进而影响模型的性能。
C-Mixup 方法提出根据样本之间的相似性来调整混合对的抽样概率。具体来说,使用高斯核来计算抽取另一个样本进行混合的采样概率,其中更接近的样本更可能被采样。这里的核心问题是:如何衡量两个样本之间的相似性?最直接的解决方案是计算输入数据的相似度。然而,在处理高维数据(如图像或时间序列)时,计算输入之间的相似性会带来大量的计算成本,而且也很难在高纬空间进行正确度量。
为了克服上述缺点,C-Mixup 使用标签相似性进行样本相似性度量。因为标签空间通常是低维的,所以计算效率更高。除了计算上的优势外,C-Mixup 算法还被证明适用于下面三类回归问题:
与使用 mixup 或使用特征相似性的方法相比相比,C-Mixup 改进了监督回归中的分布内泛化;
C-Mixup 可以扩展到基于梯度的元学习,可以提高了任务泛化能力;
C-Mixup 非常适合在没有域信息的情况下改善分布外稳健性,尤其是协变量偏移。
整体算法非常简单,首先通过公式 6 计算所有样本之间的距离用于计算采样概率(伪代码第 2 行),在每个批量数据上使用 C-Mixup 采样获得新的混合数据(伪代码第 7 行),使用混合数据进行训练更新模型参数(伪代码第 8 行)。
为每个样本使用 kde 训练一个模型,然后使用这个模型计算和其余样本的相似性,下面看一下样本对采样概率的代码实现:
import numpy as np
from sklearn.neighbors import KernelDensity
def get_mixup_sample_rate(args, data_packet, kernel="gaussian",bandwidth=1.0):
mix_idx = []
_, y_list = data_packet['x_train'], data_packet['y_train']
N = len(data_list)
######## use kde rate or uniform rate #######
for i in range(N):
data_i = data_list[i]
data_i = data_i.reshape(-1,data_i.shape[0])
kd = KernelDensity(kernel=kernel, bandwidth=bandwidth).fit(data_i)
each_rate = np.exp(kd.score_samples(data_list))
each_rate /= np.sum(each_rate)
mix_idx.append(each_rate)
mix_idx = np.array(mix_idx)
self_rate = [mix_idx[i][i] for i in range(len(mix_idx))]
return mix_idx
实验部分回答以下问题:
问题1:与相应的先验方法相比,C-Mixup 是否能够提高回归的分布内、任务泛化和分布外鲁棒性?(Figure 2,Table 1, Table 2, Table 3)
问题2:与使用其他距离指标相比,C-Mixup 的性能如何(Table 5)
问题3:C-Mixup 是否对 KDE 高斯核中的 bandwidth 参数敏感?(Figure 5)
本文分享的 C-Mixup 方法是一种简单而有效的 Mixup 变体,非常适合深度神经网络中的回归任务。理论和实验结果都表明了 C-Mixup 在提高分布内泛化能力、任务泛化能力和分布外鲁棒性方面的前景。
未来可以考虑从以下几个方面拓展该工作:
验证 C-Mixup 在非深度学习回归任务上的有效性?
当前样本相似性度量方法仅使用标签信息,忽略了输入特征,可能会存在失效的情况,可以考虑将输入特征和标签一起用于样本相似性度量,可以使用度量学习或在 Embedding 的方法完成?
C-Mixup 需要迭代计算距离矩阵,在大数据集上会消耗大量时间,是否可以进行加速?
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
投稿通道:
• 投稿邮箱:[email protected]
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
·
·