李宏毅机器学习笔记33

目录

摘要

Abstract

[1.adversarial attack概念](#1.adversarial attack概念)

[2.如何做到adversarial attack](#2.如何做到adversarial attack)

[3.Attack approach](#3.Attack approach)

[Fast gradient sign method(FGSM)](#Fast gradient sign method(FGSM))

[4.Black Box attack](#4.Black Box attack)


摘要

本篇文章继续学习李宏毅老师2025春季机器学习课程,学习内容是adversarial attack的相关概念以及进行白盒,黑盒攻击的相关原理及方法。

1.adversarial attack概念

在实际应用中,network不仅仅需要正确率高,还需要能够应付人类故意骗过network的行为。举一个例子,我们有一个影像辨识系统,给他一张照片begin image,可以告诉我们这张照片属于什么类别,下图示例中begin image属于猫的类别。现在我们在照片上加入非常小的杂讯,即一张照片可以看作是一个非常长的向量,我们在向量的每一个维度上加入一点小小的杂讯。加入杂讯的照片(attacked image)一般用肉眼无法辨别,我们期待attacked image丢入network输出不是猫。攻击可以分为两种攻击,一种是无目标攻击,只要让network输出不是猫就算成功。

另一种更困难的攻击是有目标的攻击,此时我们需要network输出不是猫而是别的东西,比如说加入杂讯后希望network输出海星,把猫误判为海星才算成功。在一个50层的ResNet中,输入begin image,输出是tiger cat,信心分数为0.64。在加入杂讯后在让ResNet判断,输出是Star Fish,且信心分数为1。

将两张照片相减并将差距放大50倍会得到下图的结果。

2.如何做到adversarial attack

输入是一张图片X0,network是一个function称为f,输出是一个distribution成为value。假设network参数是固定的,我们要找出无目标攻击的杂讯,需要一张新的图片X,作为输入时它的输出为y,我们希望y与正确答案的差距越大越好。定义一个loss function为L,L是y与正确答案的差距取一个负号,这样得到最小的L就是y与正确答案的差距最大值。如果是有目标的攻击,就不仅需要y与正确答案的差距越大越好,还需要y与目标答案越近越好,此时的L就可以写为y与正确答案的差距的负值与y与目标答案的差距相加。

除此之外还有一个限制,就是X与X0之间的差距要小到人眼无法察觉。如何计算两张图片的差距呢?两张图片都视为一个很长的向量,X与X0相减得到。一种L2-norm是将的每一个数值拿出来取平方在做加法的和作为距离。另一种L-infinity,是取中绝对值最大的数值作为距离。

对于人类的感知来说,我们选择L-infinity更好。举一个例子,下图中的四色方块,一个是四个颜色都做了一点微小的改变,一个是集中改变绿色的小块,他们的L2-norm是相同的,但是集中改变颜色的L-infinity更大,从这个例子中L-infinity更接近人类的感知,更适合做攻击。

3.Attack approach

我们首先要找一个X去minimize loss的值,先去除掉X的限制,这就普通的训练模型没有差别,只是从调整参数变为调整输入(加色参数是固定的),用的一样是gradient descent。初始化的值为X0,之后就和普通的gradient相同,只是gradient不是network的参数,而是输入的图片对loss的gradient,输入的图片视为向量也就是去计算向量X中每一个数值对L的偏微分,然后用gradient去更新image就结束了。

接下来我们将X的限制加入。方法很简单,我们更新完image之后,发现X与X0的差距过大,我们就把X更改为符合限制的Xt。举例来说,如下图中右侧,方框为最大差距,更新完之后处于方框外,将点拉回到方框内即可。

Fast gradient sign method(FGSM)

FGSM是一种最简单的attack的方法,它只更新一次。在g这边做了一个特别的设计,它不直接使用gradient descent的值而是取一个sign,sign()的意思是如果括号内的值小于0就输出-1,括号内的值大于0就输出1,最后得到的效果就是,一定会落在蓝色方框内的四个角落。

4.Black Box attack

知道模型参数的叫做白箱攻击,不知道模型参数的叫做黑箱攻击。黑箱攻击如何实现?假设知道是用什么资料训练的,我们就可以训练一个proxy network去模拟我们要攻击的对象,可以成功攻击proxy network也许就能攻击我们不知到的black network。

如果没有训练资料的情况下,就可以自己输入一堆图片,获得输出,用这些当作训练资料去训练一个proxy network进行攻击。Black Box attack的成功率还是很高的,下图所示的数据中,非对角线的表示黑箱攻击,数据表示模型正确的概率,概率越低表示攻击越成功。在黑箱攻击时,无目标攻击的成功率还是很高的。

另一种攻击方法成功率更高,行代表被攻击的模型,列代表5个模型中被去除的模型,即对角线为黑箱攻击。不难看出,当一个image可以同时骗过多个network时,骗过一个不知道参数的黑箱network也很容易成功。

相关推荐
百万蹄蹄向前冲5 小时前
一张平面图把学校做成2D游戏
前端·人工智能·后端
机器之心5 小时前
突发:Claude自主发现未知生物系统,或能编辑基因
前端·人工智能·后端
小小张说故事5 小时前
pytest 入门指南:Python 自动化测试的标配工具
python·机器学习
犀利豆5 小时前
AI 老板五分钟挂出招聘启事,四个月后开除了第一个人
人工智能·llm·aigc
乱码三千5 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
墨林陌5 小时前
AI 热点日报(2026-09-24):奥尔特曼安理会呼吁建全球AI标准,DeepSeek披露智能体沙箱平台DSec
人工智能
9i编程5 小时前
9. 把 DDD 开源脚手架化为自己的:联调照出的问题与事件重构——租户权限、按钮样式与全局 DomainEvent 反哺 SKILL
人工智能·openai·ai编程
桃西西呀5 小时前
从手写数字到ImageNet冠军:CNN架构20年,为什么越深越难训?
人工智能·计算机视觉·llm
Solara5 小时前
1 条 audit=0 的幽灵记录:我说不清是我删的,还是平台吞的
人工智能·程序员·ai编程
诚小纯5 小时前
同一份稿子在两代模型上差 6.44 倍:语音模型价格对齐的工程拆法
人工智能·github