当前位置: 首页 > news >正文

【计算机视觉|生成对抗】逐步增长的生成对抗网络(GAN)以提升质量、稳定性和变化

本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处

标题:Progressive Growing of GANs for Improved Quality, Stability, and Variation

链接:[1710.10196] Progressive Growing of GANs for Improved Quality, Stability, and Variation (arxiv.org)

摘要

我们描述了一种新的生成对抗网络(GANs)训练方法。关键思想是逐步地使生成器和判别器增长:从低分辨率开始,随着训练的进行,我们添加新的层(layer),这些层模拟了越来越精细的细节。这不仅加速了训练过程,还极大地稳定了训练过程,使我们能够生成前所未有质量的图像,例如 102 4 2 1024^2 10242分辨率的CELEBA图像。我们还提出了一种简单的方法来增加生成图像的变化,并在无监督的CIFAR10数据集中实现了创纪录的 8.80 8.80 8.80的Inception分数。

此外,我们描述了一些对于防止生成器和判别器之间不健康的竞争很重要的实现细节。最后,我们提出了一种用于评估GAN结果的新指标,既涉及图像质量又涉及变化。作为额外的贡献,我们构建了一个更高质量的CELEBA数据集版本。

1 引言

生成方法用于从高维数据分布(例如图像)中产生新样本,正在广泛应用于语音合成(van den Oord等,2016a)、图像转换(Zhu等,2017;Liu等,2017;Wang等,2017)和图像修复(Iizuka等,2017)等领域。目前,最突出的方法包括自回归模型(van den Oord等,2016b;c)、变分自编码器(VAE)(Kingma和Welling,2014)和生成对抗网络(GAN)(Goodfellow等,2014)。目前,它们都有显著的优势和劣势。自回归模型(如PixelCNN)可以生成清晰的图像,但评估速度较慢,并且由于直接模拟像素上的条件分布,它们没有潜在表示,这可能限制了它们的适用性。VAE易于训练,但由于模型的限制,往往会产生模糊的结果,尽管近期的工作正在改进这一点(Kingma等,2016)。GAN可以生成清晰的图像,尽管仅限于相对较小的分辨率,并且变化有些有限,尽管近期取得了进展,训练仍然不稳定(Salimans等,2016;Gulrajani等,2017;Berthelot等,2017;Kodali等,2017)。混合方法结合了这三种方法的各种优势,但在图像质量方面仍落后于GAN(Makhzani和Frey,2017;Ulyanov等,2017;Dumoulin等,2016)。

通常情况下,GAN由两个网络组成:生成器和判别器(也称为评论家)。生成器从潜在编码生成样本,例如图像,这些图像的分布理想情况下应与训练分布不可区分。由于通常不可能设计一个函数来判断是否为这种情况,因此训练一个判别器网络来进行评估。由于网络可微分,我们还可以获得梯度,以引导两个网络朝着正确的方向进行调整。通常,生成器是主要关注的对象,判别器是一个自适应的损失函数,在生成器训练完成后就会被丢弃。

这种表述存在多个潜在问题。当我们衡量训练分布和生成分布之间的距离时,如果这些分布没有实质性的重叠,即很容易区分开(Arjovsky和Bottou,2017),梯度可能指向更多或更少的随机方向。最初,Jensen-Shannon散度被用作距离度量(Goodfellow等,2014),近期这种表述已经得到改进(Hjelm等,2017),并且已经提出了许多更稳定的替代方法,包括最小二乘(Mao等,2016b)、带边际的绝对偏差(Zhao等,2017)和Wasserstein距离(Arjovsky等,2017;Gulrajani等,2017)。我们的贡献在很大程度上与这个持续的讨论无关,我们主要使用改进的Wasserstein损失,但也尝试了最小二乘损失。

由于更高的分辨率使得容易区分生成的图像与训练图像(Odena等,2017),因此严重放大了梯度问题,生成高分辨率图像变得困难。由于内存限制,大分辨率还需要使用较小的小批量,进一步影响训练的稳定性。我们的关键洞察是,我们可以逐步地使生成器和判别器增长,从容易的低分辨率图像开始,随着训练的进行,添加新的层,引入更高分辨率的细节。这极大地加速了训练,并提高了高分辨率图像的稳定性,我们将在第2节中讨论。

GAN的表述并不明确要求生成模型代表整个训练数据分布。传统观点认为图像质量和变化之间存在权衡,但这一观点最近受到了挑战(Odena等,2017)。当前正在关注保留的变化程度,已经提出了各种方法来衡量它,包括Inception分数(Salimans等,2016)、多尺度结构相似性(MS-SSIM)(Odena等,2017;Wang等,2003)、生日悖论(Arora和Zhang,2017)以及显式测试发现的离散模式数量(Metz等,2016)。我们将在第3节中描述鼓励变化的方法,并在第5节中提出用于评估质量和变化的新指标。

第4.1节讨论了对网络初始化的微小修改,以实现不同层之间更平衡的学习速度。此外,我们观察到通常困扰GAN的模式崩溃往往发生得非常快,仅在几十个小批量内。通常,它们在判别器超调时开始,导致梯度夸张,然后会出现不健康的竞争,两个网络中的信号幅度升高。我们提出了一种机制来阻止生成器参与这种升级,克服了这个问题(第4.2节)。

我们使用CELEBA、LSUN、CIFAR10数据集来评估我们的贡献。我们改进了CIFAR10的最佳发布Inception分数。由于在基准生成方法中通常使用的数据集分辨率较低,我们还创建了一个更高质量的CELEBA数据集版本,允许在输出分辨率高达1024×1024像素进行实验。该数据集和我们的完整实现可在 https://github.com/tkarras/progressive_growing_of_gans 找到,训练好的网络可在 https://drive.google.com/open?id=0B4qLcYyJmiz0NHFULTdYc05lX0U 找到,同时附带结果图像,以及一个说明性视频,展示了数据集、附加结果和潜在空间插值,地址为 https://youtu.be/G06dEcZ-QTg 。

2 逐步增长的生成对抗网络

我们的主要贡献是一种生成对抗网络(GANs)的训练方法,我们从低分辨率图像开始,逐步增加分辨率,通过向网络添加层,如图1所示。这种渐进的方式使得训练首先可以发现图像分布的大尺度结构,然后将注意力转移到越来越细的尺度细节,而不是必须同时学习所有尺度。

图1:我们的训练始于生成器(G)和判别器(D)的低分辨率状态,为 4×4 像素。随着训练的进行,我们逐步向 G 和 D 添加层,从而增加生成图像的空间分辨率。在整个过程中,所有现有的层都保持可训练状态。这里的 N × N 表示卷积层在 N × N 的空间分辨率上操作。这使得在高分辨率下能够稳定地合成图像,并且极大地加快了训练速度。在右侧,我们展示了使用渐进式增长生成的 1024 × 1024 分辨率的六个示例图像。

我们使用生成器和判别器网络,它们是彼此的镜像,始终同步增长。在整个训练过程中,两个网络中的所有现有层都保持可训练状态。当向网络添加新层时,我们会平滑地将它们淡入,如图2所示。这避免了对已经训练得很好的较小分辨率层造成突然的冲击。附录A详细描述了生成器和判别器的结构,以及其他训练参数。

图2:当增加生成器(G)和判别器(D)的分辨率时,我们平滑地渐入新层。这个示例展示了从 16 × 16 图像 (a) 到 32 × 32 图像 © 的过渡。在过渡期间 (b),我们将在更高分辨率上操作的层视为一个残差块,其权重 α 从 0 线性增加到 1。这里的 2× 和 0.5× 分别表示使用最近邻滤波和平均池化进行图像分辨率的加倍和减半。toRGB 代表一个将特征向量投影到 RGB 颜色的层,而 fromRGB 则执行相反的操作;两者都使用 1 × 1 卷积。在训练判别器时,我们将实际图像缩小以与网络的当前分辨率匹配。在分辨率过渡期间,我们在实际图像的两个分辨率之间插值,类似于生成器输出组合两个分辨率的方式。

我们观察到,渐进式训练有几个好处。早期,生成较小图像的稳定性要更高,因为这里的类别信息较少,模式也较少(Odena等,2017)。通过逐渐增加分辨率,与从潜在向量到例如1024^2图像的最终目标相比,我们一直在持续地提出一个更简单的问题。这种方法在概念上与Chen和Koltun(2017)最近的工作有相似之处。在实践中,它稳定了训练,使我们能够使用WGAN-GP损失(Gulrajani等,2017)甚至LSGAN损失(Mao等,2016b)可靠地合成百万像素级别的图像。另一个好处是减少的训练时间。通过逐步增长的GANs,在较低分辨率下完成大部分迭代,通常可以在2-6倍的速度上获得相当的结果质量,具体取决于最终的输出分辨率。

渐进增长GANs的思想与Wang等(2017)的工作相关,他们使用多个判别器来操作不同的空间分辨率。这项工作受到Durugkar等(2016)的启发,后者同时使用一个生成器和多个判别器,以及Ghosh等(2017),他们使用多个生成器和一个判别器。分层GANs(Denton等,2015;Huang等,2016;Zhang等,2017)为图像金字塔的每个层级定义一个生成器和判别器。这些方法建立在与我们工作相同的观察基础上,即从潜在向量到高分辨率图像的复杂映射在逐步学习中更容易实现,但关键的区别是我们只有一个单一的GAN,而不是一系列的GAN层级。与早期关于自适应增长网络的工作相反,例如自适应增长神经气体(Fritzke,1995)和增强拓扑的神经进化(Stanley和Miikkulainen,2002),这些方法会贪婪地增加网络,我们只是延迟引入预配置的层。在这种意义上,我们的方法类似于自编码器的逐层训练(Bengio等,2007)。

