CycleGAN创作计算机生成的艺术品

CycleGAN的解释和计算机生成艺术的演示

CycleGAN创作计算机生成的艺术品

CycleGAN指的是GAN的子集,可以拍摄图像并生成反映某种类型转换的新图像。 CycleGANs最酷的部分是您不需要配对: 1 y &图像。 这对于您可. ! u ! a E M能没有配对图像的情况非常有用。 例如,如果要将斑O 5 s Z 9马的图片转换为马的图片。 除非我猜您是否画过斑马和马匹,否则* | 5 b $可能无法收集此类数j 9 S ` K 9据……如果有足够的创造力,它们也将对{ : R @ P A $ _ E创建实际上看起来还不错的计算机生成的艺术品有用!

CycleGAN创作计算机生成的艺术品

> This figure is taken from the original CycleGy p } 1 d D 5 T :AN paper.

在这里,我将概述CycleGAN的工作原理。 这篇文章确实假定您至少对GAN有所了解。 因此,如果您不熟悉GAN,请查看我的博客文章\"面向初学者的生成对抗网N $ K x O络(GENs):生成分散注意力的驾驶员图像\"- I ! a

在这篇文章中,我a W ? * u a使用了一个示例CycleGAN,该示例经过了训练,可以将森林图片转换为森林抽象画。 我用于生成这些图像的代码可以在我的GitHub上找到% # p V 6 x L

数据集

在这里,数据集由森林图像和抽象绘画组成。s I K 2 N @ 我使用关键字\"森林\"和\"著名k $ x d的抽象画\"从Google图片中抓取了这些图片。 为此,我使用了Python软件包Googl^ ! r V E 3 v o )e Images Dow s Enload。 下面是几个示例。z o 4 o 9 + |

CycleGAN创作计算机生成的艺术品

该模型

在训练CycleGAN时,需要训练四个神经网络:

生成抽象绘画图片的( o B S = R _ @生成器(抽象绘画生成器)。

生成森林图片的生成器(森林图像生! v , ( O n K _ q+ { ^ H @ Y n器)。

可以区分真实抽象画与假抽象画的% C @ y 5 n r | V区分符(抽象画区分符)。

可以区分真实的森林图片和假的森林图片的区别的识别符(森林图像识别符)。

如果您已经熟悉GAN,就会发现这里确实没有什么新鲜事物。 这些方面的新颖之处在于如何训练这些网络。

模型训练

在详细介绍之前,让我对CycleGAN的训练方式进行高层概述。 首先,我们获取森林图像,使用抽象绘画生成器创建伪造的抽象绘画,然后获取伪造抽象绘画,然后使A K a G , ? L n 6用森林图像生成器重新创建原始森林图像。 我们还朝另一个方向拍摄抽象绘画,使用森林图像[ # D b生成器创建伪森林图像,然后获取伪森林- s r + ,图像,然后使用抽象绘画生成器重新创建原始抽象绘画k ^ | ; . _ u &。 这种巧妙的循环概念是CycleGAN的新颖贡献,如下图所示。 需要注{ ! x +意的是,同一生成器用于生成伪造的抽象绘画和抽象绘画的8 _ @ [ j = w | L重建,而同一生( A 9 # C $ N成器也用于生成伪造的森林图像和森林图像的重建。

CycleGAN创作计算机生成的艺术品

> CycleGAN trainL + p Ninz Y ~ N w ^ 0 Og. This figure is adapted from the original CycleGAN paper.

在下面,您可以看到我们的CycleGAN的实际外观。 您可以看到真实的图像,这些图像被生成为伪图像,然后? ; ( ? : }被重建为真实图像。 您可能会注意到,尤其是使用抽象绘画时,对象的结构不会发生剧烈变化。 这是CycleGAN的常见现象,可能是由于娱乐步骤所致。i . $ p X 对于Cyc^ u % s c / WleGAN而言,彻底更改图像然后返回I 9 + - N p其原始版本可能太多了。

CycleGAN创作计算机生成的艺术品

好吧,现在让我们进入细节! 训练模型时,6 f -基本上有两个步骤:训练生成器,然后9 s l : l #训练鉴别器。

训练生成器

就像任何神经网络一样,我们需要计算损g s l I失(在这种情况下为生成器),并使用带有反向传播的随机梯度q - S w Z Q下降(即链式规则)来计算b R 8 3 9 T梯度并针对这些梯度更新权重。 但是我们如何计算发电机1 F S 0 :损耗呢? 这种损失实际上由几个不同的部分组成。

首先,我们计算抽象绘画生成器的GAN损耗(在\"循环\"中,我们在下图的黄色阴影部分中{ T + 2 u P ))。 这是通过拍摄v N P * 3真实的森林图像并将其通过抽象绘画生成器生1 + F成伪造的抽象绘画来完成的V k A。 然后,将伪造的抽象绘画放入抽象绘画鉴别器中。 我们可以将鉴别器的输出视为图片是真实抽象画的概率。 然后用二元交叉熵损失评@ _ C g z :估鉴别器的输出。 这是抽象的令人痛苦的GAN丢失。

CycleGAN创作计算机生成的艺术品

&g5 p _ jt; GAN los8 R b = f h - $s for abstract painting generator

其次,我们为森林图像生成器计算GAN损耗T W - e 1 L d Q g(在循环中,我们位于下图的黄色阴影部分)。 这是通过拍摄一张真实的抽象画并将其放入森林图像生成器以生成伪造的森林! ; h S 4 3 2图像来完成的。 然后将伪造的森林图像放入森林图像鉴别器中k _ g f T y a 9 )。 我们可以将鉴别器的输出视为图片是真实森林图像的概率。 然后用二元交叉熵损失评估鉴别器的输出。 这就是森林形象的甘损失q 1 5 n D

CycleGAN创作计算机生成的艺术品

> GAN loss for forest image generator

好了,现在我们有了一幅假] : { f m V v ;的抽象画和J B ? V 0 h o ~一幅假的森林图像。 如上面的高级概述中所述,我们现在必须获取那些伪造的图像,并将其重建为对应的真实图像。 因0 ! U F N ! M此,第三,我们采用伪造的抽象绘画并将其放入森林图像生成器中,以生x J g I 9 f ~成原始的真实森林% 4 O图像(在循环中,我们M m Z E F 8 N r位于下图的黄色阴影部分)。 我们针对具有L1损失的真T ; x ~ y T实森林图像来评估此重建的森林图像(请注意,此处,L1损失通常会乘以某个常数,因此与其他计算的损失具有相同的比例)。 这是森林图像周期一致性损失。

CycleGAN创作计算机生成的艺术品

最后,我们获取伪造的森林图像,并将其放入抽象绘画_ B U 3生成器中以生成重构的U : + E h抽象绘画(在循环中,我们位于下图的黄色阴影部分)。 我们将这种重构的抽象绘画与具有L1损耗的实际抽象k ^ Q绘画进行评估(注意,此处,L1损耗通常乘以某个常数,因此它与其他计算得出的损耗具有相同的比例)。 这就是抽象绘画循环一致性的损失。

CycleGAN创作计算机生成的艺术品

现在我们几乎可以计x 5 3 ; ) ; . p H算出生成器的损耗了(是的,所有这些工作都是针对一个数字的)。 我们还需要计算另一个损失,即身份映射。 计算身份映射损失是因为,如下图所示,已显示此步骤可保留原始图像的颜色。 首先,我们通过森林图像生成器放置真实森林图像,并计算真实森w B 1 ^林图像和生成的森林图像的L1损失。 这是森林映像身份映射丢失(请注意,此丢失也要乘以常量)。 其次,我j , Y l n s b o们对抽象绘画做同样的事情,我们通过抽象绘画生n & R y e J成器放置真正的抽象痛苦。 这就是抽象绘画身份映射的损失。

CycleGAN创作计算机生成的艺术品

> Figure 9 fros J 4 m tm % -he C` . 5 8 y . *ycleGAN paper.

