您的位置:首页 > 科技 > IT业 > 设计网站建设价格_长春二手房_如何把自己的网站推广出去_网络营销服务商

设计网站建设价格_长春二手房_如何把自己的网站推广出去_网络营销服务商

2025/3/9 7:20:43 来源:https://blog.csdn.net/m0_37970224/article/details/146096198  浏览:    关键词:设计网站建设价格_长春二手房_如何把自己的网站推广出去_网络营销服务商
设计网站建设价格_长春二手房_如何把自己的网站推广出去_网络营销服务商

一、前言

本文章作为学习2023年《李宏毅机器学习课程》的笔记,感谢台湾大学李宏毅教授的课程,respect!!!

二、大纲

  1. 恶意攻击
  2. 攻击方式
  3. 防御方式

三、恶意攻击

AI模型也是会遭受到人类恶意攻击,人工智能也是存在安全性问题,类似于软件层面的一些病毒、后门、劫持情况,当今日人工智能日渐应用广泛的同时,这些安全方面问题不容小觑。

四、攻击方式

常见的两种攻击方式:

  • 无目标的攻击(纯攻击)
    举例而言:
    一张“猫”的图片加入细微噪声(人没啥感觉有变化),但却骗过模型,让模型犯错。

  • 有目标的攻击
    相对的就是加入细微噪声,期望模型犯错,并把“猫”识别成“狗”,带有目的导向。

那怎么攻击呢?换句话说上面所述的细微噪声怎么求呢?

假设输入图片为x,噪音∆x,训练好的模型为F。
图片经过模型F得到的输出值为 y {y} y,图片的真实类别为 y ^ \hat{y} y^,想要骗成 y t a r g e t y^{target} ytarget 类别,于是乎列出方程式如下:

  • Non-targeted
    因为 y = F ( x + Δ x ) y = F(x + \Delta x) y=F(x+Δx),其中因变量未知
    得到 L o s s ( y , y ^ ) = Cross Entropy ( y , y ^ ) Loss(y, \hat{y}) = \text{Cross Entropy}(y, \hat{y}) Loss(y,y^)=Cross Entropy(y,y^)
    要骗过 F F F,也就是说要离真值越远越好,
    因此满足 arg ⁡ max ⁡ L o s s ( y , y ^ ) \arg\max Loss(y, \hat{y}) argmaxLoss(y,y^)
    取个负号, arg ⁡ min ⁡ − L o s s ( y , y ^ ) \arg\min -Loss(y, \hat{y}) argminLoss(y,y^)
    解最值问题,直接用 gradient descent

  • Targeted
    如果用损失函数的表达方式写出来,其他过程一样,增加一项要求与 y target y_{\text{target}} ytarget 类别交叉熵越小越好
    可以得到:
    arg ⁡ min ⁡ [ − L o s s ( y , y ^ ) + L o s s ( y , y target ) ] \arg\min \left[ -Loss(y, \hat{y}) + Loss(y, y_{\text{target}}) \right] argmin[Loss(y,y^)+Loss(y,ytarget)]
    其中 L o s s Loss Loss 都是交叉熵。

下图看起来可能更加直观:
在这里插入图片描述
这就够了?
不,这还是不够,这道题是条件最值问题
自定域x有限制,不能变化超出一定范围,因为你期望你的输入可以混淆视听,期待上图中的 x x x x 0 x^0 x0越接近越好,那如何设定∆x的范围呢?就是自定义,依据是什么,就是人的肉眼。

那怎么求出 x x x x 0 x^0 x0之间的距离呢?有各式各样的办法,常用的方法有:

  • L2-norm(取模长的方法)

d ( x 0 , x ) = ∥ Δ x ∥ 2 d(x^0, x) = \|\Delta x\|_2 d(x0,x)=∥Δx2
= ( Δ x 1 ) 2 + ( Δ x 2 ) 2 + ( Δ x 3 ) 2 … = (\Delta x_1)^2 + (\Delta x_2)^2 + (\Delta x_3)^2 \dots =(Δx1)2+(Δx2)2+(Δx3)2

  • L-infinity(取变化最大的)

