StyleGAN 中的映射网络如何工作?

How does Mapping Network in StyleGAN work?

我正在学习 StyleGAN 架构,但我对映射网络的用途感到困惑。在原始文件中它说:

Our mapping network consists of 8 fully-connected layers, and the dimensionality of all input and output activations— including z and w — is 512.

并且没有关于以任何方式训练此网络的信息。

就像,它不会生成一些无意义的值吗?

我试过创建这样的网络(但形状更小 (16,)):

import tensorflow as tf
import numpy as np

model = tf.keras.models.Sequential()
model.add(tf.keras.Input(shape=(16)))

for i in range(7):
  model.add(tf.keras.layers.Dense(16, activation='relu'))

model.compile()

然后根据一些随机值对其进行评估:

g = tf.random.Generator.from_seed(34)
model(
    g.normal(shape=(16, 16))
)

我得到一些随机输出,例如:

array([[0.        , 0.01045225, 0.        , 0.        , 0.02217731,
        0.00940356, 0.02321716, 0.00556996, 0.        , 0.        ,
        0.        , 0.03117323, 0.        , 0.        , 0.00734158,
        0.        ],
       [0.03159791, 0.05680077, 0.        , 0.        , 0.        ,
        0.        , 0.05907414, 0.        , 0.        , 0.        ,
        0.        , 0.        , 0.03110216, 0.04647615, 0.        ,
        0.04566741],
       .
       .  # More similar vectors goes there
       .   
       [0.        , 0.01229661, 0.00056016, 0.        , 0.03534952,
        0.02654905, 0.03212402, 0.        , 0.        , 0.        ,
        0.        , 0.0913604 , 0.        , 0.        , 0.        ,
        0.        ]], dtype=float32)>

我错过了什么?网上有没有训练Mapping Network的资料?任何数学解释?真的很困惑:(

据我所知,映射网络没有单独训练。它是生成器网络的一部分,并像网络的其他部分一样根据梯度调整权重。

在他们的 stylegan generator code implementation it written the Generator is composed of two sub networks one mapping and another synthesis. In stylegan3 generator source 中更容易看到。映射的输出被传递到生成图像的合成网络。

class Generator(torch.nn.Module):
    ...
    def forward(self, z, ...):
        ws = self.mapping(z, ...)
        img = self.synthesis(ws, ...)
        return img

下图显示了 stylegan 2019 paper 的映射网络。第 2 节描述了映射网络。

带映射层的生成器图

映射层在论文中用f表示,它将噪声向量z从正态分布初始化并映射到中间潜在表示w。它是用 8 层 MLP 实现的。 Stylegan mapping network implementation 将 MLP 层设置为 8。

他们在第 4 节中提到,

a common goal is a latent space that consists of linear subspaces, each of which controls one factor of variation. However, the sampling probability of each combination of factors in Z needs to match the corresponding density in the training data.

A major benefit of our generator architecture is that the intermediate latent space W does not have to support sampling according to any fixed distribution.

因此,zw 具有相同的维度,但 wz 更分散。从图像的中间潜在 space W 中找到 w 允许特定的图像编辑。

来自Encoder for Editing论文,

在经过其他更改的 stylegan2-ada 论文中,他们发现映射网络深度 2 优于 8。在 stylegan3 mapping layer code implementation 中,映射中的默认层数设置为 2。

参考资料