我们终% s h P (于可以计算K F I b 5出生成器损耗了,这是所有损耗的总和:

生成器损失=抽象痛苦GAN损失+森林图像GAN损失+森林图像周期一致性损失+抽象o t o绘画周期一致性损失+森林图像身份映射损失+抽象绘画身份映射损失

然后就此损失更新生成器的权重!

2.训练鉴别器

现在我们已经更新了生成器的权重,接下来我们需要训C , / F练鉴别器。

首先,我们更新抽象绘画鉴别器的权重。 我们通过抽! [ J 4 * n _ !象绘画鉴别器放置一幅真实的抽象绘画,并获取此输出并以二进制交叉熵损失对其p @ # 5 [ d } |进行评估。 然后,我们将先前生成的假抽象绘画,通过抽象绘画鉴别器进行处理,并用二* ( T p Z S进制交叉熵损失对其进行评估。 然后,我们取这两个损失的平均值。 这是抽象画鉴别器的损失。 关于该损失,更新了抽象绘画鉴别器的权重。

其次,我们更新森林图像鉴别器的权重。 我们通过森林图像鉴别器放置一个真实的森林图像,并获得此输出并通过二进k O 3 d m * L [ 0制交叉熵损失对其进行评估。 然后,我们将先前生成的假森林图像进行处理,a P j q d ~ i J将其通过森林图像鉴别器进行处理,并使用二进制交叉熵损失对M S C y m y A c其进行评估。 然后,我们取这两个损失的平均值。 这就是森林图像鉴别器的损失。 关于该损失,更新森林图像鉴别器的权重。

架构

到目前为止,我已t O X 0 ` @经提到了这些生成器和鉴别器的存在,但是我还没有说这些神经网络的确切架构。 当然,这些网络的体系结构有很多选择,但是在这里我将简要提及用于生成森林抽象画的体系结# J 3 N m | 6 } ?构。 这些体系结构的详细信息可以/ B { Z C + 4在代码中查看。 生成器来自以前用于样式传递和超分辨率的体系结构(请参阅Johnson等)。 网$ t H络体系结构基本上 8 n由一堆ResNet块组成,这些块对网格大小进行降+ Y }采样,保持网格大小不变,然后对网格大小进行J . z C k 7 6 -升采样。 有关架构图,请参见下图。

CycleGAN创作计算机生成的艺术品

> GeI v a j f K ] I Qnerator architecture from Johnson et al.

对于鉴别符,我们使用了PatchGAN,它基本上试图对图像的每个N x N色块(此处为70 x 70)是真实的还是假的进行分类。 有关PatchGAN的更多详细信息,请参见代码和本文。

计算机生成的森林图像

经过一段时间的训练,让我们看看我们的计算机生成的抽象森林图像的外观! 以下是一些示例,但是O j E X x您可以在我的GitHub上查看所有示例。

CycleGAN创作计算机生成的艺术品

还不错! 我为杜克大学(Duke University)的AI艺术竞赛创作了这些图像,最终获得了第一名-单击此处以获取更多信息。

结论

正如您在上面看到的,在这种情况下,计算机确实可以通过CycleGAN来生成艺术品。 同样,CycleGAN的^ 1 M B真正酷E Q F F n V的部分是您M 8 ;不需要数据集中的配对! w J P + z图像。 令人惊奇的是,这是{ C v u i ] M b可能的! 我很想知道在其他领域,例 , G ` L如自然语言处理(也许已经存在!)中是否可以进行不成对的机器学习。

*** 2020年1月6日更新***:我忘了早些发布,但是这里展示的艺术在杜克大学AI艺术竞赛中获得了第一名。 查看描述这场比赛的文章!

(本文翻译自Zach Mon~ k . 6 T + @ ~ =ge, PhD的文章《CycleGANs to Create Computer-Generated Art》,参考:https://towardsdatascience.com/cyc/ ` O X v Tlegans-to-create-computer-generated-art-161082601709)

上一篇

同是一线女星,赵丽颖与杨颖的对比:张天爱的德艺双馨立判高下

评论已经被关闭。

插入图片
返回顶部