Press "Enter" to skip to content

深度稳定学习

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

导读:当训练数据和测试数据所处的概率分布不同时,如何提升深度学习的泛化能力,清华大学崔鹏教授的论文“Deep Stable Learning for Out-Of-Distribution Generalization”,提出基于特征权重重置的StableNet,在包括NICO的数据集上,都表现良好。

 

原作者解读该文  因果学习新进展:深度稳定学习 (本文相对来说,有更多笔者自创的例子,相对更好理解,但对原文的重点把握不清)

 

1)让模型适应不同的数据集

 

随着机器学习算法在生活中的广泛应用,大众希望算法在任何环境下都表现的靠谱,但考虑到机器学习算法的决策规则,来自训练数据集。对于和训练数据集差异较大的环境,如何确保该环境下保证算法的效果,这是稳定学习想要解决的问题。

 

 

稳定学习的目标

 

传统的测试数据集,和训练数据集是独立同分布的,迁移学习要让模型在较少的干预下,能够在其它特定分布上可用,而稳定学习要求模型在各个数据集上都表现稳定且优秀。

 

相比模型鲁棒性,稳定学习关注的是找到真正描述了数据关系的模型,以及如何去除数据训练中的偏差,是一个内涵比鲁棒性更丰富的概念,而鲁棒性关注的是在数据中包含观测误差时,模型的预测结果是否会出现波动。驱动前者的是模型的预测精度,而驱动后者的是模型本身。

 

2)稳定学习就是找出本质特征

 

深度学习的模型,之所以能够取得成功,是由于其能够提取出对预测来说有效的特征,然而其无法区分出那些特征与标签间的关系仅仅是由于相关性,那些是由于因果关系,例如下图使用全部都是站在水中的狗狗来训练神经网络识别狗,普通的ResNet18,其提取的特征就包含了水波,而是用Stable Net训练的网络,则能够保证提取的特征,大多集中在狗的身体对应的像素。

 

 

对比传统深度学习和稳定学习提取的特征不同,图片中亮度越大的点,对预测的贡献越多

 

上述问题,根据领域泛化(domain generalization)的框架,可以将数据(水中的狗和草地的狗的图片)分为两个领域,即狗的图像本身和狗的背景,和属于狗本身的图像模式,在这两类间没有差异。而表征背景(水面或者草地)的特征在上述两组数据中保持不变。如果能在只使用一类数据训练时,区分出这两类特征,就能够实现让模型在不同分布的环境下具有泛化能力。

 

要实现上述目标,一种方式是手动将数据按照不同的领域给出标记,例如如果已知数据进行人工标注,告知模型这些数据的背景是什幺,那幺这样是能够训练出可实现稳定学习这一目标的模型,然而这样的方法,成本过高,无法在真实环境中推广。

 

另一些模型,假设数据在不同的背景领域是平均的,例如假设训练数据包含一半在水里的狗,一半在草地上,这样的模型能够在测试数据全是在草地上的狗的情况下保持分类准确性,但如果训练数据大部分是在水里的狗,少部分草地上的狗的情况下则会表现不佳。本论文要解决的问题,是在训练集全部是水里的狗时,而测试集全部是草地上的狗时,让stable net能准确地识别狗。

 

3) 特征去相关:从岭回归到随机傅立叶变化

 

在识别狗的例子中,深度学习模型可以提取的特征包括狗的腿部长短,狗的皮毛颜色,狗的耳朵的形状等,这些特征之间存在显着的相关性,例如柯基大多是黄色的短腿的,于是这两个特征就会同时出现,呈现出统计相关性。而特征去相关(Feature Decorrelation),就是去除上述特征之间的相关性,从而使预测模型能够使用一组独立的特征来进行预测,以提高模型的准确度。

 

然而之前的特征去相关的工作,都集中在去除特征间的线性相关性,无法去掉特征间存在的非线性的相关。这就相当于能识别出某种狗的身长都是腿长的两倍(假设的),去除这两个特征的相关,却不能去除黄色和短腿这两个属于的特征间的相关性。

 

