深度学习攻防对抗(JCAI-19 阿里巴巴人工智能对抗算法竞赛)
最近在参加IJCAI-19阿里巴巴人工智能对抗算法竞赛(点击了解),初赛刚刚结束,防御第23名,目标攻击和无目标攻击出了点小问题,成绩不太好都是50多名,由于找不到队友,只好一个人跟一群大佬PK,双拳难敌四手,差点自闭放弃比赛了。由于知道对抗攻击的人很少,于是抽空写篇博客,简单科普一下人工智能与信息安全的交叉前沿研究领域:深度学习攻防对抗。
然后简单介绍一下IJCAI-19 阿里巴巴人工智能对抗算法竞赛
目前,人脸识别、自动驾驶、刷脸支付、抓捕逃犯、美颜直播……人工智能与实体经济深度结合,彻底改变了我们的生活。神经网络和深度学习貌似强大无比,值得信赖。
但是神经网络也有它的缺陷,只要略施小计就能使最先进的深度学习模型指鹿为马,例如:通过细微地改动图片,就可以使神经网络识别出错。
深度学习攻防对抗的历史:
早在2015年,“生成对抗神经网络GAN之父”Ian Goodfellow在ICLR会议上展示了攻击神经网络欺骗成功的案例,在原版大熊猫图片中加入肉眼难以发现的干扰,生成对抗样本。就可以让Google训练的神经网络误认为它99.3%是长臂猿。

2017NIPS对抗样本攻防竞赛案例:阿尔卑斯山图片篡改后被神经网络误判为狗、河豚被误判为螃蟹。对抗样本不仅仅对图片和神经网络适用,对支持向量机、决策树等算法也同样有效。

在2018年,Ian Goodfellow在一篇论文中提出了首个可以欺骗人类的对抗样本。下图左图为猫咪原图,经过对抗样本干扰之后生成右图,对于右图,神经网络和人眼都认为是狗。不仅欺骗了神经网络,还能欺骗人眼。

这就是对机器学习模型的逃逸攻击,它能绕过深度学习的判别并生成欺骗结果。攻击者在原图上构造的修改被称为“对抗样本”。神经网络对抗样本生成与攻防是一个非常有趣且有前景的研究方向。
黑盒攻击与白盒攻击:
白盒攻击是在已经获取机器学习模型内部的所有信息和参数上进行攻击,令损失函数最大,直接计算得到对抗样本;黑盒攻击则是在神经网络结构为黑箱时,仅通过模型的输入和输出,逆推生成对抗样本。
攻击方法:
FGSM(Fast Gradient Sign Method):
Ian Goodfellow等人在年2014提出了一种生成对抗性例子的简单方法FGSM


与L- BFGS等复杂方法相比,该方法简单,计算效率高,但通常成功率较低。采用FGSM的方法,可使ImageNet模型识别错误率大约63%−69%。
I-FGSM(Iterative Fast Gradient Sign Method):
FGSM方法的一种扩展,通过简单的多步迭代FGSM,找到损失函数最大值,每一步迭代的步长会相应减小。


攻击方:
通过生成更具迷惑性的对抗样本,使现有的深度学习模型识别出错。
防御方:
训练更具鲁棒性的模型,使模型练就一双“火眼金睛”,正确识别对抗样本。
对抗训练:
在训练模型的时候就加上对抗样本,相当于让深度学习模型在做一份考试真题,等真正上战场的时候,碰到对抗样本也无所畏惧。
IJCAI-19 阿里巴巴人工智能对抗算法竞赛
比赛主要针对图像分类任务,包括模型攻击与模型防御。采用电商场景的图片识别任务进行攻防对抗。总共会公开110,000左右的商品图片,来自110个商品类目,每个类目大概1000个图片。

