机器学习23:对抗攻击(adversarial attack)(上)

摘要

本周课程介绍了对抗攻击(adversarial attack)的基本概念与必要性。对抗攻击旨在测试模型在恶意输入下的鲁棒性,确保其在真实应用中能够抵御人为欺骗,例如在垃圾邮件分类、恶意软件检测等任务中。本文详细讲解了攻击的类型,包括无目标攻击(Non-targeted)和有目标攻击(Targeted),以及攻击的实现方法,如定义损失函数、使用距离度量(如L2范数和L-无穷范数)和优化技术(如梯度下降和快速梯度符号法)。最后,探讨了攻击途径及其在实际应用中的重要性,强调了模型安全性的关键作用。

Abstract

This week's lesson introduces the basic concepts and necessity of adversarial attacks. Adversarial attacks aim to test the robustness of models under malicious inputs, ensuring they can resist human deception in real-world applications, such as in spam filtering and malware detection. This document explains in detail the types of attacks, including non-targeted and targeted attacks, and the implementation methods, such as defining loss functions, using distance metrics (e.g., L2 norm and L-infinity norm), and optimization techniques (e.g., gradient descent and Fast Gradient Sign Method). Finally, it discusses the attack pathways and their importance in practical applications, highlighting the critical role of model security.

一.对抗攻击的必要性

在前面已经了解了很多各种各样的类神经网络,我们也希望可以将这些技术用在真正的应用上。但是仅仅只是将这些技术应用后得到很高的分数是不够的,它们还需要能够应对人类的恶意,就如垃圾邮件分类、恶意软件检测、网络入侵检测等。所以网络在一般情况下都可以得到高的正确率是不够的,还得在有人试图欺骗它的情况下得到高的正确率。

二.如何攻击

1.了解攻击

在了解如何对抗之前,我们先了解是如何攻击的,下面先看看一个真正的例子。

以一个训练好的影像辨识的模型为例,当输入一张图片,正常其可以输出图片中的内容类别。而我们要做的就是在图片中加入一个非常小的杂讯,也就是在这个图片对应的向量中的每个维度加入一个小小的杂讯,这个小的程度是仅凭人的肉眼是发现不了的。

被加杂讯的图片称为攻击图像(Attacked Image),原图称为良性图像(Benign Image),就以一个猫的图片为例。然后将加完杂讯的图片重新输入到影像辨识的模型中,这时我们就希望模型输出的就不是猫,而是其他的东西。

对于攻击其大致上可以分为两种类型无目标(Non-targeted)和有目标(Targeted)。无目标攻击就是原来图片内容是猫,只要让模型输出的不是猫就算是成功。而有目标的攻击就是最后模型输出的不仅不是猫,还要输出别的东西,例如猫加完杂讯后经过模型被判断成海星才算成功。

对于上面说的情况加入一个肉眼分辨不出的杂讯使得network的输出被改变是否存在,这里可以看看有50层的参差网络(ResNet),当将原图输入到这个模型中其输出Tiger Cat并且概率为0.64。现在再对图片加入杂讯,使得结果变成Star Fish,然后将攻击图像输入到参差网络中得到结果为Star Fish并且结果为1。

为了证明这两个图片不一样,将这两个图片进行相减,并把结果方法50倍便得到如图下结果。虽然两个图片看起来一样,但是再参差网络中的结果就是天差地别。

这不是特例,同理也可以通过添加一个杂讯使得这个猫变成键盘,并且概率可以达到0.98。

但是如果加入的只是一般的杂讯,参差网络并不一定会犯错。就如下,加一点一般杂讯模型识别为虎斑猫,再加大一点识别为波斯猫,更大一点就识别为火屏。但是这些攻击通过肉眼还是可以分辨出的。

2.攻击的实现

以下面网络函数为例,输入图片x0输出一个分布并且假定这个network中的参数是固定的。对于无目标攻击我们就要找到一个图片x,当把x输入到network中其输出是y,并且希望y与正确答案y^差距越大越好。如何找到x,这就和之前训练network一样要解一个优化问题,先定义一个损失函数L(x)=-e(y,y^),这个L(x)是y与y^之间差距的负值。从而当使得L(x)越小时其之间的差距就越大。

如果是有目标攻击,则需要设定好我们的目标,这时我们不止希望y与y^之间的差距越远越好,同时也希望y与ytarget之间的差距越近越好。所以其损失函数就写成L(x)=-e(y,y^)+e(y,)。

