【AI安全之对抗样本】入门知识
文章目录
- 00 前言
- 01 深度学习脆弱性
- 1.1 偷取模型
- 1.2 数据投毒
- 02 对抗样本(adversarial examples)
- 2.1 对抗样本定义
- 2.2 对抗样本原理
- 2.3 针对图像分类模型的对抗样本示例
- 2.4 对抗样本按照攻击后的效果分类
- 2.5 对抗样本按照攻击成本分类
- 03 常见检测和加固方法
- 3.1 攻击方法(脆弱性检测)
- 3.2 防御方法(脆弱性加固)
- 04 总结
00 前言
【我的AI安全之路】以下内容适合于有web安全基础但对AI"一无所知"的师傅们
如果是有安全基础,想入门AI安全,可以看下以web安全为背景介绍AI安全的书:《Web安全之机器学习入门》和《Web安全之深度学习实战》,以及一本关于对抗样本的书:《AI安全之对抗样本入门》
01 深度学习脆弱性
1.1 偷取模型
根据深度学习模型对外提供服务的形式进行分类
①云模式的API:通过遍历算法,在调用云模式的API后,可以在本地还原出一个与原始模式功能相同的模型。
【补充知识】
云API(官方定义):指开发者可以使用云应用编程接口编码,而这个接口具备一项云提供商的服务。但是同时对于云应用也是危险的,因为API也具备受攻击的一面,可能危害敏感业务数据。这意味着提供商和软件开发者需要按优先次序确定云API的安全。
关于云API的安全防御问题:
开发者应该使用无会话安全实践,别不HTTP认证,基于口令的认证或者Web服务安全。无会话安全也促进了更好地云服务可扩展性,因为任何服务器都可以处理用户请求,而且无需在它们之间共享会话。
开发者应该确定是否一个API执行了第二次安全检查,比如用户是否有合适的授权去查看、编辑或者删除服务和数据。一旦最初的认证是清晰的,开发者通常忽略了第二次的安全策略。
云提供商和开发者应该针对常见威胁测试云API安全,比如注入式攻击和跨站伪造。对于云服务提供商正在创建的API,测试尤为重要。然而,用户应该独立的核实云API安全,因为其对于审计和法规遵从非常重要。
如果加密密钥是API调用访问和认证方法论的一部分,就要安全地存储密钥,而且永远不要将其编码到一个文件或者脚本里面。
②私有部署到用户的移动设备或数据中心的服务器上:通过逆向等传统安全技术,把模型文件直接还原。(eg:通过调用AI SDK 的API还原模型文件)
1.2 数据投毒
数据投毒:指向深度学习的训练样本中加入异常数据,导致模型在遇到某些条件是会产生分类错误。
攻击方式
①通过在离线数据中添加精心构造的异常数据进行攻击,这一方式需要接触到模型的训练数据,但是攻击者半已接触到训练数据,攻击难以发生。
②利用在线数据(典型的场景:推荐系统),通过一定的算法策略,发起访问行为,最终导致系统产生错误。
02 对抗样本(adversarial examples)
2.1 对抗样本定义
在数据集中通过故意添加细微的干扰所形成的输入样本,这种样本导致模型以高置信度给出一个错误的输出。简单地讲,通过在原始数据上叠加精心构造的人类难以察觉得扰动,使深度学习模型产生分类错误。
【补充知识】
机器学习的本质是对条件概率或概率分布的估计。
所以机器学习会涉及到统计学中的置信区间和置信度等机器学习常用指标,这些概念有助于我们从直观上理解评价估计优劣的度量方法。这里有两篇文章解释了这些概念:关于置信区间和置信度的理解、机器学习常用指标。
2.2 对抗样本原理
以经典的二分类问题为例,机器学习模型通过在样本上训练,学习出一个分割平面,在分割平面的一侧的点都被识别为类别一,在分割平面的另外一侧的点都被识别为类别二。
生成攻击样本时,我们通过某种算法,针对指定的样本计算出一个变化量,该样本经过修改后,从人类的感觉无法辨识,但是却可以让该样本跨越分割平面,导致机器学习模型的判定结果改变。
2.3 针对图像分类模型的对抗样本示例
通过在原始图像上添加扰动,对肉眼来说看似还是一只熊猫,但是分类模型会以很大的概率识别为长臂猿。
2.4 对抗样本按照攻击后的效果分类
定性攻击(Targeted Attack)
在攻击前会设置攻击目标,攻击后的效果是确定的
无定向攻击(Non-Targeted Attack)
不设置攻击目标,只要攻击后的目标发生改变即可
2.5 对抗样本按照攻击成本分类
白盒攻击(White-Box Attack)
攻击难度低;前提是能够完整获取模型的结构,包括模型的组成以及隔层的参数情况,并且可以完整控制模型的输入,对输入的控制粒度甚至可以到比特级别。
黑盒攻击(Black-Box Attack)
攻击难度大;完全把被攻击模型当成黑盒,对模型的结构没有了解,只能控制输入,通过比对输入和输出的反馈来进行下一步攻击
真实世界/物理攻击(Real-World attack/Physical Attack)
难度最大;不了解结构,且对输入的控制很弱。
03 常见检测和加固方法
3.1 攻击方法(脆弱性检测)
白盒攻击算法列举:
最相似迭代算法(ILCM)
快速梯度算法(FGSM)
基础迭代算法(BIM)
显著图攻击算法(JSMA)
DeepFool算法
C/W算法
黑盒攻击方法列举:
单像素攻击(Single Pixel Attack)
本地搜索攻击(Local Search Attack)
3.2 防御方法(脆弱性加固)
加固的常见方法:
特征凝结(Feature squeezing)
空间平滑(Spatial smoothing)
标签平滑(Label smoothing)
对抗训练(Adversarial training)
虚拟对抗训练(Virtual adversarial training)
高斯数据增强(Gaussian data augmentation)
对抗训练(Adversarial training):让深度学习模型认识常见的对抗样本,具有识别对抗样本的能力。(对抗样本工具箱:AdvBox、FoolBox)
高斯数据增强(Gaussian data augmentation):在原始数据上叠加高斯噪声,训练数据叠加噪声后,重新输入给深度学习模型学习,通过增加训练轮数、调整参数甚至增加模型层数,在不降低原有模型准确度的情况下,让新生成的深度学习模型具有了一定的识别对抗样本的能力。
04 总结
以上知识点就是接下来AI安全对抗样本的学习路线,像我一样有web安全基础但对AI没有基础的情况下,算法是比较有难度的,里面有很多高等数学,线性代数,概率统计,离散数学有关的知识点,这是一个挑战,也怪我以前没好好学。
【AI安全之对抗样本】入门知识相关推荐
- 新书推荐 |《AI安全之对抗样本入门》
新书推荐 <AI安全之对抗样本入门> 点击上图了解及购买 AI安全三部曲作者兜哥又一力作,对抗样本的入门知识,AI安全必备. 内容简介 本书系统介绍对抗样本的基本原理,从相关的背景知识开始 ...
- AI安全之对抗样本入门 (智能系统与技术丛书) pdf
AI安全之对抗样本入门 (智能系统与技术丛书) 兜哥 (作者) 出版社: 机械工业出版社; 第1版 (2019年5月1日) ISBN:978-7-111-62682-4 本书纸版由机械工业出版社于20 ...
- pytorch 对抗样本_《AI安全之对抗样本入门》—3.4 PyTorch
3.4 PyTorch PyTorch是torch的Python版本,是由Facebook开源的神经网络框架.PyTorch虽然是深度学习框架中的后起之秀,但是发展极其迅猛.PyTorch提供了Num ...
- 《Al安全之对抗样本入门》读书笔记 2
基本概念 范数 L0范数:在对抗样本中,常指对抗样本相对原始图片所修改像素的个数. L1范数:也叫做曼哈顿距离.最小绝对误差,度量两个向量之间的差异,表示向量中非零元素的绝对值之和. L2范数:欧氏距 ...
- [当人工智能遇上安全] 1.人工智能真的安全吗?浙大团队外滩大会分享AI对抗样本技术
您或许知道,作者后续分享网络安全的文章会越来越少.但如果您想学习人工智能和安全结合的应用,您就有福利了,作者将重新打造一个<当人工智能遇上安全>系列博客,详细介绍人工智能与安全相关的论文. ...
- [论文阅读] (04) 人工智能真的安全吗?浙大团队外滩大会分享AI对抗样本技术
外滩大会 AI安全-智能时代的攻守道 Deep Learning Security: From the NLP Perspective 浙江大学 <秀璋带你读论文>系列主要是督促自己阅读优 ...
- 【深度学习】深度学习之对抗样本问题和知识蒸馏技术
文章目录 1 什么是深度学习对抗样本 2 深度学习对于对抗样本表现的脆弱性产生的原因 3 深度学习的对抗训练 4 深度学习中的对抗攻击和对抗防御 5 知识蒸馏技术5.1 知识蒸馏介绍5.2 为什么要有 ...
- 对抗样本(对抗攻击)入门
什么是对抗样本? 从2013年开始,深度学习模型在多种应用上已经能达到甚至超过人类水平,比如人脸识别,物体识别,手写文字识别等等. 在之前,机器在这些项目的准确率很低,如果机器识别出错了,没人会觉得奇 ...
- 【深度学习入门到精通系列】对抗样本和对抗网络
文章目录 1 概述 2 对抗样本 3 对抗网络 1 概述 所谓对抗 样本是指将实际样本略加扰动而构造出的合成样本,对该样本,分类器非常容易将其类别判错,这意味着光滑性假设(相似的样本应该以很高的概率被 ...
最新文章
- 奇妙的算法之LCS妙解
- ubuntu php上传文件,Ubuntu中增加apache上传文件大小限制(突破Aapache默认2M上传限制)...
- oracle sqlplus 常用命令大全
- 基于 Docker 的现代软件供应链
- 机器学习理论篇:机器学习的数学基础
- Linux基金会:Linux已经战胜微软
- 【C++grammar】结构化绑定
- mongodb3.0 性能測试报告 一
- kafka创建topic_ELK-基础系列(六)-ELK加入消息队列-Kafka部署
- forward内部跳转 和redirect重定向跳转的区别
- 聚会「AHOI 2008」
- 【月径流预测】基于matlab人工生态系统算法优化BP神经网络月径流预测【含Matlab源码 2000期】
- 【实验技术笔记】RNA 抽提 + 反转录PCR + PCR引物设计 + RT-qPCR
- ubutun 干净卸载删除deepin-wineQQ
- BMVC 2020 开幕,196篇论文73篇开源~
- TikTok跨境电商:TikTok代开英国小店、印尼小店,美国小黄车,广告账户
- mybatis 配置多数据源 java,SpringBoot+MyBatisPlus配置多数据源读写分离
- 一位算法工程师对自己工作的反思,写得挺实在的
- weinre安装配置
- PCB Gerber
热门文章
- Nextcloud 无法在ipad登录,已解决
- java 写文件 权限不够_教你解决Linux系统中JAVA创建文件后权限不足的问题
- 关于淘宝直通车的那些事(二):关键词选词方法
- openFoam代码读懂笔记
- 读书笔记:无人机控制(三)
- python 数组随机打乱
- 米家扫地机器人怎么加水_大神分析米家扫地机器人1T到底怎么样?优缺点评测,不看后悔!...
- Visual Studio运行项目报错:The Debugger Resource DLL is out of date
- 基于php的动漫网站设计
- Android ANR 处理