首页 > 其他分享 >论文笔记--See through Gradients. Image Batch Recovery via GradInversion

论文笔记--See through Gradients. Image Batch Recovery via GradInversion

时间:2024-09-10 17:04:32浏览次数:1  
标签:via partial Recovery -- sum PSNR 图像 frac hat

See through Gradients. Image Batch Recovery via GradInversion

\(W^{FC} \in \mathbb{R}^{M \times N}\),其输入为一个M维向量\(v \in \mathbb{R} ^M\),\(\Delta W^{FC}_{m,n,k}\)是损失函数对全连接层\(W\)的导数。
对于一个特定的类别\(n\),(\(z\)为全连接层输出的logits),其输出\(z_n=v \cdot W[:,n]=\sum_{i=1}^M v_iw_{i,n}\),那么有\(\frac{\partial{z_{n,k}}}{\partial{w_{m,n}}}=\frac{\partial{\sum_{i=1}^M v_iw_{i,n}}}{\partial{w_{m,n}}}=v_m\),
\(v_m\)也就是\(o_m,k\),即全连接层的第\(m\)个输入。这里的m和n其实是W参数的索引。

设全连接层输入是\([v1,v2,v3]\),参数为\(\begin{bmatrix} w_{11} \cdots w_{1N} \\ w_{21} \cdots w_{2N} \\ \cdots \\ w_{M_1} \cdots w_{MN} \end{bmatrix}\),设样本的类别是\(n\),则与\(n\)对应的等式为\(\partial\{v_1w_{1n}+v_2w_{2n}+v3w_{3n}\}/\partial\{w_{m,n}\}=v_m\),其中n是固定的。
其实这就是idlg的另一种写法,只不过更细了。

我的理解:\(S_{n,k}\)是一个数,是由\(x_k\)这个数据的损失在logits \(n\)上的梯度导数相加而来(按照特征维度\(m\)),当\(n=n_k^*(groud-truth)\)时,加数都是负数,那么\(S_{n,k}<0\),对应着真实标签;
非\(n_k^*\)标签时对应的\(S_{n,k}>0\),\(S=\{S_{n,k}\}\)就是一个\(N \times K\)矩阵,每一列对应一个数据\(x_k\)对不同logits的梯度,每一列中只有一个负数对应着\(x_k\)的真实类别。

关键:从上面图片中看到,\(\triangle \mathbf{W}^{FC}\)是\(K\)个样本的平均梯度,单个样本的梯度中有一列都是负数,根据观察\(|S_{n_k^*,k}|>>|S_{n\neq n_k^*,k}|\),根据原文"This leaves a negative sign mostly intact when the summation brings in positive values from other images.",当求和从其他图像中引入正值时,会留下大部分完整的负号,也就是说在真实的梯度\(\triangle \mathbf{W}^{FC} \in \mathbb{R}^{M \times N}\)中,真实标签对应的列会保留大量的负号,也就是说,多个样本的梯度聚合之后,负的部分仍然是负的,可显示出原始标签的信息。
为了使得这种负号的标志更鲁棒,文章使用了逐列的最小值,而不是按照特征维度进行求和
取每一列中最小值后的向量具有\(N\)维,从小到大排序,\(argsort\)记录对应的列号,直接返回前\(K\)个值,也就对应着\(K\)个样本的类别

\[\^{y}=argsort(min_m \nabla_{W_{m,n}^{(FC)}}\mathcal{L}(x^*,y^*))[:K] \]

注意返回的是batch中\(K\)个样本的类别,并不能一一对应,因为只给定了平均梯度。而且有个假设就是一个批次中不能有重复的标签数据。

真实性正则化

文中加入了一个正则化项(R_{fidelity}(\cdot)),来驱使生成的(\hat{x})尽可能保持真实,具体形式为:
[ R_{fidelity}(\hat{x}) = \alpha_{tv}R_{TV}(\hat{x}) + \alpha_{l_2}R_{l_2}(\hat{x}) + \alpha_{BN}R_{BN}(\hat{x})]
其中(R_{TV})和(R_{l_2})分别惩罚图像的方差和(L2)范数,属于标准的图像先验。
DeepInversion中关键的部分就是使用了BN的先验来进行约束
[ R_{BN}(\hat{x}) = \sum_l||\mu_l(\hat{x}) - BN(mean)||_2 + \sum_l||\sigma^2_l(\hat{x}) - BN(variance)||_2]
其中(\mu_l(x))和(\sigma^2_l(x))是第(l)层卷积的,对于一个批数据的均值和方差的估计,这种真实性的正则化能够使图片变得更加真实。

