内容安全复习 7 - 对抗攻击与防御

文章目录

  • 概述
  • 攻击
    • 对抗性攻击的目的
    • 攻击的损失函数
    • 如何攻击
    • FGSM
    • 黑盒与白盒
    • 真实世界的攻击
  • 防御
    • 被动防御
    • 主动防御

概述

  • 动机
    (1)不仅要在实验室中部署机器学习分类器,也要在现实世界中部署;实际应用
    (2)分类器对噪声具有鲁棒性和在“大多数情况下”有效是不够的。
    (3)想要鲁棒的分类器用来对付用户愚弄分类器的输入;面对人类的恶意
    (4)特别适用于垃圾邮件分类、恶意软件检测、网络入侵检测等。
  • 攻击 AI
    在这里插入图片描述
    上图描述了一些攻击 AI 的方式以及后果。
    (1)对抗攻击会导致破坏模型完整性;
    (2)漏洞挖掘和利用会导致破坏模型可用性;
    (3)模型萃取和数据窃取会导致破坏模型机密性。
  • 逃逸攻击
    指攻击者在不改变目标机器学习系统的情况下,通过构造特定输入样本以完成欺骗目标系统的攻击
  • 投毒攻击
    攻击者通过篡改训练数据或添加恶意数据来影响模型训练过程,最终降低其在预测阶段的准确性。

攻击

对抗性攻击的目的

对抗性攻击的目的是通过在原始图像中添加人眼无法察觉的扰动,使得模型的预测结果出错。

攻击的损失函数

