对抗攻击论文阅读—AAAI2022—CMUA-Watermark

文章目录

CMUA-Watermark: A Cross-Model Universal Adversarial Watermark for Combating Deepfakes

论文地址:https://arxiv.org/abs/2105.10872
github地址:https://github.com/VDIGPKU/CMUA-Watermark

背景

对抗 StarGAN、AGGAN、AttGAN和 HiSD等一系列人脸变换网络。

  • StarGAN 和 AGGAN 均在 CelebA 数据集上针对五个属性进行训练:黑发、金发、棕色头发、性别和年龄。
  • AttGAN 在 CelebA 数据集上进行了多达 14 个属性的训练,与上述两个网络相比更加复杂。
  • 面部修改网络 HiSD,该网络也是在 CelebA 数据集上进行训练的,并且可以为目标人添加一副眼镜。

1、什么是对抗攻击

一般来说,图片放入deepfake生成模型中,获得相应的视觉效果改变(换脸、属性编辑等)。
对抗攻击,训练一个对抗扰动加入图片中,在不影响原图的视觉效果的同时,图片+对抗扰动 放入deepfake生成模型中,破坏生成效果。

1.1 主动防御与被动防御

前面的deepfake检测论文讲解:https://blog.csdn.net/JustWantToLearn/article/details/138758033 是被动防御,图片被恶意更改后判断是否是AI合成的。
这一篇是主动防御,图片中加入扰动,防止被AI合成。如下图解释所示:

2、整体思路

在这里插入图片描述

以前论文的不足:先前对抗性水印具有较低的图像级别和模型级别可转移性,只能保护一个特定deepfake模型的一张面部图像
本文:生成跨模型通用对抗水印(CMUA-Watermark),保护大量面部图像免受多个深度伪造模型的攻击。
方法:提出了一个跨模型通用攻击管道,迭代地攻击多个deepfake模型。

  • 首先引入了生成跨模型对抗水印(CMUAWatermark)的新思想,以保护人类面部图像免受多次深度伪造的影响,只需要128张训练面部图像就可以保护无数的面部图像。
  • 提出了一种简单而有效的扰动融合策略来缓解冲突,并增强所提出的图像级和模型级可转移性CMUA-watermark。
  • 分析跨模型优化过程,并开发了一种自动步长调优算法,以找到适合不同模型的攻击步长。

3、方法

3.1 整体流程

在这里插入图片描述
给定不同的人脸图片 X 1 , . . . , X o X_1,...,X_o X1,...,Xo,不同的deepfake合成方法 G 1 , . . . , G m G_1,...,G_m G1,...,Gm,

  • 输入图像批次迭代地通过PGD攻击产生对抗扰动,重复执行小批量(为了更快的搜索)的跨模型通用攻击,评估生成的CMUA - Watermark,然后使用自动调整步长来选择新的攻击步长 a 1 , . . . a m a_1,...a_m a1,...am
  • 然后通过两级扰动融合机制组合成融合的CMUA - Watermark,作为下一个模型的初始扰动;使用发现的步长 a 1 , . . . a m a_1,...a_m a1,...am进行大批量(为了提高扰乱能力)的跨模型通用攻击,并生成最终的CMUA - Watermark。

3.2 如何破坏单个面部修改模型 G G G

