一、前置知识
奇异值分解:奇异值分解(SVD)原理详解及推导_陈靖_的博客-CSDN博客_奇异值分解
雅克布矩阵:雅可比(Jacobian)矩阵 - 笨笨和呆呆 - 博客园 (cnblogs.com)
截断的含义以及在bigGans中的实际应用:https://blog.csdn.net/jtup1253/article/details/126836743
二、关于本文
不同于传统意义上在DGNs(deep generative network)中为了得到更好的FID,以及生成更真实的图片而引入可控的参数去权衡生成样本的精度和召回率(例如:截断潜在空间中的采样、插值截断),本文采用了极值采样。这是一种理论上可以实现即插即用的新型算法。
所谓的即插即用,是相对于传统的改进方法。例如:bigGans为了生成更好的图片,在训练期对DGN的参数进行了正交正则化。在训练准备期以及后续的训练过程中都起到了很大的影响,而且,一昧的对参数进行正交化、正则化可能会限制生成网络在敏感应用中的部署。
而本文提出的积性采样是一种原则性的解决方案。它不需要重新训练,也不需要对模型训练进行特定的调节,就可以对生成图片(fake picture)的精度与召回率进行平衡。总的来说“积性采样“是一种样本分布的分析形式之上的工作。
传统的深度生成网络是零散的线性映射。在大多数DGN设置中,一旦训练完成,对新数据点的取样是直接通过对潜在空间样本进行取样来进行的。

上图的公式代表的其实是在潜在空间中选取一部分作为生成图训练网络时取样的侧重部分。
传统的做法是,在获取到采样潜在向量z之后,重复更新后者,使得所产生的数据具有更高的质量,进而提升整个网络的质量。而截断的使用也是在选取图片矩阵(或潜在向量矩阵)这一步中加入,用来去除生成图片中的伪影。
极性采样的引入:
它主要应用于图片的输出(生成)部分,所以可以实现即插即用,不需要额外的训练,具体来说他是映入了一个新的参数,称为极性参数
,用于在训练后迫使潜在分布集中在DGN的高概率或低概率区域。
核心理论:
即深度生成网络(DGN)的输出空间的分布与非零奇异分解矩阵(或者直接说非零奇异值)乘积的根号分之一成正比。
同时:
由上公式可以看出:每个输出空间区域的样本浓度取决于该区域的斜率矩阵
,相对于其他区域如何收缩或扩展空间。同时从原始理论中可以得出通过控制斜率矩阵的大小,可以进一步控制输出空间的样本浓度。
将原始定理变形后可得:
整理可得:
极性采样的伪代码:
对于上图算法中几个关键点的解释:
1、
:即
,用DGN网络生成图像矩阵的雅克布矩阵来表示
,这里利用了自动差异库的优势;
2、如果完全控制使得
属于z,那么会消耗太多的资源,太过于昂贵。所以本文控制
使得他与
在Z中的斜率近似。从而控制的所属问题。
3、对于样本N为了获得更好的效果,本文选取了更大的N作为样本数目。
4、奇异值的计算也是一个昂贵的过程,所以k的值就是具体选取了前k哥奇异值加速计算。
5、作者在实践中发现
6、为了减少ρ极值可能出现的舍入误差,所以计算对数空间中奇异值的乘积(对数中相加可以数学变换为乘积形式)
7、最后sorftmax归于0,1用于最后的采样。
三、算法总结
其实前面也做过多次总结,但在进行最后的总结。本文提出的算法是一种在原则上进行变革的新型算法。这中算法不在Gan网络的生成或者预处理做出改变,而是在生成的结果图上做出创新性的算法变革,它通过引入极性采样,使得生成图片(fake picture)中选取部分的概率密度更大即更多的落在我们的感兴趣区域,从而得到一种更好的类重建效果。使得生成的图片具有更高的质量(即实现FID以及召回率之间的动态平衡)。
作者在自然图像上实现了很好的实验效果,也达到了一种类似于即插即用的泛用的DGN改造与变革的效果。在一些传统的强大Gan网络BigGan、StyleGan的改进中也取得了突破性的进展。