在这里插入图片描述

  • 训练损失: L t r a i n ( θ ) = C ( y 0 , y t r u e ) L_{train}(\theta)=C(y^0,y^{true}) Ltrain(θ)=C(y0,ytrue)。这个公式表示训练神经网络的损失函数,其中 y 0 y^0 y0 是神经网络对原始输入 x 0 x^0 x0 的输出, y t r u e y^{true} ytrue 是该输入的真实标签例如,猫 C C C 衡量 y 0 y^0 y0 y t r u e y^{true} ytrue 之间的差异。
  • 无目标攻击损失: L ( x ′ ) = − C ( y ′ , y t r u e ) L(x')=-C(y',y^{true}) L(x)=C(y,ytrue)。在这种情况下, y ′ y' y 是对 x ′ x' x 的输出。无目标攻击的目的是使 y ′ y' y 偏离 y t r u e y^{true} ytrue,即使预测与真实标签差异增大。因此我们取负的 C C C,最大化估计差异。
  • 有目标攻击损失: L ( x ′ ) = − C ( y ′ , y t r u e ) + C ( y ′ , y f a l s e ) L(x')=-C(y',y^{true})+C(y',y^{false}) L(x)=C(y,ytrue)+C(y,yfalse)。有目标攻击的目的是使 y ′ y' y 更接近一个错误的估计 y f a l s e y^{false} yfalse,不同与无目标,有目标攻击多了“目的地”例如,把猫的图片分类为鱼。第一项 − C ( y ′ , y t r u e ) -C(y',y^{true}) C(y,ytrue) 希望输出值远离真实标签、第二项 C ( y ′ , y f a l s e ) C(y',y^{false}) C(y,yfalse) 希望输出接近错误标签。
  • 约束: d ( x 0 , x ′ ) ≤ ϵ d(x^0, x') \le \epsilon d(x0,x)ϵ。具体如下图,右上角展示了 x ′ x' x x 0 x^0 x0 之间的距离 Δ x \Delta x Δx。图中下方展示了两种衡量距离的方法。 L 2 − L2- L2 范数和 L − ∞ L-\infty L 范数。
    在这里插入图片描述

如何攻击

就像训练一个神经网络,但是网络参数 θ \theta θ x ′ x' x替代。
在这里插入图片描述

  • x ∗ = a r g min ⁡ d ( x 0 , x ′ ) ≤ ϵ L ( x ′ ) x^*=arg \min_{d(x^0, x') \le \epsilon} L(x') x=argmind(x0,x)ϵL(x),这个公式指:在约束条件下 d ( x 0 , x ′ ) ≤ ϵ d(x^0, x') \le \epsilon d(x0,x)ϵ 原始输入与扰动图像之间的距离不超过ϵ下,找到使 L ( x ′ ) L(x') L(x) 最小的 x ′ x' x
  • 由此可以看出,在对抗性攻击种,我们的目标是:希望生成一个扰动图像,在这个扰动图像接近原始图像且满足约束条件的前提下,最小化损失。最小化损失L(x')在上面的有目标攻击和无目标攻击中,都体现为C更大,即更加偏离真实标签,攻击的效果越好。
  • 下方展示了 f i x ( x t ) fix(x^t) fix(xt)中距离的计算方法。
    在这里插入图片描述

FGSM

FGSM 全称 Fast Gradient Sign Method,快速梯度逐步算法。
在这里插入图片描述
在这里插入图片描述

黑盒与白盒

  • 在前面的攻击中,我们固定网络参数 θ \theta θ 而寻找最优的输入 x ′ x' x。如果攻击时,我们需要知道 θ \theta θ,那么这就叫做白盒攻击

  • 白盒攻击需要 θ \theta θ,那么如果我们不公布(绝大多数 API 都不提供网络参数),是否安全呢?
    不会,因为存在黑盒攻击。

  • 在黑盒攻击中:
    (1)如果我们有目标网络的训练数据,可以使用这些数据训练一个代理网络 (proxy network)。这个代理网络模仿目标网络的行为,攻击者可以在代理网络上进行对抗样本生成,然后将这些对抗样本应用于目标网络。用目标的网络数据生成网络,在网络上模拟,然后在模拟网络上生成AE(对抗性样例)。
    (2)如果我们没有目标网络的训练数据,则需要获取一些目标网络的输入和预测输出,以此来构建代理网络,然后进行和训练数据生成代理网络后一样的攻击。和(1)的区别就是,是用目标网络的输入和预测输出生成的代理网络。

真实世界的攻击

单像素攻击

防御

对抗性攻击无法通过正则化,dropout 和模型集成来防御。

防御可以分为两种:主动防御和被动防御。

被动防御

在不修改模型的情况下找到攻击图像。

  • 去噪
    除非对手不知道去噪的存在,否则还是可能受到白盒攻击。
  • 随机化
    (1)如果攻击者不知道随机化存在,则效果最佳;
    (2)如果知道,由于随机模式过多,防御依然有效。
  • 梯度掩码/隐藏
    治标不治本,本质是提高了攻击者搞清楚弱电的难度,模型本身稳定性并未提高。

主动防御

训练一个对对抗性攻击具有鲁棒性的模型。

  • 对抗训练
    这种方法对训练目标算法 A 有效,但对未被训练的目标算法 B 无效。
  • 防御性蒸馏
    (1)通过梯度生成的对抗性样例攻击性降低;
    (2)随蒸馏温度提升,对抗性样例生成困难,提升模型鲁棒性;
    (3)对黑盒攻击无能为力;
    (4)仅适用于基于概率分布的 DNN 模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/32198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】线性表之《栈》超详细实现

栈 一.栈的概念及结构二.顺序栈与链栈1.顺序栈2.链栈1.单链表栈2.双链表栈 三.顺序栈的实现1.栈的初始化2.检查栈的容量3.入栈4.出栈5.获取栈顶元素6.栈的大小7.栈的判空8.栈的清空9.栈的销毁 四.模块化源代码1.Stack.h2.Stack.c3.test.c 一.栈的概念及结构 栈:一种…

程序猿成长之路之数据挖掘篇——决策树分类算法(1)——信息熵和信息增益

决策树不仅在人工智能领域发挥着他的作用,而且在数据挖掘中也在分类领域中独占鳌头。了解决策树的思想是学习数据挖掘中的分类算法的关键,也是学习分类算法的基础。 什么是决策树 用术语来说,决策树(Decision Tree)是…

Go自定义数据的序列化流程

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

数据库设计概述-数据库设计内容、数据库设计方法(基于E-R模型的规范设计方法)

一、引言 如何利用关系数据库理论设计一个满足应用系统需求的数据库 二、数据库设计内容 1、数据库设计是基于应用系统需求分析中对数据的需求,解决数据的抽象、数据的表达和数据的存储结构等问题 2、其目标是设计出一个满足应用要求、简洁、高效、规范合理的数…

Map集合之HashMap细说

最近在看面试题,看到了hashmap相关的知识,面试中问的也挺多的,然后我这里记录下来,供大家学习。 Hashmap为什么线程不安全 jdk 1.7中,在扩容的时候因为使用头插法导致链表需要倒转,从而可能出现循环链表问…

航行在水域:使用数据湖构建生产级 RAG 应用程序

在 2024 年年中,创建一个令人印象深刻和兴奋的 AI 演示可能很容易。需要一个强大的开发人员,一些聪明的提示实验,以及一些对强大基础模型的API调用,你通常可以在一个下午建立一个定制的AI机器人。添加一个像 langchain 或 llamain…

c++ 内存分析模型、引用

一、内存模型分区 内存四区的意义: 不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程 (一)程序运行前 在程序编译后,生成了exe可执行程序,未执行程序前分为两个区域 代码区&…

SpringMVC系列七: 手动实现SpringMVC底层机制-上

手动实现SpringMVC底层机制 博客的技术栈分析 🛠️具体实现细节总结 🐟准备工作🍍搭建SpringMVC底层机制开发环境 实现任务阶段一🍍开发ZzwDispatcherServlet🥦说明: 编写ZzwDispatcherServlet充当原生的DispatcherSer…

码云建仓库

1.新建仓库 码云地址 打开 码云地址 ,点击“”,新建仓库,添加仓库内容 ,创建。 小提示:如果本地已有项目,就不要选初始化,设置模板,容易冲突。 2. 进入当前仓库页 小提示&#x…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] LYA的巡演(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…

心明眼亮 洞悉万物

如何洞悉事物的本质呢? 阳明先生:世间之事,纷繁复杂,不可能一一研究得过来。 圣人只需要把内心的明镜擦亮,而无需担心外部的事事物物在镜子中如何映照。 —— 外界事物是无穷无尽的,永远探究不完&#xf…

30 - 每位经理的下属员工数量(高频 SQL 50 题基础版)

30 - 每位经理的下属员工数量 -- 根据reports_to ,获取employee_id,即分组用e1.reports_to,查询用e2.employee_id,e2.nameselect e2.employee_id,e2.name ,count(e1.reports_to) reports_count,round(avg(e1.age),0) average_age from Employees e1 left…

【鸿蒙踩坑记录】解决:list组件滑动至左边或右边,回弹效果过大问题

一、问题描述 开发过程中使用List组件,当内容超过一屏时可出现滚动效果,此时按住内容迅速滑动至左边,或者滑动到右边,回弹效果过大 期望:滑动时,不要有那么大的回弹效果 二、目前效果 三、解决方法 3.1…

go语言day03

目录 一、 go语言的数据类型: 二、声明赋值的简写形式: ":" 1)重复使用的编译错误 2)在全局变量中使用 : 会报编译错误 三、变量规则: 0)变量的命名规则: 1)创建的局部…