在这里插入图片描述
将一批干净图像 I 1 , . . . , I n I_1,...,I_n I1,...,In输入到 Deepfake 模型 G G G中,并获得原始输出 G ( I 1 ) . . . G ( I n ) G(I_1)...G(I_n) G(I1)...G(In)。然后,我们输入 I 1 , . . . , I n I_1,...,I_n I1,...,In以及初始对抗性扰动 W W W G G G,得到初始扭曲输出 G ( I 1 + W ) . . . G ( I n + W ) G(I_1 + W )...G(I_n + W ) G(I1+W)...G(In+W)。随后,我们利用均方误差 (MSE) 来测量 G ( I 1 ) . . . G ( I n ) G(I_1)...G(I_n) G(I1)...G(In) G ( I 1 + W ) . . . G ( I n + W ) G(I_1 + W )...G(I_n + W ) G(I1+W)...G(In+W)之间的差异
m a x W ∑ i = 1 n M S E ( G ( I i ) , G ( I i + W ) ) , s . t . ∥ W ∥ ∞ ≤ ϵ \underset{W}{max}\sum_{i=1}^{n}MSE(G(I_i),G(I_i+W)),s.t.\left \| W \right \|\infty \le \epsilon Wmaxi=1nMSE(G(Ii),G(Ii+W)),s.t.Wϵ
其中 ϵ \epsilon ϵ是对抗性水印 W W W的上限大小。最后,我们使用 PGD 作为基本攻击方法,在每次攻击迭代时更新对抗性扰动
I a d v 0 = I + W I_{adv}^{0} = I+W Iadv0=I+W
I a d v r + 1 = c l i p I , ϵ { I a d v r + a ⋅ s i g n ( ▽ I L ( G ( I a d v r ) , G ( I ) ) ) } I_{adv}^{r+1} = clip_{I,\epsilon }\left \{ I_{adv}^{r}+a\cdot sign(\bigtriangledown _I L(G(I_{adv}^{r}),G(I))) \right \} Iadvr+1=clipI,ϵ{Iadvr+asign(IL(G(Iadvr),G(I)))}

其中 I I I是干净的面部图像, I a d v r I_{adv}^{r} Iadvr是第 r 次迭代中的对抗性面部图像, a a a 是基本攻击的步长, L L L 是损失函数(MSE), G G G是我们攻击的人脸修改网络,操作剪辑将 I a d v I_{adv} Iadv限制在 [ I − ϵ , I + ϵ ] [I − \epsilon, I +\epsilon ] [Iϵ,I+ϵ]范围内。

通过这个过程,可以获得单图像对抗水印(SIA-Watermarks),保护一张面部图像免受特定深度伪造模型的影响。然而,精心制作的SIA-Watermarks在跨模型设置下是不够的;它们缺乏图像和模型级别的可移植性

论文中代码

代码位置:attacks.py

class LinfPGDAttack(object):def __init__(self, model=None, device=None, epsilon=0.05, k=10, a=0.01, star_factor=0.3, attention_factor=0.3, att_factor=2, HiSD_factor=1, feat=None, args=None):#epsilon: 攻击强度,即扰动的最大幅度。k: 攻击迭代次数。a: 每次迭代的步长。"""FGSM, I-FGSM and PGD attacksepsilon: magnitude of attackk: iterationsa: step size"""self.model = modelself.epsilon = epsilonself.k = kself.a = aself.loss_fn = nn.MSELoss().to(device)self.device = device# Feature-level attack? Which layer?self.feat = feat# PGD or I-FGSM?self.rand = True# Universal perturbationself.up = Noneself.att_up = Noneself.attention_up = Noneself.star_up = Noneself.momentum = args.momentum#factors to control models' weightsself.star_factor = star_factorself.attention_factor = attention_factorself.att_factor = att_factorself.HiSD_factor = HiSD_factordef perturb(self, X_nat, y, c_trg):"""Vanilla Attack."""if self.rand:#如果 self.rand 为真,则在原始输入上添加一个在 [-epsilon, epsilon] 范围内的随机扰动。X = X_nat.clone().detach_() + torch.tensor(np.random.uniform(-self.epsilon, self.epsilon, X_nat.shape).astype('float32')).to(self.device)else:X = X_nat.clone().detach_()for i in range(self.k):#每次迭代,将 X 标记为需要梯度X.requires_grad = True#通过模型计算输出 output 和特征 featsoutput, feats = self.model(X, c_trg)if self.feat:output = feats[self.feat]#将模型的梯度清零self.model.zero_grad()# Minus in the loss means "towards" and plus means "away from"#计算损失,并对损失进行反向传播以获得梯度loss = self.loss_fn(output, y)loss.backward()#根据梯度方向更新输入 Xgrad = X.gradX_adv = X + self.a * grad.sign()#使用 epsilon 对扰动进行裁剪,并确保输入在 [-1, 1] 范围内eta = torch.clamp(X_adv - X_nat, min=-self.epsilon, max=self.epsilon)X = torch.clamp(X_nat + eta, min=-1, max=1).detach_()self.model.zero_grad()return X, X - X_nat

3.3 对抗扰动融合

