当前位置: 首页 > 编程日记 > 正文

阿里安全新研究:给图片打“马赛克”就能骗过 AI 视觉系统

图片

阿里安全人工智能 AAIG 实验室等机构的研究者提出了一个新的机制来生成对抗样本,即与增加对抗扰动相反,他们通过扔掉一些不可察觉的图像细节来生成对抗样本。这项研究成果已被 AI 顶会 ICCV 2021 收录。

不久前,某知名品牌汽车被曝其自动驾驶系统无法识别白色货车箱体这样类似于“一堵墙”的障碍物。在自动驾驶中,行人、车辆被漏检或者未能及时被检测到,都可能导致交通事故的产生。此外,安防漏检危险人物与物品也可能导致安全隐患。这些风险都提示,AI视觉的安全性值得重视。

在研究AI视觉稳定性的过程中,阿里安全图灵实验室的研究人员札奇发现,AI视觉还有一个盲区:利用算法自动鉴别图片关键信息,并巧妙删除,就像给图片“打码”一样,AI视觉系统就会无法识别该图片。

札奇的研究源于逛商场看到乐高玩具迸发的灵感,当时,她有一个疑问:“人眼如何识别‘马赛克’式样的玩具?还有早期的超级马里奥,虽然只是由几个简单像素组成,人却可以正确识别这种抽象的表达。但相反的,如果从对抗样本的角度来考虑:去掉图片中一些对模型来说关键而微小的特征,模型有没有可能就无法再正确识别这些图片?

图片

图1:乐高与像素马里奥

什么是对抗样本?

对抗样本一开始由 Szegedy 等人在 2013 年定义:给定一张原始图片x及其标签y,以及模型

。对抗样本是指在原图x上加一些刻意制造的微小的扰动,从而让结果图像无法被正确识别(如下图所示)。通常来说,对抗扰动被限制在一定阈值内, 定义为

,从而保证结果图对人来说与原图几乎不可区分。后续有很多相关工作在当前设定下进一步探索了更多生成对抗样本的攻击方式,以及其他性质,例如迁移性等。

图片

图2:对抗攻击

对抗样本可能是特征

在对抗样本提出后,有各种各样的防御工作提出,其中尤其是对抗训练最为有效的防御方式之一,但是对抗训练有非常明显的问题是:在稳健性(robustness)和准确率(accuracy)之间始终有一个平衡,即对抗训练提升模型稳健型的同时也导致的模型的准确率下降。为了解释这一现象,Ilyas等人给对抗样本的存在提出了一个假设:对抗样本不是 bug ,而是一组对人来说不可感知的特征。以人类感知为中心,人类所能察觉的特征就是 robust feature ,其他的特征则是 non-robust 。例如图3的狗狗,人类只会注意到其中的耳朵鼻子等显著特征(robust feature)。

图片

图3:鲁棒特征与非鲁棒特征

Ilyas 等人通过一组巧妙的实验说明对抗样本其实是模型从数据中学习到一部分特征,尽管对人来说不可感知,但是对于模型来说是具有预测意义的。受 Ilyas 等人 工作启发,试图从一个相反的角度来讨论一个潜在的攻击机制:可否去掉一些对人来说微小而不可感知但是对于模型决策又重要的特征,从而形成对抗样本呢?

AdvDrop,  通过丢信息来制造对抗样本

图片

图4:左侧AdvDrop,信息丢失越来越多,右侧 PGD,对抗噪声越来越大

该研究在这个工作中提出一个新的机制来生成对抗样本:与增加对抗扰动相反,通过扔掉一些不可察觉的图像细节来生成对抗样本。关于两种相反机制的说明如图,当AdvDrop放宽丢掉的信息量的阈值epsilon,产生的对抗样本越来越趋近于一张灰色图片,伴随着图像存储量的降低。而相反的,PGD生成的对抗样本,随着干扰幅度的增大,越来越接近于无序噪音。

一张更细节的对比图5所示, 从局部区域来看,PGD在图片的局部生成了更多的细节,表现为更丰富的色彩。而相反的,AdvDrop生成的对抗样本与原图相比失去了一些局部细节,表现在色彩精度的降低。

图片

图5:PGD与AdvDrop 局部色彩丰富度

3.1 方法

但是该如何选择区域去丢图片的信息呢?以及如何保证扔掉的细节对人来说依然是不可感知的呢?

来阿里安全人工智能治理与可持续发展实验室(AAIG)等机构的研究者提出一种通过优化量化表的方式来选择丢掉信息的区域以及丢掉的信息量。此外, 为了保证丢掉的细节对于人来说依然不可感知,先将图像通过离散傅里叶变换从RGB转换到频域,再用量化表去量化一些频域的信息。频域操作相比于RGB的优点是,能更好的分离图像的细节信息(高频信息)和结构信息(低频信息),因此可以保证扔掉的细节对人来说不可感知。

