- Attack ML Models
- Deffense
- Adversarial Attack
十五、Attack and Defense
Attack
1、什么是攻击
想做什么样的攻击?
举例:现有一个影响侦测的模型,原本它的功能是输入一张图片,它就能告诉你这张图片里面是什么样的东西:
我们现在做这样的事情:把图片上加上一些杂讯,这些杂讯不是随机生成的杂讯,加上这些杂讯就能得到稍微有点不一样的图片,把这个稍微有点不一样的图片丢到network里面,network就能得到非常不一样的结果:
2、Loss Function for Attack
怎么找出特别的杂讯呢?
一般的network f θ f_\theta fθ,现在input一张image x 0 x^0 x0,通过 f θ f_\theta fθ会得到 y 0 y^0 y0,这个输出的 y 0 y^0 y0跟正确的答案 y t r u e y^{true} ytrue越接近越好,你会minimize这个 y 0 y^0 y0和 y t r u e y^{true} ytrue的距离,即cross entropy。
现在要对这个network进行攻击:
(1)Non-targeted Attack(没有目标的攻击):我们要找另外一张新的图片 x ′ x' x′(还不知道它长什么样子),把它丢到 f θ f_\theta fθ里面,output y ′ y' y′,接下来我们希望这个 y ′ y' y′和 y t r u e y^{true} ytrue的距离越远越好:
攻击和训练有本质上的不同,在训练时,我们的输入是固定的,我们调整的是network的参数 θ \theta θ;但是在攻击时,参数 θ \theta θ是固定的,network已经训练好了,不会去动它,要做的事情是找一张输入的图片,让它得到的答案越错越好。
(2)Targeted Attack(有目标的攻击):希望output y ′ y' y′不仅是离正确答案越远越好,同时希望它跟一个错误的答案距离越近越好,但是会有一个额外的限制–你找出的image x ′ x' x′与 x 0 x^0 x0越接近越好:
Constraint中的 ε \varepsilon ε怎么定义?
用 Δ x \Delta x Δx表示 x ′ x' x′和 x 0 x^0 x0之间的差异:
(1)L2-norm:
(2)L-infinity:
为什么L-infinity是一个比较适合的distance,在影像的攻击上面?
举例:假设有一张图片,这个图片只有4个pixel,这4个pixel拉成一个vector时是一个12维的vector,因为每个pixel得用RGB三个颜色来表示,现在把这个图片的每一个维度都加上一点点变化,产生一张新的图片,但是因为这个变化非常小所以看不出这两张图片有什么样的差异;另外一个改变是说把右下角的pixel的颜色改变,而且变的比较多。
如果现在使用L2-norm比较用以上两种方式改变的图片分别与原图之间的distance,算出来是一样的。
如果是用L-infinity,可以看出两个向量之间最大差距有多大,上面的图片对原图的L-infinity是比较小的,下面的是比较大的。
3、如何去attack
以上定义了 Loss Function L L L,distance d d d,我们要找一个 x ′ x' x′可以让 L ( x ′ ) L(x') L(x′)的值越小越好,同时这个 x ′ x' x′有一个限制:它跟 x 0 x^0 x0的差距不可以太大,这里写作 x ∗ x^\ast x∗:
怎么找