真伪莫辨的人像产生器

2020-07-26 19:30:15编辑:
真偽莫辨的人像產生器

你相信上图中所有人物都是假的吗?透过对抗式生成网路(Generative Adversarial Network,GAN)与新兴技术,就能凭空产生一些不存在的人事物,甚至可按照使用者需求,订製出清晰且逼真的影像。自2014年Ian Goodfellow首次提出后,GAN开始在各大顶级研讨会上佔有一席之地。截至今日为止,已有许多进化版本被提出来。但到底为何会如此受到瞩目呢?

近十年来,随GPU及平行运算的能力大幅提升,神经网路已朝向深层化与规模化的方向发展,但也逐渐遇到一项严峻挑战:具标记的资料集可遇不可求。若无雄厚资本与计算能力的加持,所训练出的AI模型表现恐不如预期。因此,与其一张张图片谆谆善诱教导机器如何辨别,许多电脑科学家更期望AI可以完全脱离人工标记的辅助、自主学习。这种不倚赖人为干涉的学习方法称作「非监督式学习」(Unsupervised learning),GAN正是此种框架下表现相当突出的机器学习模型。

真伪莫辨的人像产生器

图一、近年来与GAN相关的论文发表数量急遽攀升。(来源:The GAN Zoo)

Goodfellow当年在思考如何使用机器产生图片时,便描绘了两个相互独立的神经网路:Generator(生成器)与Discriminator(鉴别器)。前者在给定的随机向量(Latent vector)下,透过摺积层(Convolution layer)产生图片;后者则判断该图片的真伪。在两个网路你来我往、相互切磋的过程中,Generator所产生的图片也越来越逼真。

提升解析度

起初,GAN所生成的图片大小主要还是在64×64以下,过大则容易失真,直到国际知名GPU製造商Nvidia的研究团队提出渐进式学习方法(Progressive GAN)[4]。一开始,他们将Generator和Discriminator的层限制在相当小的维度,如4×4;同时,送到Discriminator的真实图片也需同步降低取样大小至4×4。待训练一段时间后,在两个神经网路各叠一层倍增的维度,如8×8,并继续以同维度的图片训练。週而复始直至1024×1024时,就能产生高画质、不容易失真的图片了。

真伪莫辨的人像产生器

图二、Progressive GAN的训练架构。(来源:T. Karras et al., 2018.)

细察Generator的架构,发现越底层的神经元控制着人脸较粗糙的特徵,如脸型、肤色及髮型;反之,越上层则处理越细部的特徵,如表情、眼睛的闭合、髮色到肤质等细节。最近,同一团队也释出升级版本─以风格转换为基础的GAN(Style-based GAN)。

风格转换

相信你一定不陌生那些能预测你上了年纪或转换性别后会长怎样的应用程式。理论上,藉由调整Latent vector的某些元素,就能左右图中人物的性别、髮长或肤色等;然而,实际操作可能比你想像中还要来得困难。

例如,若原先的训练资料集有所偏误(biased),例如以亚洲人的图像为大宗了话,则任凭给定的Latent vector多麽地不同,Generator最后的输出结果就只是稍有不同的黄肤色人脸。主要原因在于训练资料的变异度过小,导致Generator的输出空间不够大,即使再怎幺调整latent vector都无法超出原先训练的範畴。

此外,特徵纠缠(Features entanglement)现象也令人难以釐清Latent vector中的哪些成份究竟控制着人脸的哪个特徵。使得任何数值的调整,都是牵一髮而动全身,稍有不慎,便是面目全非。为此,新提出的架构主要採用了以下三种核心技术:

真伪莫辨的人像产生器

图三、Style-based GAN的架构。(来源:T. Karras et al., 2018.)

第一,有别于传统GAN直接将latent vector作为图片形成的基底,Karras等人则将基底固定住(图三4x4x512的部分),而后借用风格转换(Style transfer)的概念,在各个解析度的层上,逐步为所谓的「内容」加上来自Latent vector的「风格」,最终组合成一张画质相当高的图片。

第二,Latent vector会先通过数个全连结层(Fully connected layer)所构成的网路。在团队的假设中,若採传统GAN的架构,Latent vector会在Z空间中极尽所能地近似训练图片的分布,将直接导致纠缠现象(Entanglement)的发生。为此,他们使Latent vector透过一种非线性转换(从Z空间到W空间)成w向量后,再套用到「内容」身上。透过这个额外的神经网路,扩展的Latent vector的转换空间,使得w向量不再受限于训练资料的机率分布,同时能降低不同特徵之间的相关性,达到特徵解离(Feature disentanglement)的目的[3]。

第三,在各个解析度层中加入「风格」与「随机成分」。在「风格」上,他们使用仿射变换(Affine transformation,如图三a),将w向量转换为AdaIN(Adaptive Instance Normalization)所需的缩放与偏误参数。另一方面,为了仿真人脸中如头髮、细纹等较複杂的细緻特徵,每个层都会额外加上经过缩放(如图三b)的杂讯,作为随机成分的来源。

真伪莫辨的人像产生器

图四、加入「风格」的流程与AdaIN的转换。AdaIN是风格转换中将「内容」正则化为「风格」分布的技巧。其中y来自于「风格」成分,x来自于「内容」成分。(来源:R. Horev, 2018.)

真伪莫辨的人像产生器

图五、在不同层上合成不同人脸特徵。(来源:[7])

与Progressive GAN相同,Style-based GAN较为底层的Latent vector代表人脸上较粗略的特徵,中层控制着表情与眼睛,最上层则是髮色与脸部等细节。Nvidia团队利用巧思,改变Latent vector的输入方式,从而由不同阶层的输入改变图像风格,着实令人期待往后的技术突破。

编译来源

Will Knight. These incredibly realistic fake faces show how algorithms can now mess with us. MIT Technology Review. 2018.

参考资料

(本文由教育部补助「AI报报─AI科普推广计画」执行团队编译)

上一篇: 下一篇:

相关阅读