生成网络论文阅读styleGAN2(一):论文速览

1.解决什么问题

作者所述大约解决了两个问题分别是:

  • 1.水滴状模糊问题
  • 2.生成图片中固定不动的问题
  • 3.官方的逆向工程(就是从生成的图片获得一个latent code 或是从实际的图片获得一个latent code)

顺便说了:

  • 1.加速训练的问题

2.怎么解决水滴状问题

2.1作者发现在训练的过程中水滴早就出现了,并分析原因

经过作者判断水滴的出现主要是因为在AdaIN当中改变分布的逐渐叠加,导致feature map当中的特征最终失去控制(变得很大),也有其他研究者证明在放弃style控制之后,这个问题可以得到有效的解决。

2.2作者提出了下面这个改进方法。

2.2.1先从总体上看一下网络结构的修改

用文章当的图说明这个过程,(a)是我们首席的styleGAN

  • 1.作者首先提出了AdaIN可以拆分成标准化和分布迁移两个部分,并且分布迁移的过程中的bias迁移移动到了卷积后(作者认为卷积前加和卷积后加没什么区别)。所以从下图(a)变成了下图(b),
  • 2.作者又提出了在迁移的过程中,mean的变化不太重要,所以可以去掉,模型就从(b)变成了(c)
  • 3.把乘算迁移(mod std)和标准化(norm std)都移动到卷积内部,模型就从(c)变成了(d)
    在这里插入图片描述

2.2.1重点理解网络修改当中的乘算迁移和标准化加入卷积的过程

在一切的开始我们应该理解一下文章当说到的ijk对应什么东西:

  • 1.这里代表着输入通道是i
  • 2.输出通道是j,
  • 3.k我个人理解是卷积核内部的大小,也就是那个kernel_size。

首先第一步是风格迁移的加入:
和styleGAN1当中的AdaIN一样都是逐个通道进行变化,这里我们注意在图(c)当中mod std是在卷积的前面,所以应该在input channel上做手脚也就是wijk的i维度,对应每个输入的channel。
在这里插入图片描述
之后是标准化的加入
和styleGAN1当中的AdaIN一样都是逐个通道进行变化,只不过这次是逐输出通道变化。这里我们注意在图(c)当中norm std是在卷积的后面,所以应该在input channel上做手脚也就是wijk的j维度,对应每个输出的channel。
再想一下这个输出是怎么得到的:
我们看一下j中的任何一个输出,输出的第m个通道的结果,是如何得到的:需要w的角标{w1m,w2m,w3m,w4m…wim}分别和输入的i个通道卷积之后再加和得到输出的第m个通道的结果。这里我们注意任何一个输出,所有的i和所有的k都参与其中,因此我们就可以很好的理解文中的标准化设置方法。
在这里插入图片描述
当然最后还多加了一个无穷小量,来应对异常。

猜你喜欢

转载自blog.csdn.net/qq_43210957/article/details/126988219