机器学习攻防|深度学习(李宏毅)(十二)

简介: 机器学习攻防|深度学习(李宏毅)(十二)

李宏毅老师深度学习系列2020


一、研究机器学习模型攻防的动机


我们训练的模型并非只部署在实验室,我们还需要部署到现实世界中。我们希望机器学习模型能够对专门设计来“欺骗”的输入具备一定的鲁棒性,模型光是对噪声具备一定的鲁棒性是不够的。尤其是在垃圾邮件检测、恶意软件入侵、网络入侵检测这些任务上,我们可能会遇到一些专门设计用来骗过机器学习模型的输入,因此研究机器学习模型的攻击和防御的方法是有必要的。


二、攻击模型的方法


  1. 概述

4R{}PN`NFJZ9LP4`294~$RU.png

C(G}F1RTFGUB$SRUFJF@{QB.png

                                          攻击图片分类模型


  1. 损失函数的设计

W25EML4F5NQNM~_D((BNR`A.png


该过程如下图所示:


T6GX49])P~J6`]`$%YZJ]FW.png

                                                      训练


GL)5JFC[B_9}WN`[IKT2N$5.png


①Non-targeted Attack


②Targeted Attack


  • Non-targeted Attack


3_3[8PKXG]QEH}8U)%TK_DT.png

该过程如下图所示:


7I}1FT`PQHK7V4~Q@T3Z[]9.png

                                         Non-targeted Attack


  • Targeted Attack


WB9G$3IP94}SESJ)ZLG(]OG.png


该过程如下图所示:


IN@OB0~V@OM$EL[JGC01~RD.png

                                                Targeted Attack


  • 限制

为了不被发现,我们还需要使得我们找到的8{J23`AL_@_PLS5FNVD4WAV.png满足一定的限制。比如我们希望8{J23`AL_@_PLS5FNVD4WAV.png被识别成“fish”标签,但是找到的图片真的像一只鱼,那我们的攻击的方法就没有意义了。我们的初衷是在猫的图片上加一点噪声,然后该图片肉眼看起来还和原来一样,因此上述无论Non-targeted Attack还是Targeted Attack都要满足以下限制:


[W7QHNBK%LK(}_(V8HTBWEH.png

在实际操作中要使得2B2WZ8OB05G_L0N([S9ZK)1.png尽可能得小,度量标准就是要使得2B2WZ8OB05G_L0N([S9ZK)1.png小到能骗过人类的感知。

接下来举例说明两种度量distance的计算方式,首先定义YGUZI9@%QU54Z{M9%G9@FP3.png

P7@SWVLNUDNGJ4}A0O])]3N.png

可以使用L2-norm和L-infinity两种方式来计算W6XKN3R@(T]T}5H()R1GVWR.png


①L2-norm

M5K@F5U)W3NLUP${ZJ}QKPI.png


②L-infinity


J)4OPZQJ`_T`1$[$~43SO[P.png


对于图像处理来说,使用L-infinity更好一些,可以看以下的例子,一张图片由四个像素组成,我们微调这张图片的像素得到两张与原来的图片具有相同L2-norm距离的图片,如果对应的像素的偏差分布比较均匀的话对于人类的感知来说是看不出差异来的,但是如果这个距离集中在某一个像素上就会有明显的差异。然而使用L-infinity的话就可以避免这个问题,得到的两张图片显然上面的图片L-infinity较小,而下面的L-infinity较大:


S1UE_]AWLQRW}KK$DR3}M`P.png

                                        example


  1. 训练的方法

根据上面的描述训练的过程就是求解一个满足要求的}8F)R3~_~(AK$`~`V`GII0I.png

SP)1{KK{3M{8Q547_MLH@ZT.png

使用梯度下降的方法进行求解,该过程如下:


X{86YO(PT6IM9CSMK}NW368.png


其中:


$P4{H`QKX`YAFF7WT[VK037.png


也就是说如果梯度下降的结果超出了O3Y}@LQMDV%___ZTOKBD]BS.png限制的范围就要找一个范围以内的值来把超出的结果“拉回来”,该过程如下所示:


Z`$4X46KQ)EG_AL8PC26DDT.png

                                                  L2-norm


[))36SG1K6%H1JIK9G5~R%1.png

                                                  L-infinity