组一致性正则化

在训练数据恢复的时候,有一个挑战就是物体实际位置的确定,如

在实验中,作者使用了不同的随机种子进行图像的还原,结果产生不同程度上的偏移,但这些样本其实语义上都是一致的。
基于这个观察,作者提出了一种组一致性的正则化方法,也就是用不同的随机种子生成,然后对这些结果进行融合。

其正则化形式为:

\[\mathcal{R}_{group}(\hat{x},\hat{x}_{g\in G})=\alpha_{group}\|\hat{x}-\mathbb{E}(\hat{x}_{g\in G})\|_2 \]

其中,需要计算这个期望\(\mathbb{E}(\hat{x}_{g\in G})\),其实就是平均期望。

如上图所示,首先按像素进行平均,得到一张平均图像,然后所有图像根据这个平均图像进行对齐,之后再取一次平均,得到最后的对齐后的平均图像。

\[\mathbb{E}(\hat{x}_{g\in G})=\frac{1}{|G|}\sum_{g}F_{\hat{x}_g\rightarrow\frac{1}{|G|}\sum_g\hat{x}_g}(\hat{x}_g). \]

Final Update

文中使用的是一种基于能量的模型,受 Langevin 的启发,具体形式为
\(\begin{aligned} &\Delta_{\hat{x}^{(t)}} \gets -\nabla_{\hat{x}}(\mathcal{L}_{grad}(\hat{x}^{(t-1)},\nabla W)+\mathcal{R}_{aux}(\hat{x}^{(t-1)})) \\ &\eta \leftarrow \mathcal{N}(0,I) \\ &\hat{x}^{(t)} \gets \hat{x}^{(t-1)} + \lambda(t)\Delta_{\hat{x}^{(t)}} + \lambda(t)\alpha_n\eta \end{aligned}\)
其中η是采样噪声,用于进行搜索;λ(t)是学习率;αn是缩放因子。

LPIPS(Learned Perceptual Image Patch Similarity是一种用于评估图像之间感知相似度的指标。它基于深度学习模型,特别是卷积神经网络(CNN)来模拟人类视觉系统对图像差异的感知。LPIPS旨在解决传统像素级相似度指标(如L2距离或结构相似性指数(SSIM))在评估图像质量时可能与人眼感知不一致的问题。
LPIPS通过训练一个网络来学习图像块的相似性,这个网络被训练来预测两个图像块之间的感知差异。训练数据通常包括成对的图像块,其中一些是经过轻微扰动的,而另一些则是完全不同的。网络的目标是学会区分这些差异,即使它们在像素级别上的差异可能很微小。
LPIPS的一个流行实现是使用AlexNet或VGG网络的特征提取层来计算图像块的嵌入,然后比较这些嵌入之间的距离。这种距离度量可以提供一种更接近人类视觉感知的图像相似度评估。
LPIPS在图像处理和计算机视觉领域有很多应用,例如:

  • 图像超分辨率:评估重建图像与原始图像的相似度。
  • 图像风格转换:评估转换后的图像是否保留了原始内容的感知特性。
  • 图像去噪和修复:评估处理后图像与干净图像的接近程度。
    LPIPS提供了一个更加灵活和敏感的工具,用于评估图像处理算法的质量,特别是在需要考虑人类视觉感知的情况下。

图像的峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)是衡量图像质量的一个客观标准。它常用于评估压缩算法(如JPEG、PNG)重建图像的质量,或者评估图像在传输过程中损失的情况。PSNR 以分贝(dB)为单位来度量,计算公式如下:
[ \text{PSNR} = 10 \cdot \log_{10} \left( \frac{\text{MAX}_I^2}{MSE} \right) ]
其中:

  • (\text{MAX}_I) 是图像中可能的最大像素值。对于 8 位图像,这个值通常是 255。
  • (MSE) 是均方误差(Mean Square Error),它是原图像 (I) 和重建图像 (K) 之间差的平方的平均值:
    [ MSE = \frac{1}{M \times N} \sum_{i=0}^{M-1} \sum_{j=0}^{N-1} [I(i,j) - K(i,j)]^2 ]
    这里 (M \times N) 是图像的尺寸,(I(i,j)) 和 (K(i,j)) 分别是原图像和重建图像在位置 ( (i,j) ) 的像素值。
    PSNR 值越大,表示重建图像的质量越好,失真越小。通常情况下,PSNR 在 30 dB 以上,人眼就很难察觉到图像的失真;而低于 20 dB,失真就很明显了。
    需要注意的是,PSNR 只能反映图像的失真程度,并不能完全代表图像的主观质量。有时候即使 PSNR 值很高,人眼仍然可能感觉到图像质量的下降,因为 PSNR 并不考虑人眼的视觉特性。因此,在评估图像质量时,通常会结合主观评价和客观指标一起来综合判断。