但是只是找一个x去最小化损失函数是不够的,还要使得加入的杂讯越小越好,也就是说新找到的图片与之间的距离越小越好,同时能够欺骗过network。所有在解优化问题时会多加入一个限制d(,x)<=ε。这个意思就是希望与x之间的差距小于某一个阈值,这个阈值又是根据人的感官决定的。

如何计算与x之间的差距有各种各样的方法,其中∆x表示之间的差值。如L2范数和L-无穷范数,这两个方法计算如下:

虽然计算这个差距的方法有很多,选择哪一种方法来计算这就要将人类的感知考虑进去。对于L2范数和L-无穷范数我们可以看上面的例子。将四个涂有颜色的格子做两种不同的变换,右上角的图就是在原图中对于四个颜色做非常小的改变,而右下角的图片则只是对其中一个颜色进行改变两个图的改变总量是一样的。但是对于L-无穷范数右下角的变换量是最大的,右上角最小。所以L-无穷范数是比较接近人类的感知能力的。

3.攻击途径

现在已经有了明确的优化问题,要做的就是去使得L(x)最小化,但是对于x是有d(,x)<=ε限制的。要解这个问题可以先将d(,x)<=ε限制忽略,这就和之前训练一个模型没有区别,只不过是将在训练时微调的参数换成调整模型的输入,参数固定而已。

用的方法也依然是梯度下降,找到一个初始图像x0后不断去迭代更新输入参数。

这是在没有限制条件下,现在将d(,x)<=ε限制加入,所以在更新完参数后就要检测d(,),若两者之间的差距大于ε就要对于进行修改,改回符合限制要求就可以。就以L-无穷范数为例在中间点,则x可取的范围就是以x0为中点左右距离为ε的正方形。

下面就来了解一个最简单的攻击方法:快速梯度符号法(Fast Gradient Sign Method,FGSM)。它的核心思想是利用模型的梯度信息,仅用一步计算就生成能够误导模型的对抗样本,而不是一次次去更新迭代。

但是g做了特别设计,不采用梯度下降算法中的值而是取一个sign,而sign是当括号中的值大于0则输出1反之输出-1。

所以对于L-无穷范式x最后取值就一定是方框的四个角落。

这一次就可以完成任务,但是我们也知道多攻击几次,多迭代几次结果会更好一点。但是多几次迭代的结果可能就会出界,这就要修改回到范围。

总结

对抗攻击是一种重要的安全测试方法,用于评估模型在面对恶意输入时的鲁棒性。通过添加人眼难以察觉的微小扰动,攻击者可以轻易欺骗训练有素的模型,导致输出错误,这揭示了模型在真实环境中的潜在脆弱性。文件详细阐述了无目标攻击和有目标攻击的区别,以及如何通过定义损失函数和优化问题来实现攻击,其中距离度量(如L-无穷范数)更符合人类感知,而梯度下降和快速梯度符号法(FGSM)等优化技术则提供了高效的攻击途径。与自注意力机制等模型构建技术不同,对抗攻击强调了模型安全性的必要性,提醒我们在追求高准确率的同时,必须考虑模型的防御能力。未来,随着人工智能应用的普及,开发更鲁棒的模型和有效的防御机制将成为关键研究方向,以应对日益复杂的对抗威胁。

相关推荐
yiersansiwu123d14 分钟前
AI伦理治理:在创新与规范之间寻找动态平衡
人工智能
华清远见成都中心34 分钟前
成都理工大学&华清远见成都中心实训,助力电商人才培养
大数据·人工智能·嵌入式
鲨莎分不晴38 分钟前
强化学习第五课 —— A2C & A3C:并行化是如何杀死经验回放
网络·算法·机器学习
爱好读书43 分钟前
AI生成er图/SQL生成er图在线工具
人工智能
CNRio44 分钟前
智能影像:AI视频生成技术的战略布局与产业变革
人工智能
六行神算API-天璇1 小时前
架构思考:大模型作为医疗科研的“智能中间件”
人工智能·中间件·架构·数据挖掘·ar
搞科研的小刘选手1 小时前
【ISSN/ISBN双刊号】第三届电力电子与人工智能国际学术会议(PEAI 2026)
图像处理·人工智能·算法·电力电子·学术会议
wumingxiaoyao1 小时前
AI - 使用 Google ADK 创建你的第一个 AI Agent
人工智能·ai·ai agent·google adk
拉姆哥的小屋1 小时前
从混沌到秩序:条件扩散模型在图像转换中的哲学与技术革命
人工智能·算法·机器学习
Sammyyyyy2 小时前
DeepSeek v3.2 正式发布,对标 GPT-5
开发语言·人工智能·gpt·算法·servbay