个人学习笔记平台,欢迎大家交流

红叶~

Be humble, communicate clearly, and respect others.

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

See through Gradients. Image Batch Recovery via GradInversion

WFCRM×N,其输入为一个M维向量vRMΔWm,n,kFC是损失函数对全连接层W的导数。
对于一个特定的类别n,(z为全连接层输出的logits),其输出zn=vW[:,n]=i=1Mviwi,n,那么有zn,kwm,n=i=1Mviwi,nwm,n=vm
vm也就是om,k,即全连接层的第m个输入。这里的m和n其实是W参数的索引。

设全连接层输入是[v1,v2,v3],参数为[w11w1Nw21w2NwM1wMN],设样本的类别是n,则与n对应的等式为{v1w1n+v2w2n+v3w3n}/{wm,n}=vm,其中n是固定的。
其实这就是idlg的另一种写法,只不过更细了。

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

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

y^=argsort(minmWm,n(FC)L(x,y))[:K]

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

真实性正则化

文中加入了一个正则化项(R_{fidelity}(\cdot)),来驱使生成的(\hat{x})尽可能保持真实,具体形式为:

Rfidelity(x^)=αtvRTV(x^)+αl2Rl2(x^)+αBNRBN(x^)

其中(R_{TV})和(R_{l_2})分别惩罚图像的方差和(L2)范数,属于标准的图像先验。
DeepInversion中关键的部分就是使用了BN的先验来进行约束

RBN(x^)=l||μl(x^)BN(mean)||2+l||σl2(x^)BN(variance)||2

其中(\mu_l(x))和(\sigma^2_l(x))是第(l)层卷积的,对于一个批数据的均值和方差的估计,这种真实性的正则化能够使图片变得更加真实。

组一致性正则化

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

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

其正则化形式为:

Rgroup(x^,x^gG)=αgroupx^E(x^gG)2

其中,需要计算这个期望E(x^gG),其实就是平均期望。

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

E(x^gG)=1|G|gFx^g1|G|gx^g(x^g).

Final Update

文中使用的是一种基于能量的模型,受 Langevin 的启发,具体形式为
Δx^(t)x^(Lgrad(x^(t1),W)+Raux(x^(t1)))ηN(0,I)x^(t)x^(t1)+λ(t)Δx^(t)+λ(t)αnη
其中η是采样噪声,用于进行搜索;λ(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)为单位来度量,计算公式如下:

PSNR=10log10(MAXI2MSE)

其中:

  • MAXI 是图像中可能的最大像素值。对于 8 位图像,这个值通常是 255。
  • MSE 是均方误差(Mean Square Error),它是原图像 I 和重建图像 K 之间差的平方的平均值:

    MSE=1M×Ni=0M1j=0N1[I(i,j)K(i,j)]2

    这里 M×N 是图像的尺寸,I(i,j)K(i,j) 分别是原图像和重建图像在位置 (i,j)的像素值。
    PSNR 值越大,表示重建图像的质量越好,失真越小。通常情况下,PSNR 在 30 dB 以上,人眼就很难察觉到图像的失真;而低于 20 dB,失真就很明显了。
    需要注意的是,PSNR 只能反映图像的失真程度,并不能完全代表图像的主观质量。有时候即使 PSNR 值很高,人眼仍然可能感觉到图像质量的下降,因为 PSNR 并不考虑人眼的视觉特性。因此,在评估图像质量时,通常会结合主观评价和客观指标一起来综合判断。
posted @   红叶~  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示