丰臣秀吉-读书笔记六

登山的目标必然是山顶。但人生的乐趣和生息的快乐却不在山顶,相反可以说是在山中的逆境之处。当我们遇上峡谷、绝壁、溪流、断崖、雪崩之类的险路时,心里虽想着已经不行了等,却不甘就此罢手而不与面前的艰难险阻战斗。而当我们完美克服并跨越…

用 Rust 实现一个替代 WebSocket 的协议

很久之前我就对websocket颇有微词,它的确满足了很多情境下的需求,但是仍然有不少问题。对我来说,最大的一个问题是websocket的数据是明文传输的,这使得websocket的数据很容易遭到劫持和攻击。同时,WebSocket继承自HTTP…

Spark SQL 血缘解析方案

背景 项目背景建设数据中台,往往数据开发人员首先需要能够通过有效的途径检索到所需要的数据,然后根据检索的数据模型进行业务加工然后得到一些中间模型,最后再通过数据抽取工具或者OLAP分析工具直接将数据仓库中加工好的公共模型输出到应用层。这里我不在去介绍数据仓库为…

Mysql8死锁排查

Mysql8死锁排查 Mysql8 查询死锁的表 -- 查询死锁表select * from performance_schema.data_locks;-- 查询死锁等待时间select * from performance_schema.data_lock_waits;Mysql8之前的版本 查询死锁的表 -- 查询死锁表SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;-- 查询…

Virtualbox主机和虚拟机之间文件夹共享及双向拷贝

在VirtualBox这样的虚拟化环境中,实现主机与虚拟机之间的文件夹共享与双向文件传输是一个常见的需求。下面,我们将详细讲解如何在VirtualBox中实现这一功能。 一、安装与准备 首先,确保你已经安装了VirtualBox,并在其上成功创建…

最大乘积和-第13届蓝桥杯省赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第85讲。 最大乘积和&#…