本文主要是介绍【论文阅读】2018-ECCV-MUNIT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
卷积神经网络
- 基于MUNIT对抗模型的多模态风格迁移技术
- Part1 降维思想
- Part2 PCA降维算法
- Part3 Auto-encoder思想
- Part4 GAN网络
- 红外与可见光之间的模态转换
基于MUNIT对抗模型的多模态风格迁移技术
文章中的思想主要分为以下几个步骤:
- 将数据集的图像降维成两类低维code:内容code和风格code,这里涉及到了降维的思想;
- 将内容code与另一个图像域的风格code结合,产生风格迁移,对新结合的code作decoder生成结果图像;
- 将风格code重建,使得同一个风格域中存在多种不同风格code,提升生成图像的多样性;
- 使用GAN中的鉴别器将结果图像与目标域的图片进行对比和误差反传,最后得到一个风格迁移生成器和风格迁移效果检验器。
Part1 降维思想
- 降维算法主要有两大步骤:化繁为简和无中生有,如图所示:
- 左侧将图片中同类的内容抽象成了一个简单的图像,即化繁为简;
- 右侧将一段抽象的代码扩展成了有意义的图片,即无中生有。
- 这里左图是一些高维(三维)数据,每个数据都带有一些有意义的属性,比如颜色。我们可以分析它们的分布特点,通过一个函数function将这些数据降低成二维,即映射到二维空间中,且保证它们能够很好地根据颜色属性分离到不同的位置上,从而完成聚类的目的。因此,降维本质上是一种简化问题的操作。换言之,降维的目的是为了探索如何用最少的维度信息将一类事物特征描述得更清晰。
Part2 PCA降维算法
- PCA算法,全称是Principle component analysis,即主成分分析算法。它的思想是将高维数据乘一个降维矩阵,从而得到一个低维数据。假设高维数据是x,降维矩阵是w,输出的降维结果是一维的z。相当于将x向量投影到了一个轴上,最后取其投影长度作为降维后的结果。
- 把前面得到的降维后的低维数据,通过一个逆变换W^T,变换回高维数据上,这样我们就完成了由低维数据生成高维数据的操作了。这里要注意的是:降维后数据的方差越大,数据特征越明显,这样在做无中生有的升维操作时还原效果也就越好。因此,找到合适的W使得降维数据方差最大是非常重要的,不仅决定了化繁为简的质量,还决定了无中生有的质量。
Part3 Auto-encoder思想
- 区别:PCA的数学逻辑非常严谨,且它只能解决线性系统的问题。对于非线性系统,我们就需要用auto-encoder自编码器来完成W转换矩阵的任务(这篇论文就采取的这种思路)。auto-encoder就是采用了背靠背的全连接层,使用了类似神经网络的思想来拟合一个W:
- PCA本质上就是通过数学推导拟合出一个W和W^T,而auto-coder通过层层训练,从而得到能解决非线性系统的一堆W,使得降维和升维的效果都最好。这篇论文中使用的是卷积神经网络来生成code,相当于auto-encoder的W变换就是卷积降采样的过程。
- 变种:比如denoising-auto-encoder,会在数据集上加一些噪点,送入到网络中,最后期望输出的是没有噪点的图像。加了稀疏惩罚项的Parse-Auto-Encoder。
Part4 GAN网络
- 如何判断我们生成的图片风格是否和目标域的风格相同呢?这就是使用到了GAN网络;
- GAN包含了两套独立的神经网络,一个扮演生成器,生成类似真数据的随机样本,作为假样本;另一个扮演分类鉴别器,来分辨生成数据的真假。很显然它们互为对抗目标,如图:
- D是一个图片分类鉴别器,例如它可以区分不同的动物;生成器G的目标就是绘制出非常接近的伪造图片来欺骗D,做法是选取训练数据潜在空间中的元素进行组合,并加入随机噪音。
- 在训练的过程中,判别器D会接收到真实的数据和生成器G产生的假数据,D的任务是判断输入的数据是真数据还是假数据,对于其输出结果,要同时对D和G的参数进行调优。
- 若D判断是正确的,则调整G的参数使之生成更加逼真的假数据;若D判断错误了,则调整D的参数避免下次类似的判断错误。训练一直会持续到两者进入到一个均衡的状态。最后得到一个判别能力优秀的判别器模型与一个生成足够逼真的假数据的生成器模型。
红外与可见光之间的模态转换
- 在COCO2014数据集中抽取了1w张图片将其转换为灰度单通道图像,进行模态转换的训练,目标是实现红外与可见光之间的模态转化;
- 实验设置:batch_size 为4,迭代次数为60000次,在两张taitan_xp上进行训练;
参考资料
[1]: MUNIT: Multimodal UNsupervised Image-to-image Translation
[2]: https://puluo.top/
这篇关于【论文阅读】2018-ECCV-MUNIT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!