图像对抗算法(先导篇)
Posted AI之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像对抗算法(先导篇)相关的知识,希望对你有一定的参考价值。
什么是图像对抗算法?图像对抗算法是最近几年比较活跃的研究方向,目前主要的研究集中在图像分类和目标检测领域中,因为在图像分类中的研究比较成熟,因此接下来主要以图像分类为例介绍图像对抗算法。
攻击和防御
图像对抗算法主要包含攻击和防御2部分内容。
攻击表示通过一定的算法在原输入图像上加入攻击噪声得到攻击图像,这个攻击图像能够扰乱分类器的分类,使其分类结果出错。这里面涉及到的最重要内容是攻击图像从人类肉眼看来和原输入图像基本没有区别,这样的攻击才是有意义的,比如下面这幅图的左边是原输入图像,中间是攻击噪声,右边是得到的攻击图像,从肉眼看右边的图像也是一只熊猫,但是分类器却将其误分类成长臂猿。因此攻击任务的难点在于攻击成功率和扰动之间的平衡,一般而言,扰动越大,攻击成功率越高,反之亦然。
防御表示构建足够鲁棒的分类器(防御模型),使其在输入攻击图像时也能够分类正确。防御模型的做法主要有2种,一种是训练更加鲁棒的分类器,这是从分类器本身出发做防御,另一种是对输入的攻击图像做一定的预处理后再传给分类器,目的是尽可能减少攻击噪声。
黑盒攻击和白盒攻击
在攻击算法中涉及到2个概念:黑盒攻击和白盒攻击。
黑盒攻击是指攻击者不知道防御模型的网络结构和参数,在此基础上生成攻击图像进行攻击称之为黑盒攻击。黑盒攻击在现实生活中更常见,因为在很多情况下攻击者并不知道防守模型的内容,因此黑盒攻击更具研究意义,而黑盒攻击的难点在于迁移性,迁移性好的攻击算法能够攻击成功多种防御模型。
白盒攻击是指攻击者能够拿到防御模型,也就是知道防御模型的网络结构和参数,在此基础上生成攻击图像进行攻击称之为白盒攻击(知己知彼)。白盒攻击的成功率可以做到很高,在此基础上只要不断减少扰动,那么就能得到非常棒的攻击效果。这有点像深度学习模型训练可以过拟合训练数据,那么在训练数据上的指标当然可以非常漂亮,但是换一批数据可能效果就下降很明显,因此一般白盒攻击的成功率都要远高于黑盒攻击。
除此之外,还有一种攻击称之为灰盒攻击,主要指知道防守模型采用的是什么网络结构,但是不知道网络参数,在这种情况下生成攻击图像进行攻击称之为灰盒攻击,一般而言这种攻击算法的成功率介于黑盒攻击和白盒攻击之间。
有目标攻击和无目标攻击
攻击算法主要分为有目标攻击和无目标攻击。
有目标攻击是指防御模型将攻击图像分类成目标类别则算攻击成功。一般而言有目标攻击中的目标类别可以指定成防御模型在输入原图像时分类概率最低的那个类别,这种情况是有目标攻击中最难的,相当于攻击图像要欺骗分类模型将其分为原本最不可能分的那个类别。当然, 目标类别还可以指定成防御模型在输入原图像时分类概率仅次于正确类别概率的类别,这种情况是有目标攻击中最简单的。最后,目标类别还可以随机指定,此时难度介于前面二者之间。有目标攻击更加考验模型的迁移能力,至少从目前的研究来看,在有目标攻击的迁移性方面还没有大的突破。
无目标攻击是指防御模型将攻击图像分类成除正确类别以外的其他任何一个类别都算攻击成功。换句话说只要模型分类错误,那么就是无目标攻击成功了。可以看到,其实有目标攻击也是无目标攻击中的一种特例,只不过难度更大,因为一般无目标攻击算法都具备一定的迁移性,而有目标攻击在迁移性方面面临较大挑战。
评价指标
前面我们提到攻击任务的难点是攻击成功率和扰动之间的平衡,因此这就涉及到攻击算法(主要指的就是扰动)的评价指标,这是攻击算法中非常重要的内容。
目前攻击算法的评价指标主要采用Lp距离(一般也称为Lp范数),公式如下,其中vi表示像素点i的像素值修改幅值,n表示像素点个数,v一般通过攻击图像减原图像得到,表示两张图的差值,也就是扰动。
目前常用的Lp距离包括L0、L2和L∞。
L0距离计算的是攻击图像和原图像之间差异像素的数量,也就是原图像中被修改的像素点数量,因为L0范数本身代表的意思也是非零元素的个数,而对于扰动而言,非零则表示该像素点被修改了。可以看到这种评价指标并未涉及扰动的幅度,而是从扰动数量层面做评价。
L2距离计算的是攻击图像和原图像之间差异像素值的欧式距离。
L∞距离计算的是攻击图像和原图像的差异像素值中绝对值最大的值,相当于只在乎扰动幅度最大的值是多少,因此只要像素值的修改幅值在这个限定值之内,那么都是有效的,这是目前攻击领域论文常用的评价指标,且常见的L∞值一般设定为16。
以上是关于图像对抗算法(先导篇)的主要内容,如果未能解决你的问题,请参考以下文章
深度学习攻防对抗(JCAI-19 阿里巴巴人工智能对抗算法竞赛)
逐类击破 leetcode - 算法篇 - 贪心算法 先导篇