“用于无监督图像生成解耦的正交雅可比正则化”论文解读

Tikhonov regularization terms https://blog.csdn.net/jiejinquanil/article/details/50411617
本文是对博客https://baijiahao.baidu.com/s?id=1710942953471566583&wfr=spider&for=pc的重写。

1 简介

本文是对发表于计算机视觉和模式识别领域的顶级会议 ICCV 2021 的论文“ Orthogonal Jacobian Regularization for Unsupervised Disentanglement in Image Generation(用于无监督图像生成解耦的正交雅可比正则化)”的解读。
在这里插入图片描述

该论文由哈尔滨工业大学与好未来合作,针对图像生成中无监督解耦问题,提出了一种正交雅可比正则化(Orthogonal Jacobian Regularization, OroJaR)用于学习解耦的生成模型。OroJaR 通过约束输入各维在输出引起的变化之间的正交特性来实现模型的解耦,并使用输出对输入的雅可比矩阵表示这种变化。与之前的方法相比,OroJaR 可以应用于模型的多层,并以整体方式对输出进行约束,使得其可以更好的解耦空间相关的变化。

论文链接:https://arxiv.org/abs/2108.07668
代码地址:https://github.com/csyxwei/OroJaR
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2 研究背景

近年来,无监督解耦学习受到了广泛的关注,不仅因为其对理解生成模型的重要性,也因为其对其他计算机视觉任务也有所帮助,如可控图像生成、图像编辑等。对于一个解耦的特征,其各维控制了输出中不相关的变化,从给定的数据集中无监督学习到解耦的特征仍是当前人工智能领域的一个重要挑战。

现有的无监督解耦方法主要基于两种主流的生成模型:变分自编码器(Variational Autoencoder, VAE)和生成式对抗网络(Generative Adversarial Networks, GAN)。基于 VAE 的方法如 -VAE [ 1 ] ,FactorVAE [ 2 ] 等主要通过约束隐变量之间的独立性来实现解耦,但受限于 VAE,这些方法生成图像的质量往往有限。随着 GAN 在图像生成领域取得的成功,许多基于 GAN 的无监督解耦方法被提出。SeFa [ 3 ] 通过对 pretrain 的 GAN 的第一层全连接层参数分解得到一系列解耦的隐空间方向向量。但 SeFa 只能作用于第一层且是后处理的方式,限制了其解耦性能。Hessian Penalty [ 4 ] 通过约束输出对输入的 Hessian 矩阵是对角的来实现解耦。但其使用 max 函数将约束从标量函数推广到向量函数,独立的约束输出的各个值使得其不能很好的解耦一些空间相关的变化(如,形状、大小、旋转等)。

受上述方法的启发,论文提出了一个用于无监督图像生成解耦的正交雅可比正则化(OroJaR),用于更好的解耦生成模型。

3 方法介绍

3.1 正交雅可比正则化 ( OroJaR )

G:X=G(z)G:X = G(\mathbf{z})G:X=G(z)是一个生成模型,其中z=[z1,…,zi,…,zm]T∈R\mathbf{z}=[z_1, \dots, z_i, \dots, z_m]^T \in \mathbb{R}z=[z1,,zi,,zm]TR是输入向量,ziz_izi表示输入的第iii维。x\mathbf{x}x是网络的输出,xd=Gd(z)x_d = G_d(\mathbf{z})xd=Gd(z)进一步用于表示GGG的第ddd层的输出。
论文基于一个非常直观的想法:当改变输入的其中一维时,其在输出中引起的变化应该与其他维引起的变化独立(不相关),即ziz_izizjz_jzj在输出中引起的变化是独立的。在论文中,作者使用雅可比向量∂Gd∂zi\frac{\partial G_d}{\partial z_i}ziGd表示输入第iii维在输出中引起的变化,同时为了实现解耦,作者约束输入各维对应的雅可比向量相互正交,
[∂Gd∂zi]T∂Gd∂zj=0.(1)[\frac{\partial G_d}{\partial z_i}]^T \frac{\partial G_d}{\partial z_j} = 0. \tag1[ziGd]TzjGd=0.(1)
两个向量的正交也意味着它们是不相关的,即输入各维所引起的变化是独立的。考虑所有输入维度,作者提出了正交雅可比正则化(OroJaR),来帮助模型学习到解耦的特征:
L(G)=∑d=1D∣∣JdTJd∘(1−I)∣∣=∑d=1D∑i=1m∑j≠i∣[∂Gd∂zi]T∂Gd∂zj∣2,(2)\mathcal{L}(G) = \sum_{d = 1} ^D||\mathbf{J}_d^T \mathbf{J}_d \circ ( \mathbf{1} - \mathbf{I})|| = \sum_{d = 1}^D \sum_{i = 1}^m \sum_{j \neq i}|[\frac{\partial G_d}{\partial z_i}]^T \frac{\partial G_d}{\partial z_j}|^2, \tag2L(G)=d=1DJdTJd(1I)=d=1Di=1mj=i[ziGd]TzjGd2,(2)
其中Jd={jd,1,…,jd,i,…,jd,m}\mathbf{J}_d = \{\mathbf{j}_{d, 1}, \dots, \mathbf{j}_{d, i}, \dots, \mathbf{j}_{d, m}\}Jd={jd,1,,jd,i,,jd,m}表示GdG_dGdzzz输入的雅可比矩阵,∘\circ表示逐元素乘积。I\mathbf{I}I 表示单位阵,1\mathbf{1}1表示全 1 的矩阵。OroJaR 以整体方式对输出进行约束,而不是像 Hessian Penalty 一样独立的约束输出的每一个元素,这使得 OroJaR 可以更好的解耦复杂的、空间相关的变化。