图片

图6:AdvDrop 算法流程

整个流程如图6所示,从优化上,可以被定义为:

图片

其中 D 和

图片

分别表示的是离散余弦变环及反变换,

图片

表示的是一个可微分的量化过程。

通常的量化,可以定义为:

图片

但是因为量化函数不可微分,极大影响优化过程。因此,参考了 Gong 等人的工作,通过引入可控 tanh 函数来渐进的逼近阶梯式的量化函数,所以:

其斜度可以由 α调整,如下图所示,经过量化函数可微处理,可以更准确的反向传播梯度从而更准确的估计出应该丢失信息的位置及量化的大小。

图7:不同alpha 下tanh函数对量化函数的逼近层度

3.2 结果评估

该研究用 lpips 比较了 AdvDrop 及 PGD 在相同信息量变化下的视觉得分: 从对抗样本的不可感知角度来说,在同样的感知得分下,丢信息操作允许操作的信息量要比加干扰允许的更大。从人类视觉上来说,相比于加噪,人眼对于局部平滑其实更为不敏感,从图8可见,随着量化表阈值的增大,AdvDrop 生成的对抗样本的局部细节越少,例如蜥蜴鳞片的纹理。

图8:不同预知下的攻击结果展示

从成功率上来说,无论是在目标攻击还是无目标攻击的设定下, AdvDrop 有相当高的成功率来生成一个对抗样本。在目标攻击下,最高可以达到一个 99.95% 成功率。但相比于传统加噪的对抗攻击生成方式 (例如PGD,BIM) 可以轻易达到 100% 的成功率来说,依然是强度较弱的。该研究认为 AdvDrop 强度方面的局限可能来自于两方面:一方面是由于量化这样的方式,另一方面,“减信息”可以操作的空间相比于“加信息”的空间来说要小很多。

图片

该研究也评估了 AdvDrop 在不同防御下的表现。目前主流防御方式主要分为两种,一种是对抗训练 ,另一种是基于去噪的防御方式。发现 AdvDrop 生成的对抗样本对于现阶段防御方式来说仍是一个挑战,尤其是基于去噪的防御方式。

图片

具体来说,在一定扰动阈值下,基于制造对抗扰动的对抗样本生成方式经过去噪后,图片有很大概率恢复成原始图片。但是对于用 AdvDrop 生成的 对抗样本来说,其本身就是由于部分特征丢失而导致的错误识别,而去噪操作甚至会加剧这种由于丢失而无法识别的问题。

图片

图9:AdvDrop和PGD在Denoise操作下的细节展示

除了防御的角度,考虑到很多数据都是从网上收集而来,而网络传输中往往存在数据压缩过程,所以通过 AdvDrop 生成的对抗样本可能“更耐传输”。当然,另一个角度来想,也有可能对于正常图像数据来说,一些正常的数据压缩(例如jpeg)也许不经意间就引入了对抗样本。

讨论及总结

该研究提出了一个新的生成对抗样本的机制,讨论了与之前加噪方式相反的一个角度来生成对抗样本。这一类型的对抗样本相比于传统加干扰生成的对抗样本来说,更难以防御。

该工作也展示了模型另一个角度的局限性:对重要细节丢失的稳健性。

在这个工作中,研究人员仅仅探索了在频域上丢信息的操作,通过其他丢信息方式来生成对抗样本都是可以值得尝试的未来工作。

Benchmark

AI 模型的对抗攻防是一个相互相互博弈的过程,模型的对抗攻击与防御层出不穷,以上提出的攻击算法也仅仅是一种攻击形态。为了更加客观、公平地衡量AI模型的鲁棒性, 清华大学,阿里安全,瑞莱智慧联合发布的业内最新的基于深度学习模型的对抗攻防基准平台 Adversarial Robustness Benchmark,此次推出 AI 对抗安全基准基本上包括了目前主流的AI对抗攻防模型,涵盖了数十种典型的攻防算法。不同算法比测的过程中尽量采用了相同的实验设定和一致的度量标准,从而在最大限度上保证了比较的公平性和客观性。

地址:https://ml.cs.tsinghua.edu.cn/adv-bench/#/

图片

图10:Adversarial Robustness Benchmark

相关文章:

Ubuntu下安装Apache+PHP+Mysql

Ubuntu下安装 apachephpmysql文本服务器! -------------------------------------------------------------------------------- 版本一 Install SSH Client and Server (for my remote access):sudo apt-get install ssh Install Database Server:sudo apt-…

2015香港书展