d ( x 0 , x ) = ∥ Δ x ∥ ∞ d(x^0, x) = \|\Delta x\|_\infty d(x0,x)=∥Δx

= max ⁡ { ∣ Δ x 1 ∣ , ∣ Δ x 2 ∣ , ∣ Δ x 3 ∣ , … } = \max\{|\Delta x_1|, |\Delta x_2|, |\Delta x_3|, \dots\} =max{∣Δx1,∣Δx2,∣Δx3,}

对比下两种方法:
假设一张图片有4个像素,做两种变换:

  • 方法一:每个像素改一点,从人类角度来看整体不太好辨别出来;
  • 方法二:只改一个像素,右下角绿色部分,从人类角度比较好辨别出来;

以下使用L2-norm,两者有相同的L2,无法区分。
在这里插入图片描述
如果使用L-infinity,因其是使用取最大值的方式,所以更倾向于和人类判断一致。既然是要来骗,那就是要使得L-infinity是小的。
在这里插入图片描述
知道了 ε ε ε是人设的,那如何解:
x ∗ = arg ⁡ min ⁡ d ( x 0 , x ) ≤ ε L ( x ) x^* = \arg\min\limits_{d(x^0, x) \leq \varepsilon} L(x) x=argd(x0,x)εminL(x)
如果是单纯的下列公式:
x ∗ = arg ⁡ min ⁡ L ( x ) x^* = \arg\min\limits L(x) x=argminL(x)
那直接Gradient Decent可解,加上了限制条件 d ( x 0 , x ) ≤ ε d(x^0, x) \leq \varepsilon d(x0,x)ε,那就需要在做梯度下降时候加入限制,如果更新的参数超出 ε ε ε,就固定住即可。如下图所示:

在这里插入图片描述
有一种方法叫做Fast Gradient Sign Method (FGSM),实作层面是什么样的呢?列出gradient decent式子:
x t ← x t − 1 − η g x^t←x^{t−1}−ηg xtxt1ηg
意思就是η就等于ϵ,梯度g再套一层条件函数,如果g大于0输出1,小于零就输出-1,形象的图解如下:
在这里插入图片描述
以上讲的都是事先知道模型架构的攻击,称之为白盒测试,那有没有可能黑盒攻击呢?
答案是可以的。
1、如果我们知道模型所用的训练数据集,那我们就可以自己训练一个模型来做攻击,攻击成功的案例再去攻击目标模型。
在这里插入图片描述
2、如果我们不知道训练集,那就去调用已知的模型,把输入输出成对的资料拿来做训练,得出一个类似的模型进行攻击,找到漏洞再去攻击目标模型看看。

那思考下,为什么攻击这件事情那么容易成功呢?
有人把小丑鱼的图片丢进不同网络里面,发现问题是来源于数据而不是模型选型,举例而言就是数据看得不够多,在某一个面向特征比较薄弱,容易犯错。
比如下图,在深蓝色区域表示能正常识别,超出深蓝色区域就识别错,这些网络横向蓝色区域都是狭窄的,所以横着的方向则是薄弱带。
在这里插入图片描述
还有更狂的做法就是只攻击一个像素(类似于点了死穴),还有通用的攻击(类似于一招鲜吃遍天),当然语音、nlp都可以这么做。

如果找到漏洞,那物理的世界也是会有相应的骚操作(比如用些道具)可以骗过模型。

还有类似于僵尸病毒、开后门的做法。

五、防御方式

防御分主动Proactive和被动Passive

  • 被动防御(Passive)
    1、平滑处理(Smoothing):既然是加噪声,其实也可以认为是在强化某些局部特征,让它看起来不同而已,那就平滑弱化一下。
    2、输入的图片做压缩让其失真。
    3、训练一个generator,让它正常生成照片,不要有噪声。
    4、加入一些随机操作,例如放缩、翻转等
    但是,以上的这些招数只要被敌人发现了,那也是同样能够攻击成功。

  • 主动防御(Proactive)
    其实就是在训练过程做数据增加这件事情,让模型看过更多的负样本,降低出错概率。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com