From 9763360fbc3524a9e5dc5686ad52a2f69a72bf40 Mon Sep 17 00:00:00 2001
From: wizardforcel <562826179@qq.com>
Date: Thu, 8 Feb 2024 19:13:21 +0800
Subject: [PATCH] 2024-02-08 19:13:19
---
totrans/gen-dl_14.yaml | 124 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 124 insertions(+)
diff --git a/totrans/gen-dl_14.yaml b/totrans/gen-dl_14.yaml
index 7bc60e3..ce32e93 100644
--- a/totrans/gen-dl_14.yaml
+++ b/totrans/gen-dl_14.yaml
@@ -285,27 +285,32 @@
id: totrans-39
prefs: []
type: TYPE_NORMAL
+ zh: 完整渐进训练过程完成后,生成器和鉴别器的整体结构如[图10-6](#progan_network_diagram)所示。
- en: '![](Images/gdl2_1006.png)'
id: totrans-40
prefs: []
type: TYPE_IMG
+ zh: '![](Images/gdl2_1006.png)'
- en: 'Figure 10-6\. The ProGAN generator and discriminator used to generate 1,024
× 1,024–pixel CelebA faces (source: [Karras et al., 2018](https://arxiv.org/abs/1812.04948))'
id: totrans-41
prefs:
- PREF_H6
type: TYPE_NORMAL
+ zh: 图10-6\. 用于生成1,024×1,024像素CelebA面孔的ProGAN生成器和鉴别器的结构(来源:[Karras等人,2018](https://arxiv.org/abs/1812.04948))
- en: The paper also makes several other important contributions, namely minibatch
standard deviation, equalized learning rates, and pixelwise normalization, which
are described briefly in the following sections.
id: totrans-42
prefs: []
type: TYPE_NORMAL
+ zh: 该论文还提出了其他几个重要贡献,即小批量标准差、均衡学习率和像素级归一化,以下部分将简要描述。
- en: Minibatch standard deviation
id: totrans-43
prefs:
- PREF_H3
type: TYPE_NORMAL
+ zh: 小批量标准差
- en: The *minibatch standard deviation* layer is an extra layer in the discriminator
that appends the standard deviation of the feature values, averaged across all
pixels and across the minibatch as an additional (constant) feature. This helps
@@ -317,11 +322,13 @@
id: totrans-44
prefs: []
type: TYPE_NORMAL
+ zh: '*小批量标准差*层是鉴别器中的额外层,附加了特征值的标准差,跨所有像素和整个小批量平均作为额外(常数)特征。这有助于确保生成器在输出中创建更多的变化——如果整个小批量中的变化较小,则标准差将很小,鉴别器可以使用此特征来区分假批次和真实批次!因此,生成器被激励确保它生成与真实训练数据中存在的变化量相似的数量。'
- en: Equalized learning rates
id: totrans-45
prefs:
- PREF_H3
type: TYPE_NORMAL
+ zh: 均衡学习率
- en: All dense and convolutional layers in ProGAN use *equalized learning rates*.
Usually, weights in a neural network are initialized using a method such as *He
initialization*—a Gaussian distribution where the standard deviation is scaled
@@ -332,6 +339,7 @@
id: totrans-46
prefs: []
type: TYPE_NORMAL
+ zh: ProGAN中的所有全连接和卷积层都使用*均衡学习率*。通常,神经网络中的权重是使用诸如*He初始化*之类的方法进行初始化的——这是一个高斯分布,其标准差被缩放为与层的输入数量的平方根成反比。这样,具有更多输入的层将使用与零的偏差较小的权重进行初始化,通常会提高训练过程的稳定性。
- en: The authors of the ProGAN paper found that this was causing problems when used
in combination with modern optimizers such as Adam or RMSProp. These methods normalize
the gradient update for each weight, so that the size of the update is independent
@@ -344,6 +352,7 @@
id: totrans-47
prefs: []
type: TYPE_NORMAL
+ zh: ProGAN论文的作者发现,当与Adam或RMSProp等现代优化器结合使用时,这会导致问题。这些方法会对每个权重的梯度更新进行归一化,使得更新的大小与权重的规模(幅度)无关。然而,这意味着具有较大动态范围(即具有较少输入的层)的权重将比具有较小动态范围(即具有更多输入的层)的权重需要更长时间来调整。发现这导致了ProGAN中生成器和鉴别器不同层的训练速度之间的不平衡,因此他们使用*均衡学习率*来解决这个问题。
- en: In ProGAN, weights are initialized using a simple standard Gaussian, regardless
of the number of inputs to the layer. The normalization is applied dynamically,
as part of the call to the layer, rather than only at initialization. This way,
@@ -353,11 +362,13 @@
id: totrans-48
prefs: []
type: TYPE_NORMAL
+ zh: 在ProGAN中,权重使用简单的标准高斯进行初始化,而不管层的输入数量如何。归一化是动态应用的,作为对层的调用的一部分,而不仅仅是在初始化时。这样,优化器会将每个权重视为具有大致相同的动态范围,因此会应用相同的学习率。只有在调用层时,权重才会按照He初始化器的因子进行缩放。
- en: Pixelwise normalization
id: totrans-49
prefs:
- PREF_H3
type: TYPE_NORMAL
+ zh: 像素级归一化
- en: Lastly, in ProGAN *pixelwise normalization* is used in the generator, rather
than batch normalization. This normalizes the feature vector in each pixel to
a unit length and helps to prevent the signal from spiraling out of control as
@@ -366,11 +377,13 @@
id: totrans-50
prefs: []
type: TYPE_NORMAL
+ zh: 最后,在ProGAN中,生成器中使用*像素级归一化*,而不是批归一化。这将每个像素中的特征向量归一化为单位长度,并有助于防止信号在网络中传播时失控。像素级归一化层没有可训练的权重。
- en: Outputs
id: totrans-51
prefs:
- PREF_H2
type: TYPE_NORMAL
+ zh: 输出
- en: In addition to the CelebA dataset, ProGAN was also applied to images from the
Large-scale Scene Understanding (LSUN) dataset with excellent results, as shown
in [Figure 10-7](#progan_examples). This demonstrated the power of ProGAN over
@@ -379,21 +392,25 @@
id: totrans-52
prefs: []
type: TYPE_NORMAL
+ zh: 除CelebA数据集外,ProGAN还应用于大规模场景理解(LSUN)数据集的图像,并取得了出色的结果,如[图10-7](#progan_examples)所示。这展示了ProGAN相对于早期GAN架构的强大之处,并为未来的迭代(如StyleGAN和StyleGAN2)铺平了道路,我们将在接下来的部分中探讨。
- en: '![](Images/gdl2_1007.png)'
id: totrans-53
prefs: []
type: TYPE_IMG
+ zh: '![](Images/gdl2_1007.png)'
- en: 'Figure 10-7\. Generated examples from a ProGAN trained progressively on the
LSUN dataset at 256 × 256 resolution (source: [Karras et al., 2017](https://arxiv.org/abs/1710.10196))'
id: totrans-54
prefs:
- PREF_H6
type: TYPE_NORMAL
+ zh: 图10-7\. 在LSUN数据集上渐进训练的ProGAN生成的示例,分辨率为256×256(来源:[Karras等人,2017](https://arxiv.org/abs/1710.10196))
- en: StyleGAN
id: totrans-55
prefs:
- PREF_H1
type: TYPE_NORMAL
+ zh: StyleGAN
- en: StyleGAN^([3](ch10.xhtml#idm45387005140128)) is a GAN architecture from 2018
that builds on the earlier ideas in the ProGAN paper. In fact, the discriminator
is identical; only the generator is changed.
@@ -529,6 +546,10 @@
id: totrans-71
prefs: []
type: TYPE_NORMAL
+ zh: AdaIN层是一种神经网络层,通过参考风格偏差和比例调整每个特征图的均值和方差。这两个向量的长度等于合成网络中前一卷积层输出的通道数。自适应实例归一化的方程如下:
- en: 比原始向量更具解耦性。
- en: Since the synthesis network is based on the ProGAN architecture, it is trained
progressively. The style vectors at earlier layers in the synthesis network (when
the resolution of the image is lowest—4 × 4, 8 × 8) will affect coarser features
@@ -574,11 +597,15 @@
id: totrans-74
prefs: []
type: TYPE_NORMAL
+ zh: 由于合成网络基于ProGAN架构,因此是逐步训练的。在合成网络中较早层的风格向量(当图像分辨率最低时为4×4、8×8)将影响比网络后期(64×64到1,024×1,024像素分辨率)更粗糙的特征。这意味着我们不仅可以通过潜在向量完全控制生成的图像,还可以在合成网络的不同点切换向量以改变各种细节级别的风格。
- en: Style mixing
id: totrans-75
prefs:
- PREF_H3
type: TYPE_NORMAL
+ zh: 风格混合
- en: The authors use a trick known as *style mixing* to ensure that the generator
cannot utilize correlations between adjacent styles during training (i.e., the
styles injected at each layer are as disentangled as possible). Instead of sampling
@@ -597,11 +624,22 @@
id: totrans-76
prefs: []
type: TYPE_NORMAL
+ zh: 作者使用一种称为*风格混合*的技巧,确保生成器在训练过程中不能利用相邻风格之间的相关性(即,每层注入的风格尽可能解耦)。不仅仅是采样单个潜在向量,而是采样两个,对应两个风格向量。然后,在每一层,随机选择或,以打破可能存在的向量之间的任何相关性。
- en: Stochastic variation
id: totrans-77
prefs:
- PREF_H3
type: TYPE_NORMAL
+ zh: 随机变化
- en: The synthesizer network adds noise (passed through a learned broadcasting layer
) after each convolution to account
for stochastic details such as the placement of individual hairs, or the background
@@ -610,6 +648,7 @@
id: totrans-78
prefs: []
type: TYPE_NORMAL
+ zh: 合成器网络在每个卷积后添加噪音(通过一个学习的广播层传递),以考虑诸如单个头发的放置或面部背后的背景等随机细节。再次强调,噪音注入的深度会影响对图像的影响粗糙程度。
- en: This also means that the initial input to the synthesis network can simply be
a learned constant, rather than additional noise. There is enough stochasticity
already present in the style inputs and the noise inputs to generate sufficient
@@ -617,25 +656,30 @@
id: totrans-79
prefs: []
type: TYPE_NORMAL
+ zh: 这也意味着合成网络的初始输入可以简单地是一个学习到的常量,而不是额外的噪音。在风格输入和噪音输入中已经存在足够的随机性,以生成图像的足够变化。
- en: Outputs from StyleGAN
id: totrans-80
prefs:
- PREF_H2
type: TYPE_NORMAL
+ zh: StyleGAN的输出
- en: '[Figure 10-9](#stylegan_w) shows StyleGAN in action.'
id: totrans-81
prefs: []
type: TYPE_NORMAL
+ zh: '[图10-9](#stylegan_w)展示了StyleGAN的工作原理。'
- en: '![](Images/gdl2_1009.png)'
id: totrans-82
prefs: []
type: TYPE_IMG
+ zh: '![](Images/gdl2_1009.png)'
- en: 'Figure 10-9\. Merging styles between two generated images at different levels
of detail (source: [Karras et al., 2018](https://arxiv.org/abs/1812.04948))'
id: totrans-83
prefs:
- PREF_H6
type: TYPE_NORMAL
+ zh: 图10-9. 在不同细节级别上合并两个生成图像的风格(来源:[Karras等人,2018](https://arxiv.org/abs/1812.04948))
- en: Here, two images, source A and source B, are generated from two different vectors. To generate a merged image, the source
A vector is passed through the synthesis
@@ -648,11 +692,16 @@
id: totrans-84
prefs: []
type: TYPE_NORMAL
+ zh: 这里,两个图像,源 A 和源 B,是从两个不同的 向量生成的。为了生成一个合并的图像,源
+ A 的 向量通过合成网络,但在某个时刻,被切换为源 B 的 向量。如果这个切换发生得很早(4 × 4 或 8 × 8 分辨率),则从源 B 传递到源 A 的是粗略的风格,如姿势、脸型和眼镜。然而,如果切换发生得更晚,只有来自源
+ B 的细粒度细节被传递,比如脸部的颜色和微结构,而来自源 A 的粗略特征被保留。
- en: StyleGAN2
id: totrans-85
prefs:
- PREF_H1
type: TYPE_NORMAL
+ zh: StyleGAN2
- en: The final contribution in this chain of important GAN papers is StyleGAN2.^([5](ch10.xhtml#idm45387005019232))
This builds further upon the StyleGAN architecture, with some key changes that
improve the quality of the generated output. In particular, StyleGAN2 generations
@@ -662,27 +711,34 @@
id: totrans-86
prefs: []
type: TYPE_NORMAL
+ zh: 在这一系列重要的 GAN 论文中的最终贡献是 StyleGAN2。这进一步构建在 StyleGAN 架构之上,通过一些关键改变提高了生成输出的质量。特别是,StyleGAN2
+ 生成不会像 *伪影* 那样受到严重影响——在 StyleGAN 中发现的图像中的水滴状区域,这些伪影是由于 StyleGAN 中的自适应实例归一化层引起的,如
+ [图 10-10](#artifacts_stylegan) 所示。
- en: '![](Images/gdl2_1010.png)'
id: totrans-87
prefs: []
type: TYPE_IMG
+ zh: '![](Images/gdl2_1010.png)'
- en: 'Figure 10-10\. An artifact in a StyleGAN-generated image of a face (source:
[Karras et al., 2019](https://arxiv.org/abs/1912.04958))'
id: totrans-88
prefs:
- PREF_H6
type: TYPE_NORMAL
+ zh: 图 10-10\. 一个 StyleGAN 生成的人脸图像中的伪影(来源:[Karras et al., 2019](https://arxiv.org/abs/1912.04958))
- en: Both the generator and the discriminator in StyleGAN2 are different from the
StyleGAN. In the next sections we will explore the key differences between the
architectures.
id: totrans-89
prefs: []
type: TYPE_NORMAL
+ zh: StyleGAN2 中的生成器和鉴别器与 StyleGAN 不同。在接下来的章节中,我们将探讨这两种架构之间的关键区别。
- en: Training Your Own StyleGAN2
id: totrans-90
prefs:
- PREF_H1
type: TYPE_NORMAL
+ zh: 训练您自己的 StyleGAN2
- en: The official code for training your own StyleGAN using TensorFlow is available
on [GitHub](https://oreil.ly/alB6w). Bear in mind that training a StyleGAN2 to
achieve the results from the paper requires a significant amount of computing
@@ -690,11 +746,14 @@
id: totrans-91
prefs: []
type: TYPE_NORMAL
+ zh: 使用 TensorFlow 训练您自己的 StyleGAN 的官方代码可在 [GitHub](https://oreil.ly/alB6w) 上找到。请注意,为了实现论文中的结果,训练一个
+ StyleGAN2 需要大量的计算资源。
- en: Weight Modulation and Demodulation
id: totrans-92
prefs:
- PREF_H2
type: TYPE_NORMAL
+ zh: 权重调制和去调制
- en: The artifact problem is solved by removing the AdaIN layers in the generator
and replacing them with weight modulation and demodulation steps, as shown in
[Figure 10-11](#stylegan2_styleblock).
@@ -705,6 +764,9 @@
id: totrans-93
prefs: []
type: TYPE_NORMAL
+ zh: 通过删除生成器中的 AdaIN 层并将其替换为权重调制和去调制步骤,解决了伪影问题,如 [图 10-11](#stylegan2_styleblock)
+ 所示。 代表卷积层的权重,在 StyleGAN2 中通过调制和去调制步骤直接在运行时更新。相比之下,StyleGAN
+ 的 AdaIN 层在图像张量通过网络时操作。
- en: The AdaIN layer in StyleGAN is simply an instance normalization followed by
style modulation (scaling and bias). The idea in StyleGAN2 is to apply style modulation
and normalization (demodulation) directly to the weights of the convolutional
@@ -714,15 +776,19 @@
id: totrans-94
prefs: []
type: TYPE_NORMAL
+ zh: StyleGAN 中的 AdaIN 层只是一个实例归一化,后面跟着样式调制(缩放和偏置)。StyleGAN2 中的想法是在运行时直接将样式调制和归一化(去调制)应用于卷积层的权重,而不是卷积层的输出,如
+ [图 10-11](#stylegan2_styleblock) 所示。作者展示了这如何消除了伪影问题,同时保持对图像样式的控制。
- en: '![](Images/gdl2_1011.png)'
id: totrans-95
prefs: []
type: TYPE_IMG
+ zh: '![](Images/gdl2_1011.png)'
- en: Figure 10-11\. A comparison between the StyleGAN and StyleGAN2 style blocks
id: totrans-96
prefs:
- PREF_H6
type: TYPE_NORMAL
+ zh: 图 10-11\. StyleGAN 和 StyleGAN2 样式块之间的比较
- en: 'In StyleGAN2, each dense layer outputs
a single style vector
, where indexes the number of input channels
@@ -731,6 +797,9 @@
id: totrans-97
prefs: []
type: TYPE_NORMAL
+ zh: 在 StyleGAN2 中,每个密集层 输出一个单一的样式向量 ,其中
+ 索引了相应卷积层中的输入通道数。然后将这个样式向量应用于卷积层的权重,如下所示:
- en: