八、对抗训练
神经网络在预测过程中,可以故意人工构造这样的一种样本:对输入点 ,我们搜寻它的附近的一个人眼看起来没有区别、网络预测结果差异很大的样本 。
- 输入点 来自于训练集,称作原始样本;而 是人工构造的,称作对抗样本
adversarial example
。 - 我们可以通过将对抗样本加入训练集来改善模型的泛化能力,这称作对抗训练
adversarial training
。其中:对抗样本的真实标签要求和 相同,但是其预测结果要求和 不同。
- 输入点 来自于训练集,称作原始样本;而 是人工构造的,称作对抗样本
Goodfellow et al(2014b)
表明:存在这些对抗样本的主要原因是高度线性。神经网络主要基于线性块构建的,因此模型是高度线性的。对于一个线性函数,如果它是高维的,那么其函数值可能对扰动非常敏感。
对抗训练通过鼓励网络在训练数据附近的局部区域保持稳定来限制函数对输入扰动的高度敏感性。它可以视作一种先验知识:模型是局部稳定的。
对抗训练也可以用于实现半监督学习:
- 首先根据规模小的、监督样本中学习模型。
- 然后根据模型,预测大量的、未监督的样本。假设未监督样本 预测的标签为 (虽然其真实标签可能不是 ,但是如果模型质量非常好,则真实标签是 的概率非常大)。
- 然后在 的一个很小的领域内寻找它的对抗样本 。由于不是采用真实的标签,而是模型预测的标签 ,因此 也称作虚拟对抗样本。
- 重新训练模型,使得模型在 上的预测标签分类都相同。
这种策略鼓励模型沿着未监督样本所在流形上的任意微小变化都是稳定的。其基本假设是:不同的分类通常位于分离的流形上,并且小的扰动不能从一类的流形跳到另一个流形上。