去年错过了书展,今年早早提醒自己不要错过。10点前我就到了会展中心,排队等待入场,依旧是那么多人,不过多数是年轻学生。在去的路上,没有看到13年那么多的反GCD或者反CY的宣传。 浦一进场,我便在门口张望了…

Firefox下http协议监测工具LiveHttpHeaders

当我们测试Web应用程序的安全性的时候,经常需要对HTTP流量进行分析和动态修改。此外,取得对Web 应用程序流出和流入的数据的控制权不仅对Web 应用程序安全缺陷的发现和漏洞的利用等安全测试任务具有很大的帮助,而且还有利于常规的Web 应用程序…

中国AI已进入迷茫阶段!从技术到科学,AI该何去何从?

作者:金榕,阿里巴巴达摩院副院长、原密歇根州立大学终身教授引言如果从达特茅斯会议起算,AI已经走过65年历程,尤其是近些年深度学习兴起后,AI迎来了空前未有的繁荣。不过,最近两年中国AI热潮似乎有所回落&a…

Libgdx学习笔记:Simple text input

2019独角兽企业重金招聘Python工程师标准>>> 官方Wiki:https://github.com/libgdx/libgdx/wiki/Simple-text-input 实现接口TextInputListener public class MyTextInputListener implements TextInputListener { Overridepublic void input (String …

CentOS7系统下修改网卡为eth0

一、编辑网卡信息 123456789101112131415[rootlinux-node2~]# cd /etc/sysconfig/network-scripts/ #进入网卡目录 [rootlinux-node2network-scripts]# mv ifcfg-eno16777728 ifcfg-eth0 #重命名网卡名称 [rootlinux-node2network-scripts]# cat ifcfg-eth0 #编辑网卡信息 T…

squid,nginx,lighttpd反向代理的区别

反向代理从传输上分可以分为2种: 1:同步模式(apache-mod_proxy和squid) 2:异步模式(lighttpd 和 nginx) 在nginx的文档说明中,提到了异步传输模式并提到它可以减少后端连接数和压力,这是为何? 下面就来讲…

Unix_Linux系统定时器的应用(案例)

2014-05-05 Created By BaoXinjian 一、摘要 关于任务定时的命令crontab,在Linux中应用还算常见,这次为了配合开发完成一些辅助功能,以及一些备份更新等脚本,就需要crontab来完成,在windows下也就是一个批处理&#xf…

SDN 网络技术创新探索 | 移动云 TeaTalk 线上直播 倒计时启动中

在企业数字化转型、云服务和国家政策等多种因素驱动下,越来越多的企业、行业和政府机关将业务迁移到云上,随着移动云的快速发展,在“多系统、多场景、多业务”需求下,对网络提供差异化的服务能力提出了更高的要求。大规模数据中心…

学习Spring中遇到关于BeanFactory及测试类的问题

最近在学习Spring,使用的是Spring 5.0.1 学习书本中使用的是4.0 学习书本中使用以下来加载配置文件及设置 Resource resource new ClassPathResource("applicationContext.xml"); //加载配置文件 BeanFactory factory new XmlBeanFactory(resource); St…

[Java基础] Java如何实现条件编译

条件编译绝对是一个好东西。如在C或CPP中,可以通过预处理语句来实现条件编译。但是在JAVA中却没有预处理,宏定义这些东西,而有时在一些项目中,我们又需要条件编译。那么,在JAVA中,该如何实现条件编译呢&…

深度学习上的又一重点发现——利用MSCNN实现人群密度监测

作者|李秋键 出品|AI科技大本营(ID:rgznai100) 人群密度计数是指估计图像或视频中人群的数量、密度或分布,它是智能视频监控分析领域的关键问题和研究热点,也是后续行为分析、拥塞分析、异常检测和事件检测等高级视频处理任务的基础。随着城市化进程的…

nginx和squid配合搭建的web服务器前端系统

两种前端架构: lvs -> nginx前端代理 -> squid缓存lvs -> squid前端缓存 -> nginx中层代理squid在前面的优点: Squid作纯代理比较稳当前端少一级代理,响应速度会快,出问题的可能性要小功能有限,不会常被调…

聊聊jesque的几个dao

