1、引言
近些年,深度学习在计算机视觉领域取得了很好的表现,引领了第三次人工智能的浪潮。目前大部分表现优异的应用都用到了深度学习,大红大紫的 AlphaGo 就使用到了深度学习。
但是本期讲的是对抗机器学习,为什么提深度学习,深度学习和机器学习是什么关系呢?或者说深度学习、神经网络、机器学习、人工智能之间的关系又是怎样的。
简单来说:
- 深度学习是机器学习的一个分支(最重要的分支)
- 机器学习是人工智能的一个分支
深度学习的概念源于人工神经网络的研究,但是并不完全等于传统神经网络。不过在叫法上,很多深度学习算法中都会包含”神经网络”这个词,比如:卷积神经网络(CNN)、循环神经网络(RNN)。
所以,深度学习可以说是在传统神经网络基础上的升级,约等于神经网络。
深度学习的4种典型算法:
- 卷积神经网络 – CNN
- 循环神经网络 – RNN
- 生成对抗网络 – GANs
- 深度强化学习 – RL
2、对抗机器学习
对抗机器学习(adversarial machine learning)是一个机器学习与计算机安全的交叉领域。对抗机器学习旨在给恶意环境下的机器学习技术提供安全保障。由于机器学习技术一般研究的是同一个或较为稳定的数据分布,当部署到现实中的时候,由于恶意用户的存在,这种假设并不一定成立。比如研究人员发现,一些精心设计的对抗样本(adversarial example)可以使机器学习模型失败输出正确的结果。
针对对抗机器学习这个问题而言,AI出身的小伙伴们可能认为,这样的工作应该只能看做模型的鲁棒性或泛化能力不够强,但是从安全角度考虑,其实所谓的“安全”概念,是从模型的设计者角度出发,考虑到模型的行为超出意料之外,让模型设计者手足无措,因此我们认为是可能存在“潜在威胁”,因而将这类行为归类为安全问题。特此解释。
在很多深度学习与传统机器学习对比的文章中,都有大致这么一段描述:
传统机器学习的特征提取主要依赖人工,针对特定简单任务的时候人工提取特征会简单有效,但是不能通用。
深度学习的特征提取并不依靠人工,而是机器自动提取的。这也是为什么大家都说深度学习的可解释性很差,因为有时候深度学习虽然能有好的表现,但是我们并不知道他的原理是什么。
提及了深度学习的可解释性不高,但没有深究,在《Intriguing properties of neural networks》一文中,就解释了其中原因。主要是以下两点:
- 根据各种单元分析方法(methods of unit analysis),单个高层单元与高层单元的随机线性组合之间没有区别。它表明,在神经网络的高层中,包含语义信息的是空间,而不是单个单元。
- 深度神经网络学习的输入-输出映射在很大程度上是相当不连续的。我们可以通过应用某种难以察觉的扰动,使网络的预测误差最大化,从而导致网络对图像进行错误分类。
针对第二点作者还指出,这些扰动的具体性质并不是学习的随机产物:相同的扰动可能导致在数据集的不同子集上训练的不同网络对相同输入进行错误分类。
3、深度神经网络的盲点
神经网络实现了高性能,因为它们可以表达由少量大规模并行非线性步骤组成的任意计算。但是,由于结果计算是通过有监督学习的反向传播自动发现的,它可能很难解释,而且可能具有反直觉的性质(counter-intuitive properties)。
深度神经网络的两个反直觉性质,第一个性质与单个单元(unit)的语义(semantic meaning)有关。以前的研究通过寻找一组最大限度地激活给定单元的输入来分析各个单元的语义。对单个单元的检查隐含了这样一个假设:最后一个特征层的单元构成了一个区分的基础,这对于提取语义信息特别有用。但文中指出表明
ϕ
(
x
)
\phi(x)
ϕ(x) 的随机投影在语义上与
ϕ
(
x
)
\phi(x)
ϕ(x)的坐标不可区分,这就对神经网络在坐标上分离变异因子的猜想提出了质疑。一般来说,似乎是整个激活空间,而不是单个单元,包含了大量的语义信息。
第二个性质是关于神经网络输入的小扰动的稳定性。先进的深度神经网络用于物体识别,我们希望模型对其输入的小扰动具有鲁棒性,因为小扰动不能改变图像的对象类别。 但作者发现对测试图像应用不可察觉的非随机扰动,可以任意改变网络的预测。而被干扰的图像对人类来说是没有差异的。通过优化输入以最大化预测误差来发现这些扰动,被干扰的样本就称为“对抗样本”。
深度学习自诩为特征学习的模型,但是这特征由数据出发进行自主的学习,故而其学习到的特征并不一定就是我们所希望的特征,有一点可以确定的是,其对数据的理解与人的理解有着很大的差异,故而,其学习到的特征,也极有可能并非是人理解事物的特征。
从信息论的角度来看,我们所谓的这些特征不过是信息的一种编码,我们真正需要的是获取信息本质,故而对此也无可厚非,只是这种信息的编码结构不具备人脑中信息编码的结构特性。那么一部分工作就可以作为分析编码的结构特性。
4、对抗性样本
研究指出,对于每张正确分类的图像,都可以生成一个“对抗性”的、视觉上无法区分的图像,并且会被错误分类。 这表明所有神经网络都存在潜在的深层缺陷。
对于下面图像,最左边一列和最右边一列对于肉眼来说,人类凭借大脑无法区分:
对于人眼来说完全相同,但深度神经网络不同。 实际上,深度神经网络只能正确识别左边,而不能识别右边。 在实验中,左列图像均能够被模型正确分类,而右列图像都会被模型识别为“鸵鸟”。这点也说明深度学习模型学到的特征与人脑不同,是反直觉特性之一。
在神经网络的高层中,包含语义信息的是空间(space),而不是单个单元(individual units)。这意味着随机失真的原图也可以被正确分类。
以往的单元级分析法(unit-level inspection methods),是通过把一堆图片丢进去,然后找出同时能够让某一单元激活值最大的图片,再对这些图片进行分析它们的共同特征,然后就认为说这个单元学到了这些特征。文中比较了在 MNIST 上训练的卷积神经网络的自然基(natural basis)和随机基(random basis),使用 ImageNet 数据集作为验证集。
对于自然基础(上图),它将隐藏单元的激活视为一个特征,并寻找使该单个特征的激活值最大化的输入图像。我们可以将这些特征解释为输入域中有意义的变化。 然而,实验表明这种可解释的语义也适用于任何随机方向(下图)。以白花识别为例。 传统上,带有黑色圆圈和扇形白色区域的图像最有可能被归类为白花。 然而,事实证明,如果我们选择一组随机的基础,响应的图像也可以以类似的方式在语义上进行解释。
在实验中,应用某种难以察觉的扰动后,网络可能会对图像进行错误分类。 通过调整像素值以最大化预测误差来发现扰动。
For all the networks we studied (MNIST, QuocNet, AlexNet), for each sample, we always manage to generate very close, visually indistinguishable, adversarial examples that are misclassified by the original network.
对于我们研究的所有网络(MNIST、QuocNet、AlexNet),对于每个样本,我们总是设法生成非常接近的、视觉上无法区分的、被原始网络错误分类的对抗性示例。
下面的例子是(左)正确预测的样本,(右)对抗样本,(中心)它们之间放大10倍的差异。 这两列对人来说是一样的,而对神经网络来说则完全不同。
按理说网络模型应该不受小扰动的影响, 但实验结果并非如此,深度神经网络的连续性和稳定性受到质疑。 平滑假设(smoothness assumption)不再适用于深度神经网络。
更令人惊讶的是,相同的扰动会导致在不同训练数据集上训练的不同网络对同一图像进行错误分类。 这意味着对抗样本在某种程度上具有普遍性。但文中也说尽管对抗性负集集很密集,但概率极低,因此在测试集中很少观察到。
对抗样本的三个特性:
- 对于我们研究的所有网络(MNIST,QuocNet,AlexNet),对于每个样本,作者总是设法生成非常接近的、视觉上难以区分的、但被原始网络错误分类的对抗性示例 。
- 跨模型泛化(Cross model generalization):使用不同超参数从头开始训练的网络会错误分类相对大部分的示例。也就是说,即使模型通过调整超参数重新训练,对抗样本依然有效。
- 跨训练集泛化(Cross training-set generalization):在不相交的训练集上从头开始训练的网络将错误分类相对较大的一部分示例。即同一模型在不同的数据集上训练,对抗样本依然有效。
小结
对抗样本在某种程度上具有普遍性,而不仅仅是过度拟合特定模型或指定训练集的结果。作者证明了深度神经网络在单个单元的语义及其不连续性方面都具有反直觉的特性。
对抗样本的存在似乎与网络的高泛化性能的能力相矛盾。 如果网络可以很好地泛化,它怎么会被这些与常规示例无法区分的对抗样本混淆?
有人也提出人脑也会有类似的缺陷,存在“盲点”,不过并没有得到证实,或者目前没有出现。个人觉得人脑不仅仅学习图像的“特征”,还具备“联想”能力,人看见狗的次数远小于神经网络模型的数据集,但当人再次遇见一只毛发颜色、尾巴、耳朵、以及体格外形都完全不同的狗时,我们依然知道它是一只狗,而不会认为是一只鸵鸟。
笔者公众号:极客随想。主要分享一些网络安全,黑客攻防,渗透测试以及日常操作系统使用技巧相关的知识。欢迎关注。
参考论文:“Intriguing properties of neural networks”