不同图像和模型生成的对抗水印之间的冲突会降低CMUA-Watermark的可移植性。
为了减弱这种冲突,提出了攻击过程中的两级扰动融合策略。
1、当我们攻击一个特定的深度伪造模型时,我们进行一个图像级别的融合来平均来自一组面部图像的符号梯度
G a v g = ∑ j b s s i g n ( ▽ I j L ( G ( I j a d v , G ( I j ) ) ) b s G_{avg} = \frac{ {\textstyle \sum_{j}^{bs}sign(\bigtriangledown _{I_j}L(G(I_{j}^{adv},G(I_j)))} }{bs} Gavg=bsjbssign(IjL(G(Ijadv,G(Ij)))
其中 b s bs bs 是面部图像的批次大小, I j a d v I_{j}^{adv} Ijadv是批次中的第 j 个对抗图像。此操作将使 G a v g G_{avg} Gavg更加关注人脸的共同属性,而不是特定人脸的属性。然后,我们使用 PGD 通过 G a v g G_{avg} Gavg生成对抗性扰动 P a v g P_avg Pavg,如式3.2所示。

2、从一个模型获得 P a v g P_{avg} Pavg后,我们进行模型级融合,将特定模型生成的 P a v g P_{avg} Pavg迭代地结合到训练中的 W C M U A W_{CMUA} WCMUA中,初始 W C M U A W_{CMUA} WCMUA就是根据第一个deepfake模型计算出的 P a v g P_{avg} Pavg
W C M U A 0 = P a v g 0 W_{CMUA}^{0} = P_{avg}^{0} WCMUA0=Pavg0

W C M U A t + 1 = α ⋅ W C M U A t + ( 1 − α ) ⋅ P a v g t W_{CMUA}^{t+1} = \alpha \cdot W_{CMUA}^{t}+(1-\alpha )\cdot P_{avg}^{t} WCMUAt+1=αWCMUAt+(1α)Pavgt

其中 α \alpha α是衰减因子, P a v g t P_{avg}^{t} Pavgt是第t次攻击deepfake模型生成的平均扰动, W C M U A t W_{CMUA}^{t} WCMUAt是第t次攻击deepfake模型后的训练CMUA-Watermark。

3.4 基于TPE的自动步长调整

除了上面提到的两级融合之外,我们发现不同模型的攻击步长对于生成的 CMUA-Watermark 的可转移性也很重要。因此,我们利用启发式方法来自动找到合适的攻击步长。
根据公式3.2可知,整体优化方向受 a 1 , . . . a m a_1,...a_m a1,...am影响较大,跨模型选择合适的 a 1 , . . . a m a_1,...a_m a1,...am以找到理想的整体方向是跨模型攻击的关键问题。

这里引入TPE(Bergstra et al. 2011)算法来解决这个问题,自动搜索合适的 a 1 , . . . a m a_1,...a_m a1,...am来平衡多个模型计算出的不同方向。 TPE是一种基于序列模型优化(SMBO)的超参数优化方法,它根据历史测量值顺序构建模型来近似超参数的性能,然后基于该模型选择新的超参数进行测试。在我们的任务中,我们将步长 a 1 , . . . a m a_1,...a_m a1,...am视为输入超参数 x,将攻击的成功率视为 TPE 的相关质量得分 y。 TPE使用 P ( x ∣ y ) P(x|y) P(xy) P ( y ) P(y) P(y)来建模 P ( y ∣ x ) P(y|x) P(yx), P ( x ∣ y ) P(x|y) P(xy)由下式给出:
p ( x ∣ y ) = { l ( x ) i f y < y ∗ g ( x ) , i f y ≥ y ∗ p(x|y) = \left\{\begin{matrix} l(x) & if\quad y< y^*\\ g(x), & if\quad y \ge y^* \end{matrix}\right. p(xy)={l(x)g(x),ify<yifyy
其中 y ∗ y^* y由历史上最好的观测值确定, l ( x ) l(x) l(x)是由观测值 x ( i ) {x^{(i)}} x(i)形成的密度,使得相应的损失低于 y ∗ y^* y g ( x ) g(x) g(x) 是由观测值形成的密度剩余的观察结果。对 P ( y ∣ x ) P (y|x) P(yx) 进行建模后,我们通过优化每次搜索迭代中的预期改进 (EI) 标准来不断寻找更好的步长。具体的细节,可以查看TPE的论文。

4、攻击效果

4.1 对比现有方法

我们的方法在所有模型上都取得了优异的性能。
所提出的方法比现有方法具有更好的图像级和模型级可移植性。
在这里插入图片描述

4.2 ϵ \epsilon ϵ设置的影响

在这里插入图片描述
当参数 ϵ \epsilon ϵ变大时,生成的假人脸图像更加扭曲,意味着防护性能变得更好。然而,当变得太大时,产生的对抗性水印更有可能被看到。我们根据经验发现,设置在 0.05 左右可以在保护性能和生成的对抗性水印的不可察觉性之间取得良好的权衡。

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

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

相关文章

台灯学生用哪个牌子最好?学生台灯十大名牌排行榜分享

近年来&#xff0c;我们注意到儿童近视的现象呈现出增多且趋于低龄化的趋势。这一变化&#xff0c;部分原因可以归咎于孩子们越来越多地使用电子产品&#xff0c;另一部分则与他们面临的学业压力增加有关。鉴于此&#xff0c;家长们在挑选儿童学习用品时变得格外谨慎&#xff0…

Qt系统相关

本文目录 1.Qt事件事件的处理标签事件鼠标事件滚轮事件按键事件定时器事件窗口事件事件派发器 2.Qt文件操作QFile的基本使用 3.Qt多线程使用线程线程锁connect的第五个参数 条件变量和信号量 4.Qt网络编程UDP SocketTCP SocketQTcpServerQTcpSocket HTTP的编写 5.QT多媒体播放音…

【CTF MISC】XCTF GFSJ0766 something_in_image Writeup(字符串搜索)

something_in_image 暂无 解法 用 binwalk 扫描。 binwalk badimages 找到一个 ext3 文件系统。 strings badimages | grep {*}找到 flag。 Flag Flag{yc4pl0fvjs2k1t7T}声明 本博客上发布的所有关于网络攻防技术的文章&#xff0c;仅用于教育和研究目的。所有涉及到的实验…

收音机的原理笔记

1. 收音机原理 有线广播&#xff1a;我们听到的声音是通过空气振动进行传播&#xff0c;因此可以通过麦克风&#xff08;话筒&#xff09;将这种机械振动转换为电信号&#xff0c;传到远处&#xff0c;再重新通过扬声器&#xff08;喇叭&#xff09;转换为机械振动&#xff0c…

打造精细化运维新玩法(四)

二、SLO健康度——从0到1构建SLO 和大多互联网企业一样&#xff0c;蚂蚁的基础设施侧存在众多的异构系统&#xff0c;被上层的业务应用和服务所依赖。考虑到不同系统的技术栈、架构、部署等因素&#xff0c;我们需要找到一种通用的、泛化性强的数字化方案指导和构建基础设施域内…

智能楼宇可视化:赋能智慧园区管理

图扑智慧园区楼宇可视化系统&#xff0c;集成多种数据源&#xff0c;实现全方位监控与管理&#xff0c;提升园区的资源利用率和用户满意度&#xff0c;推动智能化管理进程。

电线电缆单根燃烧试验 电缆垂直燃烧试验

电线电缆单根燃烧试验 电线电缆单根燃烧试验是一种用来评估电线电缆在受到火焰作用时的燃烧性能的测试方法。这种试验通常是将电线电缆垂直固定&#xff0c;然后使用特定的火焰源对其进行燃烧&#xff0c;以观察电线电缆的燃烧行为和燃烧速度。通过这个试验&#xff0c;可以评估…

护眼台灯哪个品牌好?几款性价比最高的护眼台灯推荐

在过去&#xff0c;科技尚未发展至如今这般先进水平时&#xff0c;晚上需要照明的时候&#xff0c;我们通常只能依赖白炽灯。尽管白炽灯以其低成本和接近自然光的显色性获得了一定的青睐&#xff0c;随着时代的发展&#xff0c;现在市面上出现了更为护眼的选择——LED台灯。然而…

一文介绍暗区突围手游 游戏特色、具体玩法和独特的玩法体验

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 《暗区突围》是一款由腾讯魔方工作室群开发的第一人称射击游戏&#xff0c;于 2022 年 7 月 13 日正式公测&#xff0c;支持 Android 和 iOS 平台。这款游戏以从虚构的暗区收集物资并安全撤离作为最终目…

OpenGauss数据库-7.用户及角色

第1关&#xff1a;创建用户 gsql -d postgres -U gaussdb -W passwd123123 CREATE USER jackson WITH PASSWORD jackson123; 第2关&#xff1a;修改用户 gsql -d postgres -U gaussdb -W passwd123123 ALTER USER jackson WITH PASSWORD Abcd123; 第3关&#xff1a;创建角色 …

【JVM】JVM 的内存区域

Java虚拟机&#xff08;JVM&#xff09;在执行Java程序时&#xff0c;将其运行时数据划分到若干不同的内存区域。这些内存区域的管理对Java应用程序的性能和稳定性有着重要影响。JVM的内存区域主要包括以下几部分&#xff1a; 方法区&#xff08;Method Area&#xff09;&#…

Qt实现简易播放器

效果如图 源码地址&#xff1a; 简易播放器: 基于Qt的简易播放器&#xff0c;底层采用VLC源码 - Gitee.com GitHub:GitHub - a-mo-xi-wei/easy-player: 基于Qt的调用VLC的API的简易播放器

QQ音乐绿钻API接口:解锁更多音乐可能性

在我们日常生活中&#xff0c;音乐是不可或缺的一部分。无论是在上班途中&#xff0c;还是在健身房锻炼时&#xff0c;我们都可以通过听音乐来放松自己。然而&#xff0c;在现如今的音乐市场中&#xff0c;有时候我们会觉得收听的歌曲有限&#xff0c;想要尝试更多不同的音乐类…

《大道平渊》· 拾贰 —— 天下大事必作于细:做好每一件小事,必然大有所成!

《平渊》 拾贰 "天下难事必作于易&#xff0c;天下大事必作于细。" 社群一位大佬最近在研究新项目, 他做事的 "方法论" 令我深受启发。 他在测试项目时, 每一步都做的非常细致&#xff1a; 整个项目的测试都被划分为一件件小事, 然后有条不紊地推进…… …

代码随想录刷题笔记-哈希表篇

文章目录 242 有效的字母异位词(easy)力扣地址题目描述题目实例解题思路代码实现 383 赎金信(easy)力扣地址题目描述题目实例解题思路代码实现 49 字母异位词分组(mid)力扣地址题目描述题目实例解题思路代码实现 438 找到字符串中所有字母异位词(mid)力扣地址题目描述题目实例解…

免费插件集-illustrator插件-Ai插件-文本属性批处理

文章目录 1.介绍2.安装3.通过窗口>扩展>知了插件4.功能解释5.总结 1.介绍 本文介绍一款免费插件&#xff0c;加强illustrator使用人员工作效率&#xff0c;进行文本属性批处理。首先从下载网址下载这款插件 https://download.csdn.net/download/m0_67316550/87890501&am…

16个免费学习Python的网站和教程(2024年最新资源)

16个免费学习Python的网站和教程&#xff08;2024年最新资源&#xff09; 博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff…

认识Django框架,使用Django 2024新手创建Django项目,使用编译工具:Pycharm

Django简单介绍 Django 是一个用 Python 编写的开源 web 应用框架&#xff0c;旨在促进快速开发、维护和部署高效、可扩展的 web 应用程序。它是遵循模型-模板-视图&#xff08;MTV&#xff09;设计模式的一个高级框架&#xff0c;尽管有时也被描述为遵循MVC&#xff08;模型-…

【Three.js】知识梳理一:Three.js概述和基础知识

1.Three.js简介 Three.js是一个基于JavaScript编写的开源3D图形库&#xff0c;利用WebGL技术在网页上渲染3D图形。它提供了许多高级功能&#xff0c;如几何体、纹理、光照、阴影等&#xff0c;以便开发者能够快速地创建复杂且逼真的3D场景。同时&#xff0c;Three.js还具有很好…

使用seq2seq架构实现英译法

seq2seq介绍 模型架构&#xff1a; Seq2Seq&#xff08;Sequence-to-Sequence&#xff09;模型是一种在自然语言处理&#xff08;NLP&#xff09;中广泛应用的架构&#xff0c;其核心思想是将一个序列作为输入&#xff0c;并输出另一个序列。这种模型特别适用于机器翻译、聊天…