标签:via,partial,Recovery,--,sum,PSNR,图像,frac,hat
From: https://www.cnblogs.com/ddja/p/18406748

相关文章

  • 布隆过滤器(Bloom Filter)原理+实战
    布隆过滤器的作用是:可用来判断值可能在集合中和绝对不在集合中介绍布隆过滤器(BloomFilter)是1970年由布隆提出的。它实际上是一个很长的二进制向量(位图)和一系列随机映射函数(hash函数)。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远......
  • nginx+lua配置
    nginx中可以配置`--lua校验配置location^~/lua/{default_type'text/html';access_by_lua_file/usr/local/nginx/conf/access.lua;}--重定向配置location^~/toRedirect/{proxy_passhttp://目标ip:目标端口/;proxy_set_headerHost$host;proxy_set_headerX-Re......
  • SSTI从0到入门
    SSTI基础flask的ssti模板引擎+注入模板只是一种提供给程序来解析的一种语法,换句话说,模板是用于从数据(变量)到实际的视觉表现(HTML代码)这项工作的一种实现手段,而这种手段不论在前端还是后端都有应用。通俗点理解:拿到数据,塞到模板里,然后让渲染引擎将赛进去的东西生成html的文本,......
  • macOS Sequoia 15 RC (24A335) 发布下载,正式版下周公布
    macOSSequoia15RC(24A335)ISO、IPSW、PKG下载iPhone镜像、Safari浏览器重大更新、备受瞩目的游戏和AppleIntelligence等众多全新功能令Mac使用体验再升级请访问原文链接:https://sysin.org/blog/macOS-Sequoia/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.......
  • vue 可选链操作符(?.)报错
    一直用的好好的这个运算符,换了个项目,用不了了首先交代一下,vue版本是2.6.11,node版本是v14.17.4,vue-template-compiler也是2.6.11首先哈,我们升级一下vue到2.7.xx版本[email protected]@2.7.0然后安装这个插件npminstall'@babel/plugin-proposal-opti......
  • [DPDK] dumpcap报错EAL init failed: is primary process running?解决办法
    [DPDK]dumpcap报错EALinitfailed:isprimaryprocessrunning?解决办法问题我写了一个DPDK程序,现在想要用DPDK自带的dpdk-dumpcap工具来抓包测试。根据官网描述,我们需要先启动我们的程序为主进程,然后启动dpdk-dumpcap为副进程。但是我直接运行dpdk-dumpcap,显示如下错误:注:......
  • 信息安全工程师(4)IP地址与子网划分
    前言    IP地址与子网划分是计算机网络中的核心概念,对于理解网络通信和数据传输至关重要。以下是对IP地址与子网划分的详细阐述:一、IP地址    IP地址(InternetProtocolAddress)是指互联网协议地址,它是IP协议提供的一种统一的地址格式,为互联网上的每一个网......
  • 搭建企业内部的大语言模型系统
    大纲开源大语言模型大语言模型管理私有大语言模型服务部署方案开源大语言模型担心安全与隐私?可私有部署的开源大模型商业大模型,不支持私有部署ChatGPTClaudeGoogleGemini百度问心一言开源大模型,支持私有部署MistralMetaLlamaChatGLM阿里通义千问常用开源大模型列表开源大模型分支......
  • Yarn原理图
            Yarn是hadoop的三大组件之一,是资源调度器,负责资源调度和资源的分配。具体原理如下图:        客户端向resourceManager发送资源请求。        RM接收到请求之后,会在某一台机器上创建ApplicationMaster,并建立心跳机制进行反向注册,并合计自......
  • DeAdmin 不仅仅是可以一键完成crud操作的后台管理系统
    在后台管理系统中,crud是常见的需求,即使每次都是cv操作都是一个不小的工作量。在DeAdmin中内置了一键操作的功能,完成后修改部分模型属性,再调整下列表及表单的展示信息即可快速完成。功能介绍后端1.首先会创建文章和分类的模型记录,包含了文字模块的常用字段信息2.分别创建......