3.2 近似训练加速

实际训练时,公式 (2)中雅可比矩阵的计算是非常耗时的。为了加速运算,作者基于Hutchinson近似[4,7],将公式 (2)的计算重写为,
L(G)=∑d=1DVarv[vT(jdTjd)v]=∑d=1DVarv[(jdv)Tjdv],(3)\mathcal{L}(G) = \sum_{d = 1}^D \mathbf{Var_v}[\mathbf{v}^T (\mathbf{j_d}^T \mathbf{j_d}) \mathbf{v}] = \sum_{d = 1}^D \mathbf{Var_v}[(\mathbf{j_dv})^T\mathbf{j_dv}], \tag3L(G)=d=1DVarv[vT(jdTjd)v]=d=1DVarv[(jdv)Tjdv],(3)
其中v\mathbf{v}v是Rademacher向量(每维为-1或1的概率为0.5),Varv\mathbf{Var_v}Varv表示方差计算。jdv\mathbf{j_dv}jdvGdG_dGd沿着v\mathbf{v}v方向的一阶导数乘上∣v∣|\mathbf{v}|v,其可以进一步使用一阶差分近似[8]估计得到:
jdv=1ϵ[G(z+ϵv)−G(z)],(4)\mathbf{j_dv} = \frac{1}{\epsilon}[G(\mathbf{z}+ \epsilon \mathbf{v}) - G(\mathbf{z})], \tag4jdv=ϵ1[G(z+ϵv)G(z)],(4)

3.3 在GAN中的应用

OroJaR可以通过两种方式应用于GAN中,一种是在训练GAN时用作正则项,一种是用于寻找pretrain的GAN中一些解耦的方向向量。
GAN训练时,判别器DDD和生成器GGG迭代的使用LD\mathcal{L}_DLDLG\mathcal{L}_GLG更新:
LD=Ex[f(D(x))]+Ez[f(1−D(G(z)))],(5)\mathcal{L}_D = \mathbb{E}_\mathbf{x}[f(D(\mathbf{x}))] + \mathbb{E}_\mathbf{z}[f(1-D(G(\mathbf{z})))], \tag5LD=Ex[f(D(x))]+Ez[f(1D(G(z)))],(5)
LG=Ez[f(1−D(G(z)))],(6)\mathcal{L}_G = \mathbb{E}_\mathbf{z}[f(1 - D(G(\mathbf{z})))], \tag6LG=Ez[f(1D(G(z)))],(6)
其中f(⋅)f(\cdot)f()是某一个具体的GAN Loss。将OroJaR引入GAN的训练后,生成器的训练Loss调整为:
LGoro=Ez[f(1−D(G(z)))]+λEz[LJ(G(z))],(7)\mathcal{L}_G^{oro} = \mathbb{E}_\mathbf{z}[f(1 - D(G(\mathbf{z})))] + \lambda \mathbb{E}_\mathbf{z}[\mathcal{L}_J(G(\mathbf{z}))], \tag7LGoro=Ez[f(1D(G(z)))]+λEz[LJ(G(z))],(7)
其中λ\lambdaλ用于控制不同损失之间的权重。引入LJ(G)\mathcal{L}_J(G)LJ(G)到GAN的训练中可以帮模型学习到解耦的特征,从而实现可控的图像生成。
OroJaR也可以用于发现pretrain的GAN的隐空间中可解释的方向。具体地,作者引入一个可学习的正交矩阵A∈Rm×N\mathbf{A} \in \mathbb{R}^{m \times N}ARm×N,其中NNN是要学习的正交方向的个数,mmm是隐空间维度。A\mathbf{A}A的每列存储了要学习的正交方向。AAA的优化公式为:
A∗=arg⁡min⁡AEz,ωiLJ(G(z+ηAωi)),(8)A^* = \arg \min_\mathbf{A} \mathbb{E}_{\mathbf{z}, \omega_i}\mathcal{L}_J(G(\mathbf{z} + \eta \mathbf{A} \omega_i)), \tag8A=argAminEz,ωiLJ(G(z+ηAωi)),(8)
其中ωi∈{0,1}N\omega_i \in \{0, 1\}^Nωi{0,1}N是一个one-hot的向量,用于索引A\mathbf{A}A的某一列,η\etaη是一个标量用于控制z\mathbf{z}z应该沿着该方向移动多远。与公式 (7)不同的是,此时的OroJaR是对求的ωi\omega_iωi而不是z\mathbf{z}z。求得A\mathbf{A}A之后,就可以通过G(z+ηAωi)G(\mathbf{z} + \eta \mathbf{A} \omega_i)G(z+ηAωi)来对生成图像进行可控的编辑。