为了去除特征间非线性的相关性,一种可能的方法,是将特征使用kernel(核方法)映射到高维空间,然而如何定义核函数,才能在去除所有可能的未知特征间的相关性。该文作者使用的随机傅立叶森林[1],经过严格的数学证明,论证其在独立性检测中,能够让各维度的特征保持严格的独立。该文基于随机傅立叶森林,开发的方法,能够保持线性的时间复杂度,从而减少计算资源消耗。

 

4)引入特征权重,改变损失函数

 

假设神经网络的目标是识别猫和狗,训练集中猫有在水里的,在草地的,在卧室的,而狗的图片只有狗在草地的。而测试集的狗的图片,大部分是狗在水里的。stable net在训练时,先提取出图片中的特征,之后分为两部分,一部分是用传统的神经网络进行分类,通过反向传播加梯度下降来降低损失函数。

 

传统的损失函数,关注的只是预测值和标签是否一致,这相当于考核学生时,只看最终的回答,而stable net,通过提取特征,对特征进行去相关,之后将特征的权重和预测值的点乘之积作为最终的损失函数,相当于考卷评分的时候,根据做题步骤分步给分。算法在迭代中,不仅会调整分类器中神经元的权重,还会调整全局(基于所有训练)的特征空间提取的特征地图中每个特征的权重。

 

 

stable net的总体结构,其中RFF为随机傅立叶森林,LSWD是用于去相关的特征权重

 

假设stable net的训练识别猫和狗,最初由于训练集中狗大多在草地上,因此上图绿色的特征提取模块,能抽取出草地及狗的特征,之后通过RFF进行特征去相关,让这两种特征分别出现在转换后的特征空间中。由于猫的图片并不是全部来自草地,因此再将预测值和标签之差,乘以特征的权重得到的最终优化目标时,就可以通过迭代,去改变不同特征的权重,从而最终得出真正和狗有因果关系的特征,从而实现在异分步(OOD)数据集上的泛化能力。

 

 

特征权重更新模块的算法伪代码

 

5)stable net在不平衡及对抗性数据集上表现良好

 

为论证stable net在不均匀数据集上的表现,先基于手写数字集合在不同背景下的小数据集MNIST-M,使用ResNet18 作为分类器的基础,对比不同模型的效果,结果为下表,其中DR为占主要的背景域所占的比例,例如DR0.6指数据中60%的图片背景是雪花点为背景(特定的背景类举例),可以看到在大多数情况下,stable net的准确性都最高。随着占主要地位的背景域的比例升高,模型的预测准确度有所下降,但越是极端不平衡的训练集,stable net的表现相比传统cnn,就优势越发明显。

 

 

在基于手写数字的小数据集上,stable net表现最优

 

NICO是清华大学提出的一套用于图像分类数据集,适合验证模型在异分布环境下的性能,图中的数据包含了标注的背景信息,具体参考论文[2]

 

 

NICO数据集示例

 

在NICO数据集中,stable net的表现优于其他的尝试实现稳定学习的模型。且即使降低了模型的特征采样率,stable net也能保持相对较好的性能。这说明该方法可以通过只更新部分特征的权重,减少相关的计算量,如下图所示。

 

 

降低采样率到30%,stable net仍然能够保持较高的预测精度

 

6)总结

 

该文通过对特征在预测任务中的权重,在训练过程中动态调整,得以自动化地提取出对图像预测真正有因果关系的特征,并通过一系列实验,论证这使模型能够具有在异分布数据下的泛化能力。该方法的中对特征权重的动态调整,可以看成是对复杂系统的自动化建模,模型的目地是进行因果发现,找出潜在的因果关系。

 

这样对特征进行动态调整的套路,从原理上,也可以应用到无监督学习及强化学习的应用上,例如在数据聚类中,如果待聚类的数据(包含A和B两个对应标签),来自两个不同的来源,带有不同分布的背景噪音(批次效应),那幺聚类算法会将这两类数据聚成两簇,而这在聚类中,就是一个虚假的分层。造成该现象的原因是聚类算法无法区别相关性和因果性。如果能用类似的方式,在聚类算法的优化目标中引入特征权重,就能够应对批次效应这一问题。

 

参考文献

 

 

Ali Rahimi and Benjamin Recht. Random features for large scale kernel machines. In Advances in neural information processing systems, pages 1177–1184, 2008

 

Towards Non-IID Image Classification: A Dataset and

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注