要注意L-infinity的方法是S`{_8(PM}KO6G8Y7]{}GK]F.png在哪个维度上超出了范围就把哪个维度“拉回来”。


训练获得的被攻击的图片与原图有微小的差异,肉眼无法察觉,但是如果将其与原图相减再放大50倍就可以看到图片确实被加入了一些噪声,而且被攻击过的图片也被识别成了“star fish”,置信度也非常高:


[XQA]L$8HC]5VMK7OJA~@PD.png

                                            example


  1. 可视化的解释


我们尝试使用直观的方法来解释为什么可以对模型的输入进行攻击。以下图为例,如果我们随机地为输入添加一些噪声,则可能不会使得加噪的输入跑出原来类别的范围:


%20EIZ(M0D)CJQ0_%XHBB5K.png

                                                 随机添加噪声


然而在高维空间中在某些方向上就有可能该类别的范围非常的狭窄,只需要添加特定的噪声就可以使得识别发生错误,从而实现攻击模型的目的:


KF`V4ZDOOUYD7S{9BV}@F90.png

                                             特定方向


  1. 攻击的不同方法


攻击的方法是多种多样的:


FGSM:https://arxiv.org/abs/1412.6572


Basic iterative method:https://arxiv.org/abs/1607.02533


L-BFGS:https://arxiv.org/abs/1312.6199


Deepfool:https://arxiv.org/abs/1511.04599


JSMA:https://arxiv.org/abs/1511.07528


C&W:https://arxiv.org/abs/1608.04644


Elastic net attack:https://arxiv.org/abs/1709.04114


Spatially Transformed:https://arxiv.org/abs/1801.02612


One Pixel Attack:https://arxiv.org/abs/1710.08864


不同的方法主要区别在于使用不同的优化方法和不同的距离度量函数:


GNEUSDCV84)1UTGKA095RLY.png

                                             不同的攻击方法


这里介绍一种典型的方法——Fast Gradient Sign Method (FGSM),这个方法在训练时的更新方法为:


[V5R`NZBL@F)~G%__ZR7TTC.png

这种方法只需要攻击一次(进行一次梯度下降)就可以找到最优的被攻击的输入J1H]W~6}V95SQP6G69LEZBE.png,而且这种方法不在乎梯度的大小,只在乎梯度的方向。该方法的过程如下图所示:


R0FVII6T~65$2P~D84TA@)M.png

                                            FGSM


也可以认为这种方法是学习率非常大的L-infinity方法,因为学习率非常大所以一次梯度下降以后一定会超出S@]H3%)%WT%_M[$A4_P87XU.png限制的范围,所以会被“拉回来”:

%IMJKT97HYKV9Y0ND@DSPCD.png

                                   FGSM


  1. White Box v.s. Black Box


之前的攻击方式都是在知道模型参数的情况下才训练出的被攻击的图片,这种属于White Box Attack,因此是不是只要我们保护好自己的线上模型就可以避免被攻击了呢?事实上不是这样的,因为Black Box Attack是可能的,这是因为被攻击的输入在攻击其他模型时表现出了一定的普适性。


举例来说,如果你拥有你想要攻击的模型的训练资料,只需要用这些训练资料来训练一个自己的Proxy Network,然后攻击这个Proxy Network获得被攻击的输入,然后使用这个输入就可以实现对我们原先想要攻击的模型的攻击。另外,如果没有训练资料的话也可以从模型中获取输入输出对来当做训练资料,然后训练Proxy Network,这种方式也是可以的。这证明了攻击方法的普适性:


LC79T`BQ1[V[E}1C{)9P9UL.png

                                           Proxy Network


下表展示了使用不同的Proxy Network攻击不同的网络模型时模型表现出的正确率,可以看到相同网络结构的模型效果会好一些,同时不同网络模型也会表现出相当不错的攻击效果:


QBLB34)CZ~J1$ATG~]WV74W.png

                                                       不同模型攻击


  1. Universal Adversarial Attack


事实上也可以找到一个普适性的噪声使得这个噪声加到多种图片前面都可以实现攻击的目的,而且这种方法也是可以进行黑盒攻击的,这里列一个reference供参考:


https://arxiv.org/abs/1610.08401


%ENWWJ[RA71$K_N5}H1C9RM.png

                                            通用的攻击


  1. Adversarial Reprogramming


我们也可以攻击一个模型使得这个模型改变其原来的功能,比如在下面的例子中一个图像分类的模型就可以被攻击来使其用来“数方块”,模型被攻击后使得只要为不同数量的方块图片外围添加噪声然后输入到模型中,就可以使得模型输出不同的类别:


_`{81$S(}4U5}CL_19XXSPS.png

                                         Adversarial Reprogramming


  1. 现实生活中的攻击


将被攻击的加噪图片印刷出来也是可以通过摄像机镜头来进行识别的,另外有实验也尝试了将影响分类结果的噪声加在图片的特定部位来达到攻击的目的,比如将噪声集中在一副眼镜上,就可以使得人脸识别的结果发生错误。比如在下图中,上面的人带了有噪声的眼睛然后就被识别成了下面的人:


$J8ONN%Z)L%ZO~5E6D~}XI9.png

                                         噪声眼镜


在寻找这样一副眼镜时需要满足一些限制条件,比如:


①要找到一个普适性的噪声使得任何人戴上眼镜都可以被误识别;


②噪声像素之间的差异不可太大,要保证能够被摄像机捕捉到;


③颜色要可以被打印机打印出来;


④……


同时也有实验尝试了给一些路标贴上一些不太显眼的噪声来让路标被识别错误:


OXI$}GWPGH_VH(3YD5(6S`N.png

                                                 路标噪声


三、防御的方法


可能有人会怀疑模型之所以会被攻击,是因为模型过拟合,但是事实证明权重衰减、dropout和模型集成的方法无法应对被攻击的问题。


在防御的方法中分为被动防御(Passive defense)和主动防御(Proactive defense)。


  1. 被动防御


被动防御的方式是指不修改模型,可以通过在模型前面加一个过滤器(filter),普通的图片通过这个过滤器不会受到影响,但是被攻击的图片通过过滤器会产生小一些的危害。过滤器的作用,举个例子来说,可以对图片进行平滑化处理(Smoothing),可以理解为,被攻击的图片只是在特定方向上被加了噪声,进行平滑化后可以减弱噪声的影响:


MB_M_4OPQ__5P346X%}]T%U.png

                                         filter


以下是普通图片和被攻击的图片经过平滑化后的识别结果:


T`AXIO(VQVWG_T{`T]T@5GC.png

                                                     识别结果


可以尝试使用多个过滤器来进行防御,在下图中使用了多个过滤器,我们先将图片不经过过滤器进行识别得到结果,然后经过多个过滤器进行预测,如果经过过滤器的预测结果与不经过过滤器的结果差很多就认为图片是被攻击过的,该过程如下:


IYBN1RYOH1XY}RU(0CY4}%M.png

                                                      多个filter


另外一种过滤方法是先将图片随机进行缩放,然后再在图片周围随机添加一些阴影,最后随机选择一张图片作为模型输入,这样可以对添加的噪声造成一些影响,从而减少攻击的危害,该过程如下:


R]S7U$`3STIGK4YJX3(0173.png

                                               另一种filter


  1. 主动防御


主动防御相比被动防御就会改变模型的参数,它是通过重新训练模型的方式来使模型本身具备防御攻击的能力,他的精神就是找出漏洞然后补起来。接下来介绍这个方法的流程。首先,我们假设有数据C]@M)39AFY0MHDAUD(YC0)V.png,这个方法的流程如下:


UGX`Z4V)H_EH2V)AONAVS35.png


这类似于用了增加数据(Data Augmentation)的方式来训练模型。这里需要迭代T次的作用在于每次模型被Y0E`7M`5G98~~Y)8Q~6_YGO.png更新以后,模型的参数就变了,就有可能产生新的漏洞,所以需要迭代多次。遗憾的是,如果在训练过程中获得被攻击的输入Y0E`7M`5G98~~Y)8Q~6_YGO.png的方法是Algorithm A,当模型受到来自使用Algorithm B获得的输入攻击时仍然会被攻击成功。


从来都是造矛容易造盾难,相比于攻击的方法,模型防御的方法还有待进一步研究。

