[学习日志]深度学习-李宏毅 对抗模型

对抗模型的意义

必然有人会对现存的模型发起攻击,比如那些发送广告邮件的人会攻击识别垃圾邮件的模型
因此模型需要有一定的能力去应对可能的恶意攻击
内容分为两部分:如何攻击\如何防御

如何攻击

攻击的目的就是在原本正确的模型上,给输入量加入一个人为制造的特殊变量,使得结果发生错误.
问题是如何找到这个认为制造的特殊变量呢?

无目标攻击 - 希望和正确答案越远越好

[学习日志]深度学习-李宏毅 对抗模型_第1张图片
攻击和训练的区别在于,训练的时候x是固定的θ是更新改变的,攻击的时候x是更新改变的θ是固定的

有目标攻击 - 希望离正确越远且离错误答案越近越好

在这里插入图片描述

攻击的前提:找到的扰动增量越小越好

"扰动距离"的定义

[学习日志]深度学习-李宏毅 对抗模型_第2张图片
L2方法并不太好,原因见下图
[学习日志]深度学习-李宏毅 对抗模型_第3张图片
图中两种改变方式:1.四种颜色都改一点 2.只改了绿色
从肉眼来说,方法二是不太精明的攻击,然而L2算法却认为这两个是相同程度的攻击

如何进行优化计算

[学习日志]深度学习-李宏毅 对抗模型_第4张图片
同样是使用梯度下降方法,只不过求梯度对象由θ变为x
但是在更新的过程中,每次更新完成后要进行一次检查,如果x’与x的距离过远,需要进行一次修正

如何做距离修正

[学习日志]深度学习-李宏毅 对抗模型_第5张图片
在所有的符合距离约束的x中,选择一个与当前不符合距离约束的x’最近的,作为修正值

攻击的原理

[学习日志]深度学习-李宏毅 对抗模型_第6张图片
上半部分是人类直觉上在某一维输入上结果的变化曲线,当然是对的
但是在255^3个维度上,并不是所有维度都是这样的,有某些维度是下图这样
那么在这个维度上的微小改变,会对结果造成巨大影响

FGSM 一种简单的经典攻击方法

[学习日志]深度学习-李宏毅 对抗模型_第7张图片
如果梯度是正数,就取+1;如果梯度是负数,就取-1.
也就是说,FGSM类似梯度下降,只不过不在乎梯度的大小,只在乎梯度的方向
他的思想就是沿着梯度的反方向,一直走到尽头,也就完成了梯度下降

黑盒攻击

如果不知道网络结构,那么可以利用这样一条特性去进行攻击
使用相同训练数据进行训练的模型往往有相同的弱点(尽管结构不同)

防御

[学习日志]深度学习-李宏毅 对抗模型_第8张图片
比如提前做一些处理,加个锐化滤镜啥的

[学习日志]深度学习-李宏毅 对抗模型_第9张图片
或者再加一些随机噪音(这个应该会对结果造成影响)
有点以毒攻毒的味道

[学习日志]深度学习-李宏毅 对抗模型_第10张图片
或者再训练的时候就进行查错,把可能的攻击放进到训练集里
有点像做验算或做错题集

你可能感兴趣的:(深度学习)