为什么80%的码农都做不了架构师?>>> 序 本文主要聊一下jesque的几个dao dao列表 FailureDAOKeysDAOQueueInfoDAOWorkerInfoDAOFailureDAO jesque-2.1.0-sources.jar!/net/greghaines/jesque/meta/dao/FailureDAO.java /*** FailureDAO provides access …

Proxy与NAT有什么区别

在internet共享上网技术上,一般有两种方式,一种是proxy代理型,一种是NAT网关型,关于两者的区别与原理,身边很多人都不是很明白,下面我来讲讲我的理解,如有不对的,欢迎指正.1.先说应用例子:服务器端,用wingate就是Proxy,用sygate就是NAT客户端,需要在IE中设置代理服务器的就是用…

【转】ubuntu 12.04 下 Vim 插件 YouCompleteMe 的安装

原文网址:http://www.cnblogs.com/jostree/p/4137402.html 作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4137402.html 1.需要保证vim的版本大于7.3.584,否则的话需要更新vim 可以通过第三方源更新: 在终端输入…

「倒计时」2021年移动云 API 应用创新开发大赛,你居然还没报名?!

移动云API应用创新开发大赛自成立举办以来,因赛事覆盖广、规模大、奖励高等、吸引了移动、企业、高校各赛道选手踊跃报名。目前活动火爆呈现白热化状态,截至目前为止,累计报名600人。现距离大赛报名截止仅剩5天!!&…

snort源码的详细分析

前段时间由于工作关系,对snort入侵检测系统进行了仔细的研究,起初基本都是通过网上找的资料,对于snort系统的应用,原理,架构,配置,源码机构网上都可以找到比较详细的资料,我自己用vs…

TCP/IP四层模型和OSI七层模型

TCP/IP四层模型和OSI七层模型对应表。我们把OSI七层网络模型和Linux TCP/IP四层概念模型对应,然后将各种网络协议归类。 表1-1 TCP/IP四层模型和OSI七层模型对应表 OSI七层网络模型 Linux TCP/IP四层概念模型 对应网络协议 应用层(Application&am…

强化学习环境库 Gym 发布首个社区发布版,全面兼容 Python 3.9

作者:肖智清 来源:AI科技大本营 强化学习环境库Gym于2021年8月中旬迎来了首个社区志愿者维护的发布版Gym 0.19。该版本全面兼容Python 3.9,增加了多个新特性。 强化学习环境库的事实标准Gym迎来首个社区发布版 Gym库在强化学习领域可以说是…

SCOM电子书

SCOM电子书介绍转载于:https://blog.51cto.com/286722/1599625

京东二面的几个问题

1. tcp 连接的最大数量,tcp 用什么来标识 2. 多线程时如何避免互斥 3. protected 关键字 4. 动态库和静态库 5. 线程池 6.多继承时的虚表 网络编程需要加强转载于:https://www.cnblogs.com/simplepaul/p/7865777.html

服务器集群负载均衡(F5,LVS,DNS,CDN)区别以及选型

服务器集群负载均衡(F5,LVS,DNS,CDN)区别以及选型 下面是“黑夜路人”的《大型网站架构优化(PHP)与相关开源软件使用建议》 F5全称: F5-BIG-IP-GTM 全球流量管理器. 是一家叫F5 Networks的公司开发的四~七层交换机,软硬件捆绑. 据说最初用BSD系统,现在是…

linux下SVN不允许空白日志提交

在svn服务端通过hooks在提交时强制要求写日志。1. 在hooks目录里,复制文件pre-commit.tmpl到pre-commit2. 修改pre-commit文件,如下。#!/bin/shREPOS"$1"TXN"$2"SVNLOOK/usr/bin/svnlook #根据你的SVN目录而定LOGMSG$SVNLOOK log -t…

没有熙熙攘攘,百度VR在世界大会的一场奇妙之旅

你可听过玄奘西行的故事?没有猴子和女儿国,也没有鬼怪和妖魔,在那个故事里有的只是人心的善恶和风雨的折磨。相传,在玄奘走到楼兰时,曾被官兵追捕,他机缘巧合才悄悄逃出大狱。那茫茫大漠里,为避…

Ubuntu下搭建postgresql主从服务器(方法1)

Ubuntu下搭建postgresql主从服务器(方法1) 安装略 postgresql主服务器: $ vi /etc/postgresql/9.1/main/postgresql.conf 按a或i进入编辑模式 listen_addresses ‘*’ (默认为注释的,此处不改从postgresql同步时会报…

利用集群技术实现Web服务器的负载均衡

集群(Cluster)所谓集群是指一组独立的计算机系统构成的一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。 负载均衡(Load Balance)网络的负载均衡是一种动态均衡技术&#xf…

AI EARTH再立功,达摩院包揽遥感AI领域三项冠军

人类赖以生存的地球表面积大约为5.1亿平方公里,而陆地面积仅占29.2%,这些土地历经数十亿年的演变及人类生活的改造,又被分割成耕地、森林、草地、水域及建筑等等,现在,AI正在成为管理陆地资源的新途径。 8月27日&#…

node.js写一个json服务

待续转载于:https://www.cnblogs.com/progfun/p/4212099.html

试过不用循环语句撸代码吗?

译者按: 通过使用数组的reduce、filter以及map方法来避免循环语句。 原文: Coding Tip: Try to Code Without Loops 译者: Fundebug 为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。 在前一篇博…