相关文章
|
18天前
|
机器学习/深度学习 算法 TensorFlow
机器学习算法简介:从线性回归到深度学习
【5月更文挑战第30天】本文概述了6种基本机器学习算法:线性回归、逻辑回归、决策树、支持向量机、随机森林和深度学习。通过Python示例代码展示了如何使用Scikit-learn、statsmodels、TensorFlow库进行实现。这些算法在不同场景下各有优势,如线性回归处理连续值,逻辑回归用于二分类,决策树适用于规则提取,支持向量机最大化类别间隔,随机森林集成多个决策树提升性能,而深度学习利用神经网络解决复杂模式识别问题。理解并选择合适算法对提升模型效果至关重要。
185 4
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 一文看懂人工智能、机器学习、深度学习是什么、有什么区别!
**摘要:** 了解AI、ML和DL的旅程。AI是模拟人类智能的科学,ML是其分支,让机器从数据中学习。DL是ML的深化,利用多层神经网络处理复杂数据。AI应用广泛,包括医疗诊断、金融服务、自动驾驶等。ML助力个性化推荐和疾病预测。DL推动计算机视觉和自然语言处理的进步。从基础到实践,这些技术正改变我们的生活。想要深入学习,可参考《人工智能:一种现代的方法》和《深度学习》。一起探索智能的乐趣!
12 1
算法金 | 一文看懂人工智能、机器学习、深度学习是什么、有什么区别!
|
4天前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】45. Pytorch迁移学习微调方法实战:使用微调技术进行2分类图片热狗识别模型训练【含源码与数据集】
【从零开始学习深度学习】45. Pytorch迁移学习微调方法实战:使用微调技术进行2分类图片热狗识别模型训练【含源码与数据集】
|
4天前
|
机器学习/深度学习 人工智能 PyTorch
深度学习长文|使用 JAX 进行 AI 模型训练
深度学习长文|使用 JAX 进行 AI 模型训练
12 2
|
5天前
|
机器学习/深度学习 人工智能 PyTorch
PyTorch快速入门与深度学习模型训练
这篇文章是PyTorch的入门指南,介绍了PyTorch作为深度学习框架的基本概念和使用方法。内容包括PyTorch的背景、基础操作如张量创建、运算、自动微分,以及如何构建和训练简单的全连接神经网络模型进行MNIST手写数字识别。通过这篇文章,读者可以快速了解如何在PyTorch中搭建和训练深度学习模型。
19 4
|
7天前
|
机器学习/深度学习 数据采集 TensorFlow
【机器学习】Python与深度学习的完美结合——深度学习在医学影像诊断中的惊人表现
【6月更文挑战第10天】Python和深度学习驱动的医学影像诊断正在革新医疗行业。借助TensorFlow等库,开发人员能轻松构建CNN等模型,自动提取影像特征,提升疾病诊断准确性。已在肿瘤检测等领域取得显著成果,但也面临数据质量和模型解释性等挑战。随着技术进步,深度学习有望在医学影像诊断中发挥更大作用。
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
探索AI的无限可能:从机器学习到深度学习
【5月更文挑战第31天】本文旨在深入探讨人工智能(AI)的核心技术,包括机器学习和深度学习。我们将通过实例和案例研究,揭示这些技术如何改变我们的生活和工作方式。此外,我们还将讨论AI的未来发展趋势,以及它可能带来的挑战和机遇。
|
19天前
|
机器学习/深度学习 数据采集 传感器
深度学习在图像识别中的应用进展构建高效机器学习模型:从数据预处理到模型优化的洞见
【5月更文挑战第29天】 在人工智能领域,深度学习技术已经成为推动图像识别进步的核心动力。随着卷积神经网络(CNN)的不断发展和优化,以及大数据和计算能力的显著提升,图像识别的准确性和效率得到了极大增强。本文将探讨深度学习技术在图像识别领域的最新应用,分析其关键技术创新点,并讨论未来可能的发展趋势。 【5月更文挑战第29天】 在探索数据科学与机器学习的融合艺术中,本文将引导读者穿越数据处理的迷宫,解锁特征工程的秘密,并最终在模型优化的顶峰俯瞰效率与准确性的壮丽景色。我们将通过一系列经过实战验证的技术感悟,展现如何打造一个既健壮又灵敏的机器学习模型。文章不仅聚焦于技术细节,更注重于概念理解与实
|
21天前
|
机器学习/深度学习 人工智能 算法
机器学习和深度学习有啥区别?一看就懂
深度学习与机器学习是相关但不同的概念,深度学习是机器学习的一个分支。机器学习侧重于让计算机在无明确编程情况下学习,包括决策树、SVM等算法;而深度学习主要依赖深层神经网络,如CNN、RNN。机器学习对数据需求较小,广泛应用于各领域;深度学习则需要大量数据,擅长图像和语音处理。机器学习模型可简可繁,计算资源需求较低;深度学习模型复杂,常需GPU支持
22 0
|
1月前
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
120 14