3 使用小批量标准差增加变化

生成对抗网络(GANs)往往只能捕捉到训练数据中的一个子集的变化,Salimans等人(2016)提出了“小批量区分”作为解决方案。他们不仅从单个图像计算特征统计信息,还从小批量中计算,从而鼓励生成和训练图像的小批量显示类似的统计信息。这是通过在判别器末尾添加一个小批量层来实现的,该层学习一个大张量,将输入激活投影到一组统计数据中。对于小批量中的每个示例,都会生成一组单独的统计数据,并将其连接到层的输出,以便判别器可以在内部使用这些统计数据。我们在极大地简化了这个方法的同时,也改善了变化。

我们的简化解决方案既没有可学习的参数,也没有新的超参数。我们首先计算每个空间位置上的每个特征在小批量上的标准差。然后,我们将这些估计值在所有特征和空间位置上平均,得到一个单一的值。我们复制这个值,并将它连接到所有的空间位置和小批量上,从而产生一个额外的(恒定的)特征图。这个层可以插入到判别器的任何位置,但我们发现将其插入到末尾是最好的(详见附录A.1)。我们尝试了更丰富的统计数据集,但未能进一步改善变化。在平行的工作中,Lin等人(2017)就向判别器显示多个图像的益处提供了理论洞察。

解决变化问题的其他方法包括展开判别器(Metz等人,2016)以规范其更新,以及添加“排斥正则化器”(Zhao等人,2017)到生成器中,试图鼓励生成器在小批量中使特征向量正交。Ghosh等人(2017)的多个生成器也有类似的目标。我们承认,这些解决方案可能会进一步增加变化,甚至可能与我们的解决方案正交,但将详细的比较留待以后。

4 生成器和判别器中的标准化

生成对抗网络(GANs)容易因为两个网络之间的不健康竞争而导致信号幅度的升级。大多数情况下,如果不是全部情况,以前的解决方案都会使用批归一化的变体(Ioffe&Szegedy,2015;Salimans&Kingma,2016;Ba等,2016)在生成器中使用,通常也会在判别器中使用。这些归一化方法最初是引入的,以消除协变量偏移。然而,在GAN中,我们并没有观察到这是一个问题,因此我们认为GAN中的实际需求是约束信号幅度和竞争。我们使用了一个包含两个成分的不同方法,其中都没有可学习的参数。

4.1 均衡学习率

我们不同于当前谨慎权重初始化的趋势,而是使用了一个简单的 N ( 0 , 1 ) N(0, 1) N(0,1)初始化,然后在运行时明确地缩放权重。准确地说,我们设置 w ^ i = w i / c ŵ_i = w_i/c w^i=wi/c,其中 w i w_i wi是权重, c c c是来自He的初始化器(He等,2015)的每层归一化常数。之所以在运行时而不是在初始化时执行这个操作的好处,有些微妙,与常用的自适应随机梯度下降方法(例如RMSProp(Tieleman&Hinton,2012)和Adam(Kingma&Ba,2015))中的尺度不变性有关。这些方法通过其估计的标准差来归一化梯度更新,从而使更新独立于参数的尺度。因此,如果某些参数的动态范围大于其他参数,它们将需要更长时间来调整。这是现代初始化器引起的情况,因此可能学习率同时过大和过小。我们的方法确保所有权重的动态范围以及学习速度都相同。Van Laarhoven(2017)也独立地使用了类似的推理。

4.2 生成器中的像素特征向量标准化

为了防止生成器和判别器中的幅度因竞争而失控的情况,我们在每个卷积层后将生成器中每个像素的特征向量归一化为单位长度。我们使用一种“局部响应归一化”的变体(Krizhevsky等人,2012),配置为

b x , y = a x , y 1 N ∑ j = 0 N − 1 ( a x , y j ) 2 + ε b_{x,y} = \frac {a_{x,y}} {\sqrt {\frac{1}{N} \sum_{j=0}^{N-1}(a^j_{x,y}) ^ 2 + ε}} bx,y=N1j=0N1(ax,yj)2+ε ax,y

其中 ε = 1 0 − 8 ε = 10^{-8} ε=108 N N N是特征图的数量, a x , y a_{x,y} ax,y b x , y b_{x,y} bx,y分别是像素 ( x , y ) (x,y) (x,y)中的原始和归一化特征向量。令人惊讶的是,这种严格的约束似乎并没有以任何方式损害生成器,实际上在大多数数据集上它并没有太大地改变结果,但在需要时它能够非常有效地防止信号幅度的升级。

5 用于评估GAN结果的多尺度统计相似性

为了将一个GAN的结果与另一个进行比较,需要调查大量图像,这可能是繁琐、困难且主观的。因此,希望能依赖于自动化方法,从大型图像集合中计算出一些指示性的度量。我们注意到,现有方法,如多尺度结构相似性(MS-SSIM)(Odena等人,2017),能够可靠地发现大尺度的模式崩溃,但无法对颜色或纹理变化的较小效果做出反应,它们也不能直接从与训练集的相似性来评估图像质量。

我们基于这样的直觉构建,即一个成功的生成器会产生出样本,其局部图像结构在所有尺度上都类似于训练集。我们提出通过考虑从生成和目标图像的拉普拉斯金字塔(Burt&Adelson,1987)表示中提取的局部图像块的分布之间的多尺度统计相似性来研究这一点,从16×16像素的低通分辨率开始。按照标准做法,该金字塔逐渐倍增,直到达到完整的分辨率,每个连续的层级编码到前一层级的上采样版本的差异。

一个单一的拉普拉斯金字塔级别对应于特定的空间频率带。我们随机采样了16384张图像,并从拉普拉斯金字塔的每个级别中提取了128个描述符,为每个级别给出了 2 21 2^{21} 221(2.1M)个描述符。每个描述符是一个带有3个颜色通道的 7 × 7 7×7 7×7像素邻域,用 x ∈ R 7 × 7 × 3 = R 147 x ∈ R^{7×7×3} = R^{147} xR7×7×3=R147表示。我们将训练集和生成集中级别 l l l的图像块分别表示为 { x i l } i = 1 2 21 \{x^l_i\}^{2^{21}}_{i=1} {xil}i=1221 { x i l } i = 1 2 21 \{x^l_i\}^{2^{21}}_{i=1} {xil}i=1221 ,我们首先根据每个颜色通道的均值和标准差对 { x i l } \{x^l_i\} {xil} { y i l } \{y^l_i\} {yil} 进行归一化,然后通过计算它们的切片Wasserstein距离 S W D ( { x i l } { y i l } ) SWD(\{x^l_i\}\{y^l_i\}) SWD({xil}{yil}) 来估计统计相似性,这是对移动距离的有效可计算随机估计,使用512个投影(Rabin等人,2011)。

直观地,小的Wasserstein距离表明图像块的分布是相似的,这意味着训练图像和生成样本在这个空间分辨率上看起来在外观和变化方面都相似。特别是,从最低分辨率的 16 × 16 16×16 16×16图像中提取的块集之间的距离指示了大尺度图像结构的相似性,而最细级别的块则编码了有关像素级属性(如边缘的清晰度和噪声)的信息。

6 实验