4 实验结果

论文使用了Edges+Shoes[9]、CLEVR[4]、Dsprites[10]等数据集对OroJaR进行了详细的定性和定量实验。

4.1 定性实验

作者首先在Edges+Shoes上进行了实验,该数据集是由5k张真实鞋子和5k张轮廓鞋子组成的真实数据集。从下图中可以看到,虽然没有其真实的变化因子,但SeFa[3]、Hessian Penalty[4]和OroJaR都学到了相同的变化,即鞋子的样式和形状,且论文提出的OroJaR具有更多样的形状变化。
在这里插入图片描述
下图给出了论文提出的OroJaR与对比方法在CLEVR-Complex数据集上的定性对比,该数据集包含2个物体的5个变化因子(x轴、y轴位置、形状、颜色、大小)。可以看到,SeFa[3]和Hessian Penalty[4]在改变一个物体的形状或颜色时另一个物体也会随之改变,而OroJaR可以独立的控制左右物体的形状和颜色,这说明OroJaR可以更好的解耦空间相关的变化。
在这里插入图片描述
下图给出了OroJaR与对比方法在Dsprites数据集上的定性对比,该数据集是常用的解耦数据集,包含了1个物体的5个变化因子(x轴、y轴位置、形状、角度、大小)。可以看到与SeFa[3]和GAN-VP[5]和Hessian Penalty[4]相比,OroJaR可以更好地解耦5个变化,同时成功抑制多余的维度(第6行)。
在这里插入图片描述
如上文中提到的,OroJaR同样可以用于寻找pretrain的GAN的隐空间中一些有意义的方向向量,作者在ImageNet上pretrain的BigGAN[6]的Golden Retrievers和Churches两个类上进行了实验。实验结果如下图所示,可以看到,OroJaR可以成功找到一些有意义的控制,如旋转,缩放,颜色等。
在这里插入图片描述
更多详细的实验结果请见论文。

4.2 定量实验

下表给出了OroJaR在Edges+Shoes和CLEVR数据集上的定量对比实验,其中FID[12]用于衡量图像的生成质量,PPL[11]用于衡量模型隐空间的连续性,VP[5]用于衡量模型的解耦性能。可以看到,与SeFa[3]、InfoGAN[13]和Hessian Penalty[4]相比, OroJaR具有更高的VP指标,说明其更有利于模型的解耦。同时OroJaR也具有更低的PPL指标,这是因为OroJaR与StyleGAN2中提出的感知路径正则项具有相似的约束,从而实现了更低PPL。
在这里插入图片描述
下表给出了OroJaR与对比方法在Dsprites上的VP指标对比,可以看到论文提出的OroJaR取得了更高的结果,说明了其在解耦上的优越性。
在这里插入图片描述

5 结语

论文提出了一种用于生成模型解耦的正交雅可比正则化 (OroJaR) ,其通过约束不同输入维度引起的输出变化(即雅可比向量)之间的正交性成功实现了模型的解耦。此外,OroJaR 可以应用于模型的多层,并以整体方式约束输出,使其可以有效地解耦空间相关的变化。

参考文献

[1] Irina Higgins, Loic Matthey, Arka Pal, Christopher Burgess, Xavier Glorot, Matthew Botvinick, Shakir Mohamed, and Alexander Lerchner. beta-vae: Learning basic visual concepts with a constrained variational framework. 2016.
[2] Hyunjik Kim and Andriy Mnih. Disentangling by factorising. In International Conference on Machine Learning, pages 2649–2658. PMLR, 2018.
[3] Yujun Shen and Bolei Zhou. Closed-form factorization of latent semantics in gans. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2021.
[4] William Peebles, John Peebles, Jun-Yan Zhu, Alexei A. Efros, and Antonio Torralba. The hessian penalty: A weak prior for unsupervised disentanglement. In Proceedings of the European Conference on Computer Vision, 2020
[5] Xinqi Zhu, Chang Xu, and Dacheng Tao. Learning disentangled representations with latent variation predictability. In Proceedings of the European Conference on Computer Vision, pages 684–700. Springer, 2020
[6] Andrew Brock, Jeff Donahue, and Karen Simonyan. Large scale gan training for high fidelity natural image synthesis. In International Conference on Learning Representations, 2018.
[7] Michael F Hutchinson. A stochastic estimator of the trace of the influence matrix for laplacian smoothing splines. Communications in Statistics-Simulation and Computation, 18(3):1059–1076, 1989.
[8] Clarence Hudson Richardson. An introduction to the calculus of finite differences. Van Nostrand, 1954.
[9] Aron Yu and Kristen Grauman. Fine-grained visual comparisons with local learning. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 192–199, 2014.
[10] Loic Matthey, Irina Higgins, Demis Hassabis, and Alexander Lerchner. dsprites:
Disentanglement testing sprites dataset. https://github.com/deepmind/dsprites-dataset/, 2017.
[11] Tero Karras, Samuli Laine, and Timo Aila. A style-based generator architecture for generative adversarial networks. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 4401–4410, 2019.
[12] Martin Heusel, Hubert Ramsauer, Thomas Unterthiner, Bernhard Nessler, and Sepp Hochreiter. Gans trained by a two time-scale update rule converge to a local nash equilibrium. In Advances in Neural Information Processing Systems, pages 6629–6640, 2017.
[13] Xi Chen, Yan Duan, Rein Houthooft, John Schulman, Ilya Sutskever, and Pieter Abbeel. Infogan: interpretable representation learning by information maximizing generative adversarial nets. In Advances in Neural Information Processing Systems, 2016.

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

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

相关文章

html带正方形项目列表,5种简单实用的css列表样式实例,可以直接用到项目中。...

谁不希望有一个好看而又干净的列表?这篇文章中我们给出几个实用的例子,你可以把他们直接用到自己的工作中。我们从一个带有动画效果的垂直列表开始,接着是一个图文混排的例子,然后是一个只有图片的list例子跟一个水平菜单的例子&a…

python变量和常量_python 变量与常量 - 刘江的python教程

变量与常量阅读: 17356评论:7变量:在程序运行过程中,值会发生变化的量常量:在程序运行过程中,值不会发生变化的量无论是变量还是常量,在创建时都会在内存中开辟一块空间,用于保存它的值。Python…

代价敏感多标签主动学习的代码开发跟踪

1 简介 代价敏感多标签主动学习目前是闵老师小组正在进行的一个开发项目,目的是将代价敏感和主动学习思想应用到多标签学习中。整个Java代码涵盖了很多技术:并行计算、batch处理。本文就是在学习这个代码后的一些总结。学习方法采用的至顶向下。 2 Cma…

pb 打印html页面,用PB开发WEB应用

用PB开发WEB应用用PB开发WEB应用烟台教育学院网络中心 孙连三一、PB Window plug -in 的用途PowerBuilder Window plug -in 的用途是在HTML 页面中插入PowerBuilder 中定义的窗口对象,此窗口对象上定义的功能在浏览器中一样被执行&#xff0…

python上传文件接口_python程序的web接口:上传和下载文件

我正在尝试制作一个简单的web应用程序,其中可以上载一个文件并将该文件提供给python脚本。烧瓶似乎适合这种用途。然后,用户可以从脚本下载文件输出。请告诉我如何解析python脚本中的文件并获得输出。到目前为止,我成功地完成了以下上载文件的…

两列布局 html5,CSS两列布局的N种实现