本次比赛包括以下三个任务:
- 无目标攻击: 生成对抗样本,使模型识别错误。
- 目标攻击: 生成对抗样本,使模型识别到指定的错误类别。
- 模型防御: 构建能够正确识别对抗样本的模型。
比赛为三组选手互相进行攻防,参赛选手既可以作为攻击方,对图片进行轻微扰动生成对抗样本,使模型识别错误;也可以作为防御方,通过构建一个更加鲁棒的模型,准确识别对抗样本。
关于比赛更多细节暂时不宜公开,比赛仍在进行中。。。
(待比赛结束后更新)
深度学习攻防对抗(JCAI-19 阿里巴巴人工智能对抗算法竞赛)的更多相关文章
- 在浏览器中进行深度学习:TensorFlow.js (八)生成对抗网络 (GAN
Generative Adversarial Network 是深度学习中非常有趣的一种方法.GAN最早源自Ian Goodfellow的这篇论文.LeCun对GAN给出了极高的评价: “There ...
- 《深度学习-改善深层神经网络》-第二周-优化算法-Andrew Ng
目录 1. Mini-batch gradient descent 1.1 算法原理 1.2 进一步理解Mini-batch gradient descent 1.3 TensorFlow中的梯度下降 ...
- 深度学习框架如何自动选择最快的算法?Fast Run 让你收获最好的性能!
作者:王博文 | 旷视 MegEngine 架构师 一.背景 对于深度学习框架来说,网络的训练/推理时间是用户非常看中的.在实际生产条件下,用户设计的 NN 网络是千差万别,即使是同一类数学计算,参数 ...
- 02基于python玩转人工智能最火框架之TensorFlow人工智能&深度学习介绍
人工智能之父麦卡锡给出的定义 构建智能机器,特别是智能计算机程序的科学和工程. 人工智能是一种让计算机程序能够"智能地"思考的方式 思考的模式类似于人类. 什么是智能? 智能的英语 ...
- 人工智能之深度学习-初始环境搭建(安装Anaconda3和TensorFlow2步骤详解)
前言: 本篇文章主要讲解的是在学习人工智能之深度学习时所学到的知识和需要的环境配置(安装Anaconda3和TensorFlow2步骤详解),以及个人的心得体会,汇集成本篇文章,作为自己深度学习的总结 ...
- 深度学习系列 Part (1)
传统机器学习的回顾 近年来,深度学习的概念十分火热,人工智能也由于这一技术的兴起,在近几年吸引了越来越多的关注.我们这里,将结合一些基本的用例,简要的介绍一下这一新的技术. 我们首先需要明确人工智能. ...
- 基于OpenCL的深度学习工具:AMD MLP及其使用详解
基于OpenCL的深度学习工具:AMD MLP及其使用详解 http://www.csdn.net/article/2015-08-05/2825390 发表于2015-08-05 16:33| 59 ...
- Python深度学习读书笔记-1.什么是深度学习
人工智能 什么是人工智能.机器学习与深度学习(见图1-1)?这三者之间有什么关系?
- 深度学习 - DL
雷锋网 - 2016 | 人工智能在深度学习领域的前世今生(原文链接) Deep Learning - DL,深度学习是机器学习的一种. 深度学习最重要的作用:表示学习 深度学习实践的四个关键要素 计 ...
随机推荐
- zabbix cpu监控介绍
一.CPU utilization 使用Zabbix查看CPU利用率,会有下面几个值: CPU idle time:空闲的cpu时间比[简称id]CPU user time:用户态使用的cpu时间比[ ...
- Linux使用yum install 安装程序时,提示“另外一个程序锁定了 yum;等待它退出……”
Linux使用yum install 安装程序时,提示“另外一个程序锁定了 yum:等待它退出……” 原因: yum命令一次只能安装一个软件,所以当你下载安装第二个软件包时,系统进程锁会锁定yum,这 ...
- MySQL字符集不一致导致查询SQL性能问题
今天做了一个MySQL数据库中的SQL优化. 结论是关联字段字符集不同,导致索引不可用. 查询的SQL如下: select `Alias`.`Grade`, `Alias`.`id`, `Alias` ...
- JS中的迭代(数组)
啥子是迭代?可以简单地理解为按顺序访问目标(数组.对象等)中的每一项(其实和遍历概念没什么差别) 数组的迭代被我分为两种: 查找 遍历 查找: 1.indexOf(item,start) 该方法搜索指 ...
- thrift 的required、optional探究
原因 经常使用thrift来编写rpc通信,但是对下面两个问题还是有些疑惑 thrift 的required.optional和不写有什么区别 optional不设置isset的话被传输后值? 实验 ...
- 安装docker-ce与卸载(centos 7)
1.安装依赖 docker依赖于系统的一些必要的工具,可以提前安装. 1 yum install -y yum-utils device-mapper-persistent-data lvm2 2.添 ...
- koa2 使用 async 、await、promise解决异步的问题
koa代码编写上避免了多层的嵌套异步函数调用 async await来解决异步 - async await 需要依赖于promise 三主角: __函数前面 async, 内部才能await,要想aw ...
- CF817E Choosing The Commander
\(\mathtt{CF817E}\) \(\mathcal{Description}\) 有 \(q\) 个操作\((1 \leq q \leq 10^{5})\): 1.加入一个数 \(p_i(1 ...
- java程序中的多线程(转)
为什么会排队等待? 下面的这个简单的 Java 程序完成四项不相关的任务.这样的程序有单个控制线程,控制在这四个任务之间线性地移动.此外,因为所需的资源 ― 打印机.磁盘.数据库和显示屏 -- 由于硬 ...
- Java中的LinkedList