本节讨论了我们进行的一系列实验,以评估我们结果的质量。有关网络结构和训练配置的详细描述,请参见附录A。我们还邀请读者查阅附带的视频( https://youtu.be/G06dEcZ-QTg )以获取更多的结果图像和潜在空间插值。

在本节中,我们将区分网络结构(例如,卷积层,调整大小)、训练配置(各种规范化层,与小批量相关的操作)以及训练损失(WGAN-GP,LSGAN)。

6.1 通过统计相似性评估各项贡献的重要性

首先,我们将使用切片Wasserstein距离(SWD)和多尺度结构相似性(MS-SSIM)(Odena等人,2017)来评估我们各个贡献的重要性,并对度量本身进行感知验证。我们将在先前的状态-of-the-art损失函数(WGAN-GP)和训练配置(Gulrajani等人,2017)的基础上进行构建,以无监督的方式使用CELEBA(Liu等人,2015)和LSUN BEDROOM(Yu等人,2015)数据集进行1282分辨率的测试。 CELEBA特别适合此类比较,因为训练图像包含难以忠实地再现的明显伪影(混叠、压缩、模糊等)。在此测试中,我们通过选择相对低容量的网络结构(附录A.2)并在将总共显示给判别器的真实图像数量达到1000万时终止训练,放大了训练配置之间的差异。因此,结果尚未完全收敛。

表1列出了几种训练配置中的SWD和MS-SSIM的数值,在基线(Gulrajani等人,2017)之上逐步启用我们的各个贡献。 MS-SSIM数字是从10000对生成的图像中平均得出的,而SWD是如第5节所述计算得出的。这些配置生成的CELEBA图像显示在图3中。由于篇幅限制,该图只显示了表中每行的一小部分示例,但在附录H中提供了更广泛的示例。直观上,一个好的评估指标应该奖励在颜色、纹理和视角方面表现出丰富变化的合理图像。然而,MS-SSIM没有捕捉到这一点:我们可以立即看出配置(h)生成的图像明显比配置(a)更好,但MS-SSIM基本保持不变,因为它仅测量输出之间的变化,而不是与训练集的相似性。另一方面,SWD确实表明了明显的改进。

表1:在 128 × 128 分辨率下,不同训练设置下生成图像与训练图像之间的切片 Wasserstein 距离(SWD)(第 5 节)以及生成图像之间的多尺度结构相似性(MS-SSIM)。对于 SWD,每一列代表拉普拉斯金字塔的一个层次,最后一列给出四个距离的平均值。

图3:(a) – (g) 对应于表 1 中各行的 CELEBA 示例,这些示例故意是非收敛的。 (h) 我们的收敛结果。注意,一些图像显示出了锯齿现象,一些图像不够清晰 - 这是数据集的一个缺陷,模型学会了忠实地复制这些特点。

第一个训练配置(a)对应于Gulrajani等人(2017),其中生成器中有批归一化,判别器中有层归一化,小批量大小为64。 (b) 启用了网络的逐步增长,导致更锐利、更可信的输出图像。SWD正确地发现生成图像的分布更类似于训练集。我们的主要目标是实现高分辨率输出,这需要减小小批量的大小,以使其适应可用的内存预算。我们在©中展示了随着小批量大小从64减小到16所带来的挑战。生成的图像是不自然的,这在两个指标中都明显可见。在(d)中,我们通过调整超参数以及去除批归一化和层归一化(附录A.2)来稳定训练过程。作为中间测试(e∗),我们启用了小批量判别(Salimans等人,2016),令人惊讶的是,它在任何指标上都没有改善,包括衡量输出变化的MS-SSIM。相反,我们的小批量标准差(e)提高了平均SWD分数和图像质量。然后,在(f)和(g)中启用了我们的其他贡献,从而在SWD和主观视觉质量方面都取得了改进。最后,在(h)中,我们使用非缩减的网络和更长的训练 - 我们认为生成的图像质量至少与迄今为止发表的最佳结果相当。

6.2 收敛和训练速度

图4说明了在SWD指标和原始图像吞吐量方面,逐步增长对训练的影响。前两个图对应于Gulrajani等人(2017)的训练配置,没有逐步增长和有逐步增长。我们观察到,逐步增长变体提供了两个主要优势:它收敛到更好的极值,并且将总训练时间减少了约两倍。改进的收敛性是通过逐渐增加网络容量所实施的一种隐式的课程学习来解释的。没有逐步增长,生成器和判别器的所有层都要同时为大尺度变化和小尺度细节找到简洁的中间表示。然而,通过逐步增长,现有的低分辨率层在早期可能已经收敛,因此网络只需要通过引入新层来逐渐减小尺度效应来精炼表示。的确,我们可以在图4(b)中看到最大尺度统计相似性曲线(16)非常快速地达到其最佳值,并在其余训练的过程中保持一致。较小尺度的曲线(32、64、128)随着分辨率的增加逐一趋于平稳,但每个曲线的收敛都同样一致。在图4(a)中,非逐步增长训练中,每个尺度的SWD指标大致同时收敛,这是可以预期的。

图4:渐进增长对训练速度和收敛的影响 这些时间是在单 GPU 设置下,使用 NVIDIA Tesla P100 测量的。(a)使用 CELEBA 数据集在 128 × 128 分辨率下,针对 Gulrajani 等人(2017)方法,与墙上时钟时间的统计相似性。每个图表代表拉普拉斯金字塔的一个层次上的切片 Wasserstein 距离,垂直线指示我们在表 1 中停止训练的点。(b)启用渐进增长的相同图表。虚线垂直线指示我们对 G 和 D 的分辨率加倍的点。(c)渐进增长对于 1024 × 1024 分辨率下原始训练速度的影响。

逐步增长的加速度随着输出分辨率的增加而增加。图4©显示了在训练过程中,以显示给判别器的真实图像数量为衡量标准,当训练一直进行到1024 × 1024分辨率时的训练时间的情况。我们可以看到,逐步增长变体因为网络在开始时是浅层且快速评估,所以获得了显著的起步优势。一旦达到完整分辨率,两种方法之间的图像吞吐量是相等的。图表显示,逐步变体在96小时内达到了大约640万张图像,而可以推测,非逐步变体将花费大约520小时才能达到相同的程度。在这种情况下,逐步增长提供了大约5.4倍的加速度。

6.3 使用CELEBA-HQ数据集生成高分辨率图像

为了有意义地展示高输出分辨率下的结果,我们需要一个足够多样且高质量的数据集。然而,先前在GAN文献中使用的几乎所有公开数据集都限制在相对较低的分辨率范围内,从322到4802不等。为此,我们创建了一个高质量版本的CELEBA数据集,由30000张1024 × 1024分辨率的图像组成。有关创建此数据集的更多细节,请参见附录C。我们的贡献使我们能够以稳健且高效的方式处理高输出分辨率。

图5显示了我们的网络生成的选定1024 × 1024图像。虽然在另一个数据集(Marchesi,2017)中已经展示过百万像素GAN结果,但我们的结果更加多样且具有更高的视觉质量。更多的结果图像以及从训练数据中找到的最近邻示例,请参阅附录F。随附的视频展示了潜在空间插值并可视化了逐步训练。插值的工作方式是首先为每个帧随机生成一个潜在编码(从N(0,1)中单独采样的512个分量),然后使用高斯(σ = 45帧@60Hz)在时间上模糊潜在变量,最后将每个向量归一化为超球面上的向量。

图5:使用 CELEBA-HQ 数据集生成的 1024 × 1024 图像。请参见附录 F 获取更大的结果集,以及附带的视频中的潜在空间插值。

我们使用8台Tesla V100 GPU对网络进行了4天的训练,在此之后,我们不再观察到连续训练迭代的结果有质量上的差异。我们的实现根据当前输出分辨率使用自适应小批量大小,以便最佳地利用可用内存预算。

为了证明我们的贡献在很大程度上与损失函数的选择无关,我们还使用了LSGAN损失而不是WGAN-GP损失对同一网络进行了训练。图1显示了使用LSGAN生成的六个10242图像的示例。有关此设置的更多细节,请参见附录B。

6.4 LSUN的结果

图6在视觉上比较了我们的解决方案与先前在LSUN BEDROOM中的结果。图7从2562的七个非常不同的LSUN类别中选择了一些示例。来自所有30个LSUN类别的更大、非精选的结果集在附录G中提供,视频演示了插值。我们不知道在这些类别中有哪些先前的结果,尽管有些类别效果比其他类别更好,但我们认为总体质量较高。

图6:在 LSUN BEDROOM 中的视觉质量比较;图片来自引用的文章。

图7:从不同的 LSUN 类别生成的 256 × 256 图像选择。

6.5 CIFAR10的Inception分数

我们知道CIFAR10(32 × 32的RGB图像的10个类别)的最佳Inception分数是7.90,而标签条件设置的分数是8.87(Grinblat等人,2017)。两个数字之间的巨大差异主要是由于在无监督设置中必然出现的“幽灵”(即类别之间的过渡)而引起的,而标签条件设置可以消除许多这样的过渡。

当启用我们的所有贡献时,我们在无监督设置下得到了8.80的分数。附录D展示了一组生成图像的代表性示例,以及早期方法的更全面的结果列表。网络和训练设置与CELEBA相同,当然,分辨率限制在32 × 32。唯一的定制是WGAN-GP的正则化项 KaTeX parse error: Got function '\hat' with no arguments as subscript at position 14: E_{\hat{x}∼P_\̲h̲a̲t̲{x}}[(||∇\hat{x… 。Gulrajani等人(2017)使用了 γ = 1.0 γ = 1.0 γ=1.0 ,这对应于1-Lipschitz,但我们注意到实际上最好是优先选择快速过渡( γ = 750 γ = 750 γ=750),以最小化“幽灵”。我们没有尝试在其他数据集上使用这个技巧。

7 讨论

虽然与GANs以前的工作相比,我们的结果质量通常较高,并且在高分辨率下的训练是稳定的,但要达到真正的逼真程度还有很长的路要走。语义上的合理性和理解数据集特定的约束,比如某些物体是直的而不是弯曲的,仍有很大的改进空间。图像的微观结构也有提升的空间。尽管如此,我们认为令人信服的逼真感现在可能已经近在眼前,特别是在CELEBA-HQ数据集中。

8 致谢

我们要感谢Mikael Honkavaara、Tero Kuosmanen和Timi Hietanen提供的计算基础设施。Dmitry Korobchenko和Richard Calderwood为CELEBA-HQ数据集相关工作所做的努力。Oskar Elek、Jacob Munkberg和Jon Hasselgren为有益的评论。

REFERENCES

  1. Martin Arjovsky and L´eon Bottou. Towards principled methods for training generative adversarial networks. In ICLR, 2017.

  2. Martin Arjovsky, Soumith Chintala, and L´eon Bottou. Wasserstein GAN. CoRR, abs/1701.07875, 2017.

  3. Sanjeev Arora and Yi Zhang. Do GANs actually learn the distribution? an empirical study. CoRR, abs/1706.08224, 2017.

  4. Jimmy Lei Ba, Jamie Ryan Kiros, and Geoffrey E. Hinton. Layer normalization. CoRR, abs/1607.06450, 2016.

  5. Yoshua Bengio, Pascal Lamblin, Dan Popovici, and Hugo Larochelle. Greedy layer-wise training of deep networks. In NIPS, pp. 153–160. 2007.

  6. David Berthelot, Tom Schumm, and Luke Metz. BEGAN: Boundary equilibrium generative adversarial networks. CoRR, abs/1703.10717, 2017.

  7. Peter J. Burt and Edward H. Adelson. Readings in computer vision: Issues, problems, principles, and paradigms. Chapter: The Laplacian Pyramid As a Compact Image Code, pp. 671–679. 1987.

  8. Qifeng Chen and Vladlen Koltun. Photographic image synthesis with cascaded refinement networks. CoRR, abs/1707.09405, 2017.

  9. Zihang Dai, Amjad Almahairi, Philip Bachman, Eduard H. Hovy, and Aaron C. Courville. Calibrating energy-based generative adversarial networks. In ICLR, 2017.

  10. Emily L. Denton, Soumith Chintala, Arthur Szlam, and Robert Fergus. Deep generative image models using a Laplacian pyramid of adversarial networks. CoRR, abs/1506.05751, 2015.

  11. Vincent Dumoulin, Ishmael Belghazi, Ben Poole, Alex Lamb, Martin Arjovsky, Olivier Mastropietro, and Aaron Courville. Adversarially learned inference. CoRR, abs/1606.00704, 2016.

  12. Ishan P. Durugkar, Ian Gemp, and Sridhar Mahadevan. Generative multi-adversarial networks. CoRR, abs/1611.01673, 2016.

  13. Bernd Fritzke. A growing neural gas network learns topologies. In Advances in Neural Information Processing Systems 7, pp. 625–632. 1995.

  14. Arnab Ghosh, Viveka Kulharia, Vinay P. Namboodiri, Philip H. S. Torr, and Puneet Kumar Dokania. Multi-agent diverse generative adversarial networks. CoRR, abs/1704.02906, 2017.

  15. Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, and Yoshua Bengio. Generative Adversarial Networks. In NIPS, 2014.

  16. Guillermo L. Grinblat, Lucas C. Uzal, and Pablo M. Granitto. Class-splitting generative adversarial networks. CoRR, abs/1709.07359, 2017.

  17. Ishaan Gulrajani, Faruk Ahmed, Mart´ın Arjovsky, Vincent Dumoulin, and Aaron C. Courville. Improved training of Wasserstein GANs. CoRR, abs/1704.00028, 2017.

  18. Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification. CoRR, abs/1502.01852, 2015.

  19. 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 NIPS, pp. 6626–6637. 2017.

  20. R Devon Hjelm, Athul Paul Jacob, Tong Che, Kyunghyun Cho, and Yoshua Bengio. Boundary-Seeking Generative Adversarial Networks. CoRR, abs/1702.08431, 2017.

  21. Xun Huang, Yixuan Li, Omid Poursaeed, John E. Hopcroft, and Serge J. Belongie. Stacked generative adversarial networks. CoRR, abs/1612.04357, 2016.

  22. Satoshi Iizuka, Edgar Simo-Serra, and Hiroshi Ishikawa. Globally and locally consistent image completion. ACM Trans. Graph., 36(4):107:1–107:14, 2017.

  23. Sergey Ioffe and Christian Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. CoRR, abs/1502.03167, 2015.

  24. Diederik P. Kingma and Jimmy Ba. Adam: A method for stochastic optimization. In ICLR, 2015.

  25. Diederik P. Kingma and Max Welling. Auto-encoding variational Bayes. In ICLR, 2014.

  26. Diederik P Kingma, Tim Salimans, Rafal Jozefowicz, Xi Chen, Ilya Sutskever, and Max Welling. Improved variational inference with inverse autoregressive flow. In NIPS, volume 29, pp. 4743–4751. 2016.

  27. Naveen Kodali, Jacob D. Abernethy, James Hays, and Zsolt Kira. How to train your DRAGAN. CoRR, abs/1705.07215, 2017.

  28. Dmitry Korobchenko and Marco Foco. Single image super-resolution using deep learning, 2017. URL: https://gwmt.nvidia.com/super-res/about. Machines Can See summit.

  29. Alex Krizhevsky, Ilya Sutskever, and Geoffrey E. Hinton. ImageNet classification with deep convolutional neural networks. In NIPS, pp. 1097–1105. 2012.

  30. Christian Ledig, Lucas Theis, Ferenc Huszar, Jose Caballero, Andrew P. Aitken, Alykhan Tejani, Johannes Totz, Zehan Wang, and Wenzhe Shi. Photo-realistic single image super-resolution using a generative adversarial network. CoRR, abs/1609.04802, 2016.

  31. Zinan Lin, Ashish Khetan, Giulia Fanti, and Sewoong Oh. PacGAN: The power of two samples in generative adversarial networks. CoRR, abs/1712.04086, 2017.

  32. Ming-Yu Liu, Thomas Breuel, and Jan Kautz. Unsupervised image-to-image translation networks. CoRR, abs/1703.00848, 2017.

  33. Ziwei Liu, Ping Luo, Xiaogang Wang, and Xiaoou Tang. Deep learning face attributes in the wild. In ICCV, 2015.

  34. Alireza Makhzani and Brendan J. Frey. PixelGAN autoencoders. CoRR, abs/1706.00531, 2017.

  35. Xiao-Jiao Mao, Chunhua Shen, and Yu-Bin Yang. Image restoration using convolutional autoencoders with symmetric skip connections. CoRR, abs/1606.08921, 2016a.

  36. Xudong Mao, Qing Li, Haoran Xie, Raymond Y. K. Lau, and Zhen Wang. Least squares generative adversarial networks. CoRR, abs/1611.04076, 2016b.

  37. Marco Marchesi. Megapixel size image creation using generative adversarial networks. CoRR, abs/1706.00082, 2017.

  38. Luke Metz, Ben Poole, David Pfau, and Jascha Sohl-Dickstein. Unrolled generative adversarial networks. CoRR, abs/1611.02163, 2016.

  39. Augustus Odena, Christopher Olah, and Jonathon Shlens. Conditional image synthesis with auxiliary classifier GANs. In ICML, 2017.

  40. Julien Rabin, Gabriel Peyr, Julie Delon, and Marc Bernot. Wasserstein barycenter and its application to texture mixing. In Scale Space and Variational Methods in Computer Vision (SSVM), pp. 435–446, 2011.

  41. Alec Radford, Luke Metz, and Soumith Chintala. Unsupervised representation learning with deep convolutional generative adversarial networks. CoRR, abs/1511.06434, 2015.

  42. Tim Salimans and Diederik P. Kingma. Weight normalization: A simple reparameterization to accelerate training of deep neural networks. CoRR, abs/1602.07868, 2016.

  43. Tim Salimans, Ian J. Goodfellow, Wojciech Zaremba, Vicki Cheung, Alec Radford, and Xi Chen. Improved techniques for training GANs. In NIPS, 2016.

  44. Kenneth O. Stanley and Risto Miikkulainen. Evolving neural networks through augmenting topologies. Evolutionary Computation, 10(2):99–127, 2002.

  45. Tijmen Tieleman and Geoffrey E. Hinton. Lecture 6.5 - RMSProp. Technical report, COURSERA: Neural Networks for Machine Learning, 2012.

  46. Dmitry Ulyanov, Andrea Vedaldi, and Victor S. Lempitsky. Adversarial generator-encoder networks. CoRR, abs/1704.02304, 2017.

  47. A¨aron van den Oord, Sander Dieleman, Heiga Zen, Karen Simonyan, Oriol Vinyals, Alex Graves, Nal Kalchbrenner, Andrew W. Senior, and Koray Kavukcuoglu. WaveNet: A generative model for raw audio. CoRR, abs/1609.03499, 2016a.

  48. A¨aron van den Oord, Nal Kalchbrenner, and Koray Kavukcuoglu. Pixel recurrent neural networks. In ICML, pp. 1747–1756, 2016b.

  49. A¨aron van den Oord, Nal Kalchbrenner, Oriol Vinyals, Lasse Espeholt, Alex Graves, and Koray Kavukcuoglu. Conditional image generation with PixelCNN decoders. CoRR, abs/1606.05328, 2016c.

  50. Twan van Laarhoven. L2 regularization versus batch and weight normalization. CoRR, abs/1706.05350, 2017.

  51. Ting-Chun Wang, Ming-Yu Liu, Jun-Yan Zhu, Andrew Tao, Jan Kautz, and Bryan Catanzaro. High-resolution image synthesis and semantic manipulation with conditional GANs. CoRR, abs/1711.11585, 2017.

  52. Zhou Wang, Eero P. Simoncelli, and Alan C. Bovik. Multi-scale structural similarity for image quality assessment. In Proc. IEEE Asilomar Conf. on Signals, Systems, and Computers, pp. 1398–1402, 2003.

  53. David Warde-Farley and Yoshua Bengio. Improving generative adversarial networks with denoising feature matching. In ICLR, 2017.

  54. Jianwei Yang, Anitha Kannan, Dhruv Batra, and Devi Parikh. LR-GAN: Layered recursive generative adversarial networks for image generation. In ICLR, 2017.

  55. Fisher Yu, Yinda Zhang, Shuran Song, Ari Seff, and Jianxiong Xiao. LSUN: Construction of a large-scale image dataset using deep learning with humans in the loop. CoRR, abs/1506.03365, 2015.

  56. Han Zhang, Tao Xu, Hongsheng Li, Shaoting Zhang, Xiaolei Huang, Xiaogang Wang, and Dimitris N. Metaxas. StackGAN: Text to photo-realistic image synthesis with stacked generative adversarial networks. In ICCV, 2017.

  57. Junbo Jake Zhao, Micha¨el Mathieu, and Yann LeCun. Energy-based generative adversarial network. In ICLR, 2017.

  58. Jun-Yan Zhu, Taesung Park, Phillip Isola, and Alexei A. Efros. Unpaired image-to-image translation using cycle-consistent adversarial networks. CoRR, abs/1703.10593, 2017.

A 网络结构和训练配置

A.1 用于 CELEBA-HQ 的 1024 × 1024 网络

表2展示了我们在 CELEBA-HQ 数据集上使用的完整分辨率生成器和判别器的网络架构。这两个网络主要由逐步引入的3层复制块组成,训练过程中逐步引入这些块。生成器的最后一个 1 × 1 1 \times 1 1×1 卷积层对应于图2中的 toRGB 块,判别器的第一个 1 × 1 1 \times 1 1×1 卷积层类似地对应于 fromRGB。我们从 4 × 4 4 \times 4 4×4 分辨率开始训练网络,总共向判别器展示了 800k 个真实图像。然后,我们在接下来的 800k 个图像中在第一个 3层块中淡入,再稳定网络 800k 个图像,在接下来的 800k 个图像中淡入下一个 3层块,以此类推。

表2:我们在 CELEBA-HQ 中使用的生成器和判别器,用于生成 1024×1024 图像。

潜在向量对应于512维超球面上的随机点,我们将训练和生成的图像归一化到 [ − 1 , 1 ] [-1,1] [1,1] 范围内。在两个网络的所有层中,除了最后一层使用线性激活函数外,都使用了泄漏整流线性单元(Leaky ReLU),泄漏率为0.2。在任何一个网络中,我们都没有使用批归一化、层归一化或权重归一化。但是,在生成器的每个 3 × 3 3 \times 3 3×3 卷积层之后,我们对特征向量进行逐像素归一化,就像第4.2节中所述。

所有偏置参数都初始化为零,并且所有权重按照单位方差的正态分布进行初始化。然而,我们在运行时使用层特定的常数来缩放权重,正如第4.1节所述。我们将在第3节中描述的过程中,在判别器末尾的 4 × 4 4 \times 4 4×4 分辨率处,注入了跨小批量标准差作为额外的特征图。表 2 中的上采样和下采样操作分别对应于 2 × 2 2 \times 2 2×2 元素复制和平均池化,分别。

训练过程中使用 Adam 优化器(Kingma & Ba, 2015),其中 α = 0.001 \alpha = 0.001 α=0.001 β 1 = 0 \beta_1 = 0 β1=0 β 2 = 0.99 \beta_2 = 0.99 β2=0.99 ϵ = 1 0 − 8 \epsilon = 10^{-8} ϵ=108。我们没有使用任何学习率衰减或降低策略。为了在训练过程中可视化生成器的输出,在生成器的权重上使用了指数移动平均,衰减率为0.999。对于分辨率从 4 2 4^2 42 12 8 2 128^2 1282 的不同情况,我们使用小批量大小 16,然后逐渐减小大小,分别变为 25 6 2 → 14 256^2 \rightarrow 14 256214 51 2 2 → 6 512^2 \rightarrow 6 51226 102 4 2 → 3 1024^2 \rightarrow 3 102423,以避免超出内存预算。

我们使用了 WGAN-GP 损失,但与 Gulrajani 等人(2017年)不同的是,我们在每个小批量上交替优化生成器和判别器,即设置 n critic = 1 n_{\text{critic}} = 1 ncritic=1。此外,我们在判别器损失中引入了第四个项,其权重非常小,以防止判别器输出偏离零太远。准确地说,我们设置 L ′ = L + ϵ drift E x ∈ P r [ D ( x ) 2 ] L' = L + \epsilon_{\text{drift}}E_{x \in P_r} [D(x)^2] L=L+ϵdriftExPr[D(x)2],其中 ϵ drift = 0.001 \epsilon_{\text{drift}} = 0.001 ϵdrift=0.001

A.2 其他网络

对于低于 1024 × 1024 1024 \times 1024 1024×1024 的空间分辨率,我们在两个网络中适当地略去了复制的 3 层块的数量。

此外,在第 6.1 节中,我们使用了稍低容量的版本,在 16 × 16 16 \times 16 16×16 分辨率的 Conv 3 × 3 3 \times 3 3×3 层中减少了特征映射的数量,随后在后续分辨率中减少了4倍。这使得最后一个 Conv 3 × 3 3 \times 3 3×3 层有32个特征映射。在表1和图4中,我们对每个分辨率进行了总共 600k 张图像的训练,而不是 800k 张,并在 600k 张图像的持续时间内淡入新层。

对于表1中的 “Gulrajani 等人(2017年)” 情况,我们尽量遵循他们的训练配置。具体来说,包括 α = 0.0001 \alpha = 0.0001 α=0.0001 β 2 = 0.9 \beta_2 = 0.9 β2=0.9 n critic = 5 n_{\text{critic}} = 5 ncritic=5 ϵ drift = 0 \epsilon_{\text{drift}} = 0 ϵdrift=0,和小批量大小为 64。禁用了渐进式分辨率、小批量标准差以及运行时的权重缩放,所有权重都使用了 He 初始化器(He et al., 2015)。此外,在生成器中,我们用 ReLU 替换了 LReLU,将最后一层的线性激活改为 tanh,将逐像素归一化改为批归一化。在判别器中,对所有 Conv 3 × 3 3 \times 3 3×3 和 Conv 4 × 4 4 \times 4 4×4 层添加了层归一化。潜在向量由从正态分布独立采样的 128 个分量组成。

B 1024 × 1024 的最小二乘生成对抗网络 (Least-Squares GAN, LSGAN)

我们发现 LSGAN 通常比 WGAN-GP 更不稳定,而且在长时间运行结束时也容易失去一些变化。因此,我们更倾向于使用 WGAN-GP,但也通过在 LSGAN 的基础上构建来生成高分辨率图像。例如,图1中的 10242 图像是基于 LSGAN 的。

除了在第 2 至 4 节中描述的技术之外,我们在 LSGAN 中还需要一个额外的“hack”,以防止在数据集对于判别器来说过于简单的情况下训练失控,导致判别器梯度失去意义。我们会根据判别器的输出,自适应地增加判别器中的乘性高斯噪声的幅度。这个噪声会应用于每个 Conv 3 × 3 3 \times 3 3×3 和 Conv 4 × 4 4 \times 4 4×4 层的输入。历史上一直有在判别器中添加噪声的做法,但通常会对图像质量产生负面影响(Arjovsky et al., 2017)。理想情况下是不需要这样做的,而根据我们的测试结果,对于 WGAN-GP(Gulrajani et al., 2017)来说,这是成立的。噪声的幅度由公式 0.2 ⋅ max ⁡ ( 0 , d ^ t − 0.5 ) 2 0.2 \cdot \max(0, \hat{d}_t - 0.5)^2 0.2max(0,d^t0.5)2 决定,其中 d ^ t = 0.1 d + 0.9 d ^ t − 1 \hat{d}_t = 0.1d + 0.9\hat{d}_{t-1} d^t=0.1d+0.9d^t1 是判别器输出 d d d 的指数移动平均。这个“hack”的动机是,当 d d d 接近(或超过)1.0 时,LSGAN 会变得非常不稳定。

C CELEBA-HQ 数据集

在本节中,我们描述了创建高质量版本的 CELEBA 数据集的过程,该数据集包含 30000 张 1024 × 1024 1024 \times 1024 1024×1024 分辨率的图像。作为起点,我们采用了原始 CELEBA 数据集中包含的各种野外图像集合。这些图像在分辨率和视觉质量方面变化极大,从 43 × 55 43 \times 55 43×55 6732 × 8984 6732 \times 8984 6732×8984 不等。其中一些图像显示了数人的人群,而其他图像则集中在单个人的面部上 - 往往只是面部的一部分。因此,我们发现有必要应用多种图像处理步骤,以确保一致的质量并将图像居中在面部区域。

我们的处理流程如图8所示。为了提高整体图像质量,我们使用两个预训练的神经网络对每个 JPEG 图像进行预处理:一个卷积自编码器,用于消除自然图像中的 JPEG 噪点,结构类似于 Mao 等人(2016a)的提出的方法;以及一个经过对抗训练的 4x 超分辨率网络(Korobchenko & Foco, 2017),类似于 Ledig 等人(2016)。为了处理面部区域超出图像的情况,我们使用填充和滤波来扩展图像的尺寸,如图8(c-d)所示。

图8:创建 CELEBA-HQ 数据集。我们从 CelebA 野外数据集中获取 JPEG 图像 (a)。我们通过去除 JPEG 图像伪影(b,顶部)和 4 倍超分辨率(b,底部)来提高视觉质量(b,中部)。然后,我们通过镜像填充(c)和高斯滤波(d)来扩展图像,以产生视觉上令人愉悦的景深效果。最后,我们使用面部标志位置选择适当的裁剪区域 (e),并执行高质量的重采样以获得最终的 1024 × 1024 分辨率图像 (f)。

然后,根据原始 CELEBA 数据集中包含的面部标志注释,我们选择一个面部裁剪矩形,具体如下:

x ′ = e 1 − e 0 y ′ = 1 2 ( e 0 + e 1 ) − 1 2 ( m 0 + m 1 ) c = 1 2 ( e 0 + e 1 ) − 0.1 ⋅ y ′ s = max ⁡ ( 4.0 ⋅ ∣ x ′ ∣ , 3.6 ⋅ ∣ y ′ ∣ ) x = Normalize ( x ′ − Rotate90 ( y ′ ) ) y = Rotate90 ( x ′ ) \begin{align} x' = & e_1 - e_0 \\ y' = & \frac{1}{2} (e_0 + e_1) - \frac{1}{2} (m_0 + m_1) \\ c = & \frac{1}{2} (e_0 + e_1) - 0.1 \cdot y' \\ s = & \max (4.0 \cdot |x'|, 3.6 \cdot |y'|) \\ x = & \text{Normalize} (x' - \text{Rotate90}(y')) \\ y = & \text{Rotate90}(x') \end{align} x=y=c=s=x=y=e1e021(e0+e1)21(m0+m1)21(e0+e1)0.1ymax(4.0x,3.6y)Normalize(xRotate90(y))Rotate90(x)

其中, e 0 e_0 e0 e 1 e_1 e1 m 0 m_0 m0 m 1 m_1 m1 分别表示两个眼睛标志和两个嘴巴标志的 2D 像素位置, c c c s s s 表示所需裁剪矩形的中心和尺寸, x x x y y y 表示其方向。我们通过经验构建了上述公式,以确保在不同角度观察面部时,裁剪矩形保持一致。计算出裁剪矩形后,我们使用双线性滤波将矩形变换为 4096 × 4096 4096 \times 4096 4096×4096 像素,然后使用盒式滤波将其缩放为 1024 × 1024 1024 \times 1024 1024×1024 分辨率。

我们对数据集中的所有 202599 张图像执行上述处理,进一步分析生成的 1024 × 1024 1024 \times 1024 1024×1024 图像以估计最终的图像质量,按照质量对图像进行排序,并丢弃除了最佳的 30000 张图像之外的所有图像。我们使用基于频率的质量度量标准,这有利于包含广泛频率范围并且大致呈径向对称的功率谱的图像。这惩罚了模糊图像以及由于可见的半色调模式等原因具有显著方向特征的图像。我们选择了 30000 张图像作为实际的最佳结果的平衡点,因为这似乎产生了最好的结果。

D CIFAR10 结果

图9展示了在无监督设置下生成的非精选图像,表3则比较了基于 Inception 分数的先前方法。我们以两种不同的方式报告分数:1) 训练运行过程中观察到的最高分数(这里的 ± 表示 Inception 分数计算器返回的标准偏差);2) 从训练中观察到的最高分数中计算的均值和标准偏差,从十个随机初始化开始。可以说,后一种方法更有意义,因为个别运行可能会出现幸运情况(就像我们的情况)。在这个数据集中,我们没有使用任何形式的数据增强。

表3:CIFAR10 Inception 分数,分数越高越好。

图9:使用无监督训练的网络(无标签条件),生成的 CIFAR10 图像,获得了创纪录的 8.80 Inception 分数。

E MNIST-1K 离散模式测试与丧失能力的判别器

Metz 等人(2016)描述了一个设置,其中生成器同时合成 MNIST 数字到 3 个颜色通道,使用预训练分类器对数字进行分类(在我们的情况下为 0.4% 的错误率),然后连接在一起形成 [0, 999] 范围内的数字。他们生成了总共 25600 张图像,并计算覆盖的离散模式数量。他们还计算 KL 散度,即 KL(直方图 || 均匀分布)。现代 GAN 实现可以在非常低的散度下轻松覆盖所有模式(在我们的情况下为 0.05),因此 Metz 等人指定了一个相当低容量的生成器和两个丧失能力的判别器(“K/2” 约有 2000 个参数,“K/4” 只有约 500 个),以揭示训练方法之间的差异。这两个网络都使用了批归一化。

如表4所示,使用 Metz 等人指定的网络结构以 WGAN-GP 损失覆盖的模式要比原始 GAN 损失多得多,甚至比使用较小的(K/4)判别器的未展开的原始 GAN 更多。KL 散度,这可能是一个比原始计数更准确的指标,效果更好。

表4:使用 Metz 等人(2016)定义的两个微小判别器(K/4、K/2)进行 MNIST 离散模式测试的结果。覆盖的模式数量 (#) 和与均匀分布的 KL 散度给出了在 8 个随机初始化上的平均值 ± 标准偏差。对于模式数量,越高越好,对于 KL 散度,越低越好。

将批归一化替换为我们的标准化(均衡学习率、逐像素标准化)显著改善了结果,同时还从判别器中删除了一些可训练参数。添加小批量标准差层进一步改善了分数,同时将判别器的容量恢复到原始容量的 0.5%。对于这些小图像,渐进式方法并没有太大帮助,但也没有损害。

F 额外的 CELEBA-HQ 结果

图10展示了我们生成图像的最近邻。图11给出了来自 CELEBA-HQ 的额外生成示例。我们对使用 CELEBA 和 CELEBA-HQ 进行的所有测试都启用了镜像增强。除了切片 Wasserstein 距离 (SWD) 外,我们还引用了最近引入的 Fréchet Inception 距离 (FID) (Heusel 等人,2017),从 50K 张图像计算而来。

图10:顶部:我们的 CELEBA-HQ 结果。接下来的五行:从训练数据中找到的最近邻,基于特征空间距离。我们使用了来自五个 VGG 层的激活值,如 Chen & Koltun(2017)所建议的。只有在右下图像中突出显示的裁剪区域用于比较,以排除图像背景,并将搜索重点放在匹配的面部特征上。

图11:使用 CELEBA-HQ 数据集生成的其他 1024×1024 图像。切片 Wasserstein 距离(SWD)×103 在 1024、…、16 层次上分别为 7.48、7.24、6.08、3.51、3.55、3.02、7.22,其平均值为 5.44。从 5 万张图像计算的 Fréchet Inception 距离(FID)为 7.30。请参见视频以获取潜在空间插值。

G LSUN 结果

图12-17展示了为所有 30 个 LSUN 类别生成的代表性图像。为每个类别单独训练了一个网络,使用相同的参数。所有类别都使用了 100K 张图像进行训练,除了 BEDROOM 和 DOG,它们使用了所有可用数据。由于对于大多数类别来说,100K 张图像是非常有限的训练数据,因此我们在这些测试中启用了镜像增强(但不适用于 BEDROOM 或 DOG)。

图12:从 LSUN 类别生成的 256 × 256 256 \times 256 256×256 示例图像。切片 Wasserstein 距离(SWD) × 1 0 3 \times 10^3 ×103 分别给出了 256、128、64、32 和 16 层次,其中平均值用粗体表示。我们还引用了从 5 万张图像计算的 Fréchet Inception 距离(FID)。

图13:从 LSUN 类别生成的 256 × 256 256 \times 256 256×256 示例图像。切片 Wasserstein 距离(SWD) × 1 0 3 \times 10^3 ×103 分别给出了 256、128、64、32 和 16 层次,其中平均值用粗体表示。我们还引用了从 5 万张图像计算的 Fréchet Inception 距离(FID)。

图14:从 LSUN 类别生成的 256 × 256 256 \times 256 256×256 示例图像。切片 Wasserstein 距离(SWD) × 1 0 3 \times 10^3 ×103 分别给出了 256、128、64、32 和 16 层次,其中平均值用粗体表示。我们还引用了从 5 万张图像计算的 Fréchet Inception 距离(FID)。

图15:从 LSUN 类别生成的 256 × 256 256 \times 256 256×256 示例图像。切片 Wasserstein 距离(SWD) × 1 0 3 \times 10^3 ×103 分别给出了 256、128、64、32 和 16 层次,其中平均值用粗体表示。我们还引用了从 5 万张图像计算的 Fréchet Inception 距离(FID)。

图16:从 LSUN 类别生成的 256 × 256 256 \times 256 256×256 示例图像。切片 Wasserstein 距离(SWD) × 1 0 3 \times 10^3 ×103 分别给出了 256、128、64、32 和 16 层次,其中平均值用粗体表示。我们还引用了从 5 万张图像计算的 Fréchet Inception 距离(FID)。

图17:从 LSUN 类别生成的 256 × 256 256 \times 256 256×256 示例图像。切片 Wasserstein 距离(SWD) × 1 0 3 \times 10^3 ×103 分别给出了 256、128、64、32 和 16 层次,其中平均值用粗体表示。我们还引用了从 5 万张图像计算的 Fréchet Inception 距离(FID)。

H 表 1 的额外图像

图18展示了表1中非收敛设置的更大集合图像。故意限制训练时间,以使各种方法之间的差异更加明显可见。

相关文章:

【计算机视觉|生成对抗】逐步增长的生成对抗网络(GAN)以提升质量、稳定性和变化

本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处 标题:Progressive Growing of GANs for Improved Quality, Stability, and Variation 链接:[1710.10196] Progressive Growing of GANs for Improved Quality, Stability, and Vari…...

C++11并发与多线程笔记(8) condition_variable、wait、notify_one、notify_all

C11并发与多线程笔记(8) condition_variable、wait、notify_one、notify_all 1、条件变量condition_variable、wait、notify_one、notify_all1.1 std::condition_variable1.2 wait()1.3 notify_one()1.4 notify_all() 2、深入思考 1、条件变量condition_…...

C语言——通讯录详解(动态版)

通讯录详解 前言:一、定义一个通讯录二、初始化三、增加联系人3.1 给通讯录扩容3.2增加联系人 四、释放内存五、完整代码 前言: 我们已经学过了通讯录的静态版,但是它的缺点很明显,通讯录满了就添加不了联系人了啦。我再让通讯录升…...

【云原生】kubernetes应用程序包管理工具Helm

Helm 什么是 Helm 安装 Helm 重要概念 使用 Helm 1 简介 官网地址: Helm Helm是一个Kubernetes应用程序包管理工具,它允许你轻松管理和部署Kubernetes应用程序。Helm通过使用称为Charts的预定义模板来简化Kubernetes应用程序的部署和管理。Chart包含了一组Ku…...

蓝牙资讯|苹果Apple Watch可手势操控Mac和Apple TV等设备

根据美国商标和专利局(USPTO)公示的清单,苹果公司近日获得了一项技术专利,概述了未来的 Apple Watch 手表,使用手势等操控 Mac 和 Apple TV 等设备。 该专利描述未来 Apple Watch 可以交互实现编辑图像、绘图、处理文…...

认识excel篇2之如何快速输入数据

一、快速输入数据(快捷键功能的使用) 1、鼠标左键填充:复制填充、等差序列填充(行、列是一样的) 步骤:选中单元格,鼠标放置到单元格右下角待鼠标箭头变成实心十字架,左键向下拖拽&…...

将eNSP Pro部署在华为云是什么体验

eNSP Pro简介 eNSP Pro 是华为公司数据通信产品线新推出的数通设备模拟器,主要应用在数据通信技能培训,为使用者提供华为数据通信产品设备命令行学习环境。 具备的能力 多产品模拟能力:支持数据通信产品线NE路由器、CE交换机、S交换机、AR…...

Intelij IDEA 配置Tomcat解决Application Server不显示的问题

今天搭建war工程时部署项目发现,IDEA的控制台没有Application Servers,在网上查了一下,总结几个比较好的解决方法,为了方便自己和其他人以后碰到相同的问题,不再浪费时间再次寻找解决办法。 Intelij IDEA 配置Tomcat时…...

php+echarts实现数据可视化实例

效果&#xff1a; 代码&#xff1a; php <?php include(includes/session.inc); include(includes/SQL_CommonFunctions.inc); ?> <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv&quo…...

Kotlin~Bridge桥接模式

概念 抽象和现实之间搭建桥梁&#xff0c;分离实现和抽象。 抽象&#xff08;What&#xff09;实现&#xff08;How&#xff09;用户可见系统正常工作的底层代码产品付款方式定义数据类型的类。处理数据存储和检索的类 角色介绍 Abstraction&#xff1a;抽象 定义抽象接口&…...

【ES6】箭头函数和普通函数的区别

它们之间的区别&#xff1a; &#xff08;1&#xff09;箭头函数没有自己的this。 &#xff08;2&#xff09;不可以当作构造函数&#xff0c;不可以对箭头函数使用new命令&#xff0c;否则抛出错误。 &#xff08;3&#xff09;不可以使用arguments对象&#xff0c;该对象在函…...

【网络基础实战之路】VLAN技术在两个网段中的实际应用详解

系列文章传送门&#xff1a; 【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 【网络基础实战之路】基于…...

密码学学习笔记(十九):密码学关键术语的解释1

数据加密标准(DES) 数据加密标准是使用最广泛的加密体制&#xff0c;它于1977年被美国国家标准和技术研究所(NIST)采纳为联邦信息处理标准FIPS PUB 46。 DES3DESAES明文分组长度&#xff08;位&#xff09;6464128密文分组长度&#xff08;位&#xff09;6464128密钥长度&…...

angular中如何定义一个全局组件?

需求&#xff0c;我们需要新建一个navBreadcrumb的全局组件。这是一个面包屑导航&#xff0c;在不同的页面引入时传入一个路由数组即可。 第一步&#xff1a;我们新建这个组件&#xff1a; ng g c navBreadcrumb ng g m navBreadcrumb----------nav-breadcrumb.module-------…...

HTTP与HTTPS的区别

面试常见问题&#xff0c;HTTPS优化总结易记版&#xff1a; 1、HSTS重定向技术&#xff1a;将http自动转换为https&#xff0c;减少301重定向 2、TLS握手优化&#xff1a;在TLS握手完成前客户端就提前向服务器发送数据 3、会话标识符&#xff1a;服务器记录下与某客户端的会…...

JDK 17 营销初体验 —— 亚毫秒停顿 ZGC 落地实践 | 京东云技术团队

前言 自 2014 年发布以来&#xff0c; JDK 8 一直都是相当热门的 JDK 版本。其原因就是对底层数据结构、JVM 性能以及开发体验做了重大升级&#xff0c;得到了开发人员的认可。但距离 JDK 8 发布已经过去了 9 年&#xff0c;那么这 9 年的时间&#xff0c;JDK 做了哪些升级&am…...

英伟达结构化剪枝工具Nvidia Apex Automatic Sparsity [ASP](1)——使用方法

英伟达结构化剪枝工具Nvidia Apex Automatic Sparsity [ASP]&#xff08;1&#xff09;——使用方法 Apex是Nvdia维护的pytorch工具库&#xff0c;包括混合精度训练和分布式训练&#xff0c;Apex的目的是为了让用户能够更早的使用上这些“新鲜出炉”的训练工具。ASP&#xff0…...

接口测试,负载测试,并发测试,压力测试区别

接口测试 1.定义&#xff1a;接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间的相互逻辑依赖关系等。 2.目的&#xf…...

WebRTC +Signal + ICE

在 WebRTC 中&#xff0c;ICE&#xff08;Interactive Connectivity Establishment&#xff09;服务是用于解决网络地址转换&#xff08;NAT&#xff09;和防火墙障碍的关键组件。以下是一些常见的开源 ICE 服务框架&#xff0c;可以用于搭建 ICE 服务器来支持 WebRTC 连接&…...

循环内的try-catch 跟循环外的try-catch有什么不一样

起因&#xff1a;一位面试管突然问了这么一道基础的面试题&#xff0c;反而秀了面试者一脸&#xff0c;经常用的却被问到时不知道怎么回答&#xff0c;所以我们平时在写代码的时候&#xff0c;要多注意细节跟原理。也许你不服&#xff1a;不就是先这样&#xff0c;再那样&#…...

C语言实现Java三大特性

// 前言 面向对象的java语言有着多种设计模式与特性。比如封装、继承、多态等等。 在这篇文章中&#xff0c;我会使用java的代码思路&#xff0c;实现C语言版的JAVA三大特性。 并从写代码的角度&#xff0c;从0开始构建。 定义结构体&#xff08;对象&#xff09; 设计了一…...

GBU812-ASEMI新能源专用整流桥GBU812

编辑&#xff1a;ll GBU812-ASEMI新能源专用整流桥GBU812 型号&#xff1a;GBU812 品牌&#xff1a;ASEMI 封装&#xff1a;GBU-4 恢复时间&#xff1a;&#xff1e;50ns 正向电流&#xff1a;80A 反向耐压&#xff1a;1200V 芯片个数&#xff1a;4 引脚数量&#xff…...

数据结构,线性表与线性结构关系,顺序表与顺序结构关系,线性表与顺序表关系

学习数据结构会出现很多的概念如顺序结构&#xff0c;非线性结构&#xff0c;顺序表&#xff0c;顺序结构&#xff0c;顺序表&#xff0c;链表&#xff0c;栈&#xff0c;队列&#xff0c;堆等。今天来小讲以下其中的线性表与线性结构&#xff0c;顺序表与顺序结构的关系。 在数…...

Bigemap Pro国产基础软件介绍——一款多源数据处理软件

一、软件简介 Bigemap Pro是由成都比格图数据处理有限公司(下称”BIGEMAP”)开发和发行的国产大数据处理基础软件。Bigemap Pro是在BIGEMAP GIS Office基础上&#xff0c;经过十年的用户积累与反馈和技术更新迭代出的新一代基础软件产品。Bigemap Pro国产基础软件集成了数据采…...

算法练习Day49|● 121. 买卖股票的最佳时机 ● 122.买卖股票的最佳时机II

LeetCode: 121. 买卖股票的最佳时机 121. 买卖股票的最佳时机 - 力扣&#xff08;LeetCode&#xff09; 1.思路 暴力解法、贪心也算比较符合思维&#xff0c;动规不容易想到&#xff0c;且状态处理不易处理 股票每天的状态为持有或不持有&#xff1a;声明dp数组&#xff1a…...

【Android Framework (十二) 】- 智能硬件设备开发

文章目录 前言智能硬件的定义与应用智能硬件产品开发流程智能硬件开发所涉及的技术体系概述关于主板选型主板CPU芯片的选择关于串口通信 总结 前言 针对我过往工作经历&#xff0c;曾在一家智能科技任职Android开发工程师&#xff0c;简单介绍下关于任职期间接触和开发过的一些…...

若依框架给字典字段新增color值,并且实现下拉列表选项进行颜色设置

首先获取所要新增的字典&#xff0c;并且根据字典的value值选取对应的颜色参数 this.getDicts("risk_level").then(response > {const color {mild:#F1F4BD,moderate:#EEC920,severe:#FF6C0D,very_severe:#FF0000,no_harm:green};const res response.data.map(…...

JDK 8 升级 JDK 17 全流程教学指南

JDK 8 升级 JDK 17 首先已有项目升级是会经历一个较长的调试和自测过程来保证允许和兼容没有问题。先说几个重要的点 遇到问题别放弃仔细阅读报错&#xff0c;精确到每个单词每一行&#xff0c;不是自己项目的代码也要点进去看看源码到底是为啥报错明确你项目引入的包&#x…...

Docker 网络之 ipvlan 和 macvlan

Docker ipvlan 和 macvlan 引言 本文讲解了Docker 网络模式中的 ipvlan 和 macvlan 的区别,目前自己在生产环境中使用的 ipvlan 模式非常问题.也解决了实际业务问题. IPvlan L2 mode example ipvlan 无需网卡混杂模式 , 运行如下命令后可以生成一个 vlan 子接口 , 会和主网卡…...

【Rust】Rust学习 第十三章Rust 中的函数式语言功能:迭代器与闭包

Rust 的设计灵感来源于很多现存的语言和技术。其中一个显著的影响就是 函数式编程&#xff08;functional programming&#xff09;。函数式编程风格通常包含将函数作为参数值或其他函数的返回值、将函数赋值给变量以供之后执行等等。 更具体的&#xff0c;我们将要涉及&#…...

【Linux操作系统】详解Linux系统编程中的管道进程通信

在Linux系统编程中&#xff0c;管道是一种常用的进程间通信方式。它可以实现父子进程之间或者兄弟进程之间的数据传输。本文将介绍如何使用管道在Linux系统中进行进程通信&#xff0c;并给出相应的代码示例。 文章目录 1. 管道的概念2. 管道的创建和使用2.1 原型2.2 示例 3. 父…...

【Redis从头学-4】Redis中的String数据类型实战应用场景之验证码、浏览量、点赞量、Json格式存储

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;啥技术都喜欢捣鼓捣鼓&#xff0c;喜欢分享技术、经验、生活。 &#x1f60e;人生感悟&#xff1a;尝尽人生百味&#xff0c;方知世间冷暖。 &#x1f4d6;所属专栏&#xff1a;Re…...

linux 统计命令

统计命令 使用wc来进行统计 # wc [选项] 文件名wc -l a 2 awc -w a 8 a---------------l 统计行数-w 统计单词数-m 统计字符数-c 统计字节数 https://zhhll.icu/2021/linux/基础/统计命令/ 本文由 mdnice 多平台发布...

docker部署springboot应用

一、下载安装docker curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 启动&#xff1a;systemctl start docker 二、配置国内镜像源 &#xff08;1&#xff09;在/etc/docker目录中添加daemon.json文件&#xff0c;内容如下&#xff1a; { …...

YOLO v5、v7、v8 模型优化

YOLO v5、v7、v8 模型优化 魔改YOLOyaml 文件解读模型选择在线做数据标注 YOLO算法改进YOLOv5yolo.pyyolov5.yaml更换骨干网络之 SwinTransformer更换骨干网络之 EfficientNet优化上采样方式&#xff1a;轻量化算子CARAFE 替换 传统&#xff08;最近邻 / 双线性 / 双立方 / 三线…...

回归预测 | MATLAB实现SSA-BP麻雀搜索算法优化BP神经网络多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现SSA-BP麻雀搜索算法优化BP神经网络多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现SSA-BP麻雀搜索算法优化BP神经网络多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基本…...

QT的mysql(数据库)最佳实践和常见问题解答

涉及到数据库&#xff0c;首先安利一个软件Navicat Premium&#xff0c;用来查询数据库很方便 QMysql驱动是Qt SQL模块使用的插件&#xff0c;用于与MySQL数据库进行通信。要编译QMysql驱动&#xff0c;您需要满足以下条件&#xff1a; 您需要安装MySQL的客户端库和开发头文件…...

使用PyMuPDF库的PDF合并和分拆程序

PDF工具应用程序是一个使用wxPython和PyMuPDF库编写的简单工具&#xff0c;用于合并和分拆PDF文件。它提供了一个用户友好的图形界面&#xff0c;允许用户选择源文件夹和目标文件夹&#xff0c;并对PDF文件进行操作。 C:\pythoncode\blog\pdfmergandsplit.py 功能特点 选择文…...

2023/8/18 - You need to rely on yourself to achieve the life you want

...

Data Abstract for .NET and Delphi Crack

Data Abstract for .NET and Delphi Crack .NET和Delphi的数据摘要是一套或RAD工具&#xff0c;用于在.NET、Delphi和Mono中编写多层解决方案。NET和Delphi的数据摘要是一个套件&#xff0c;包括RemObjects.NET和Delphi版本的数据摘要。RemObjects Data Abstract允许您创建访问…...

Eclipse集成MapStruct

Eclipse集成MapStruct 在Eclipse中添加MapStruct依赖配置Eclipse支持MapStruct①安装 m2e-aptEclipse Marketplace的方式安装Install new software的方式安装&#xff08;JDK8用到&#xff09; ②添加到pom.xml 今天拿到同事其他项目的源码&#xff0c;导入并运行的时候抛出了异…...

采用pycharm在虚拟环境使用pyinstaller打包python程序

一年多以前&#xff0c;我写过一篇博客描述了如何虚拟环境打包&#xff0c;这一次有所不同&#xff0c;直接用IDE pycharm构成虚拟环境并运行pyinstaller打包 之前的博文&#xff1a; 虚拟环境venu使用pyinstaller打包python程序_伊玛目的门徒的博客-CSDN博客 第一步&#xf…...

Rx.NET in Action 中文介绍 前言及序言

Rx 处理器目录 (Catalog of Rx operators) 目标可选方式Rx 处理器(Operator)创建 Observable Creating Observables直接创建 By explicit logicCreate Defer根据范围创建 By specificationRangeRepeatGenerateTimerInterval Return使用预设 Predefined primitivesThrow …...

Azure Blob存储使用

创建存储账户,性能选择标准即可&#xff0c;冗余选择本地冗余存储即可 容器选择类别选择专用即可 可以上传文件到blob中 打开文件可以看到文件的访问路径 4.编辑中可以修改文件 复制链接&#xff0c;尝试访问&#xff0c;可以看到没有办法访问&#xff0c;因为创建容器的时候选…...

mysql、redis面试题

mysql 相关 1、数据库优化查询方法 外键、索引、联合查询、选择特定字段等等2、简述mysql和redis区别 redis&#xff1a; 内存型非关系数据库&#xff0c;数据保存在内存中&#xff0c;速度快mysql&#xff1a;关系型数据库&#xff0c;数据保存在磁盘中&#xff0c;检索的话&…...

22、touchGFX学习Model-View-Presenter设计模式

touchGFX采用MVP架构&#xff0c;如下所示&#xff1a; 本文界面如下所示&#xff1a; 本文将实现两个操作&#xff1a; 1、触摸屏点击开关按键实现打印开关显示信息&#xff0c;模拟开关灯效果 2、板载案按键控制触摸屏LED灯的显示和隐藏 一、触摸屏点击开关按键实现打印开…...

Python Opencv实践 - 图像高斯滤波(高斯模糊)

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR) rows,cols,channels img.shape print(rows,cols,channels)#为图像添加高斯噪声 #使用np.random.normal(loc0.0, scale1.0…...

使用 Qt 生成 Word 和 PDF 文档的详细教程

系列文章目录 文章目录 系列文章目录前言一、安装 Qt二、生成 Word 文档三、生成 PDF 文档四、运行代码并查看结果五、自定义文档内容总结 前言 Qt 是一个跨平台的应用程序开发框架&#xff0c;除了用于创建图形界面应用程序外&#xff0c;还可以用来生成 Word 和 PDF 文档。本…...

ssm+vue校园美食交流系统源码

ssmvue校园美食交流系统源码和论文026 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 随着现在网络的快速发展&#xff0c;网上管理系统也逐渐快速发展起来&#xff0c;网上管理模式很快融入到了许多商…...

电力系统基础知识(一)—电力系统概述

1、电压 也称作电势差或电位差&#xff0c;是衡量单位电荷在静电场中由于电势不同所产生的能量差的物理量。其大小等于单位正电荷因受电场力作用从A点移动到B点所做的功,电压的方向规定为从高电位指向低电位。其单位为伏特(V,简称伏),常用单位还有千伏(kV)、毫伏(mV)、微伏(uV…...