原理:两个元素都设置dislpay:inline-block,为了消除html空格的影响,父元素的font-size需要设置为0,右侧自适应元素的宽度使用calc函数计算。如果两个元素的高度不一样,可以给元素设置vertical-align:top调整。缺点&…

python如何提取图片特征向量_在python中计算图像的特征向量

我正在尝试将二维高斯拟合到图像中。噪声很低,所以我试图旋转图像,使两个主轴不同时变化,算出最大值,然后计算两个维度的标准偏差。选择的武器是Python。。然而,我一直在寻找图像的特征向量——numpy.linalg.py假设离散…

2021年9月24日和学生隆兴的学术讨论

QRCode: (1)做实验 (2)了解它的基本原理 调包侠 语言: (1)程序设计语言(交流,不规范) (2)数学(语言) &#x…

html加上百度统计,vue单页面应用加入百度统计

版权声明:本文为CSDN博主「钟文辉」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_39753974/article/details/80322643在单页面中,要是只加在head中的话那…

推荐系统:猜你喜欢

0 简介 网络的迅速发展带来了信息超载(information overload)问题。解决信息超载问题一个非常有潜力的办法是推荐系统,它根据用户的信息需求、兴趣等,将用户感兴趣的信息、产品等推荐给用户。推荐系统最典型应用领域是电子商务领…

量子计算机九章能否预测未来,张礼立 : 中国 “九章”量子计算机到底厉害在哪?...

原标题:张礼立 : 中国 “九章”量子计算机到底厉害在哪?【背景信息】12月4日,《科学》杂志公布了 中国 “九章” 的重大突破。 这台由中国科学技术大学潘建伟、陆朝阳等学者研制的76个光子的量子计算原型机,推动全球量…

python的继承用法_python中继承有什么用法?python继承的用法详解

本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。面向对象三大特征1.封装:根据职责将属性和方法封装到一个抽象的类中2.继…

利用GAN实现QR Code超分辨率的研究

文章目录1 传统方案2 基于CNN的实现方案2.1 SRCNN2.2 WeChat AI3 基于GAN的实现方案3.1 SRGAN3.2 ESRGAN3.3 Real-ESRGAN4 基于GAN的QR Code的实现方案1 传统方案 https://blog.csdn.net/caomin1hao/article/details/81092134?utm_mediumdistribute.pc_relevant.none-task-bl…

HTML5清除2个div标签的空白,DIV标签里面IMG图片下方留有空白怎么办

我们很多个人博客网站都会广告位投放一些图片广告,在网页设计中,图片是不可缺少的素材,但是在 div 标签里面放入 img 图片的话,有时候会在图片的下方出现一行空间的区域,如果单纯的图片不醒目或是图片所在的位置不重要…

python notebook软件_Jupyter notebook快速入门教程(推荐)

本文主要介绍了Jupyter notebook快速入门教程,分享给大家,具体如下:本篇将给大家介绍一款超级好用的工具:Jupyter notebook。为什么要介绍这款工具呢?如果你想使用Python学习数据分析或数据挖掘,那么它应该…

推荐系统国内外团队介绍

1 何向南团队 http://staff.ustc.edu.cn/~hexn/

如何用计算机截部分屏,电脑如何长屏幕的截图?电脑截取长屏的方法

新手用户对windows系统截取长屏的方法比较陌生,正常情况下,我们截取屏幕内容是登录QQ,按ctrlalta来截取屏幕的,只能截取部分内容,无法截图整个页面。日常的工作生活中,截图是经常会用到的,如果你…

Audio-based snore detection using deep neural networks解读

0 摘要 Background and Objective: 打鼾是一种普遍现象。 它可能是良性的,但也可能是阻塞性睡眠呼吸暂停 (OSA) 一种普遍存在的睡眠障碍的症状。 准确检测打鼾可能有助于筛查和诊断 OSA。 Methods: 我们介绍了一种基于卷积神经网络 (CNN) 和循环神经网络 (RNN) 组合…

python实战讲解_Python数据可视化实战讲解

前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。开运张 | 作者知乎专栏 | 来源三个步骤:确定问题,选择图形转换数据,应用函数参数设置,一目了然首先对…

2018计算机专业考研报名人数,2018年全国考研报考人数、各省市考研报考人数、历年考研录取率、全日制及非全日制硕士研究生比例及考研动机分析【图】...

一、考研报考人数、录取率及报录比分析从上世纪末开始,研究生和本科生招生数量一样在逐步增多。本科扩招的同时,研究生也在扩招。1999年,全国报考研究生人数31.9万,录取人数7.3万,录取率22.8%。2008年,报考…