- 鲁棒性:对于输入扰动或对抗样本的性能。
加入小扰动,或进行数据增强。对于我们正常使用的模型,或者小数据集,需要进行数据增强,增强模型的鲁棒性,并且可以提升模型泛化能力,即在测试集上的性能。
加入对抗样本训练。针对模型的安全,而找到对抗样本进行专门训练,提升模型在对抗样本的鲁棒性;但是会降低模型的泛化能力,在真实的测试集上性能下降。- 泛化性:
训练集训练的模型在测试集上的性能;(xys更科学的说法:泛化性指模型经过训练后,应用到新数据并做出准确预测的能力。)
不同数据集之间、不同任务之间模型的泛化能力。- 1)加入小扰动:一般模型都是欠鲁棒性,数据增强可以提高鲁棒和泛化性;也就是欠鲁棒,泛化能力会低,提升鲁棒性可以提升泛化。
2)加入对抗样本训练:使得模型过于鲁棒,对攻击样本效果好,提升模型安全。但是在测试集上性能会下降,泛化能力差。也就是模型过于鲁棒的话,泛化性能也差。
模型的Robustness和Generalization是什么关系?
Robustness是模型对input perturbation的变化程度;
统计学习中的Generalization是模型对来自与训练集同分布数据的预测能力;
近期还有OoD generalization的概念,考虑的是对与训练数据分布有差别的数据的泛化能力。
经验上来说,毫无疑问他们两者是存在联系的。体现的比较明显的领域在于弱监督学习(例如,半监督学习),会使用各种个样的数据增强(例如,加入噪声,反转,裁切,甚至对抗等),让模型变得对输入的细微扰动不敏感,从而减少过拟合(因为在标注数据少的情况下,过拟合是容易发生的),提升泛化性能。
(类似的工作比如Tarvainen and Valpola 2017: Mean teachers are better role models: Weight-averaged consistency targets improve semi-supervised deep learning resultsMiyato et al. 2019: Virtual Adversarial Training: A Regularization Method for Supervised and Semi-Supervised Learning)
但是,把鲁棒性做的极端一点,即使是大幅度的扰动,也无法改变模型的输出,那么模型就会变成过平滑/随机模型,从而降低预测性能。
我个人的理解,鲁棒性和泛化是一个权衡的关系,权衡体现在上面说的,过鲁棒无法泛化,欠鲁棒也无法泛化(xys:欠鲁棒则泛化性不好,但过鲁棒泛化性也不好)。这个权衡,我们可以分两方面看。
- 在现实中,一般模型是都欠鲁棒的,一个间接的证据就是很多看起来很离奇的正则化都可以让模型test accuracy变高,例如mixup(Zhang et al. 2018), StochasticDepth(Huang et al. 2016), Shake-shake (Gestaldi et al. 2017)等等,所以在实际应用中鲁棒性应该是越强越好。
- 在权衡的另一端,鲁棒性的一个很强的例子是对对抗样本鲁棒(adversarial robustness),是一个非常强的约束,从而会导致test accuracy大幅下降。这体现了过鲁棒-无法泛化,在刚才提到的paper里也有论证这一点。
泛化性指模型经过训练后,应用到新数据并做出准确预测的能力。一个模型在训练数据上经常被训练得太好即过拟合,以致无法泛化。