AI作画真假难辨:Facebook 创意生成网络 CAN,比 GAN 更有创造力 2017-07-05 11:24来源:36氪 原标题:AI作画真假难辨:Facebook 创意生成网络 CAN,比 GAN 更有创造力 编者按:本文由微信公众号“新智元”(ID:AI_era)编译,来源:hackernoon.com,编译:文强;36氪经授权发布。 美国罗格斯大学、Facebook AI 实验室和查尔斯顿学院的研究人员合作,在生成对抗网络(GAN)的基础上,对损失函数稍作修改,提出了创意生成网络(CAN),能够生成“具有创意”的画作。实验发现,人类参与者认为 CAN 生成的图像和人类艺术家画作在创意程度上不相上下。 近来,生成对抗网络(GAN)在生成抽象内容方面成效显著。今天我们要介绍的研究,则进一步探讨了计算机在“创造力”方面的能力。 模仿大师 GAN:生成器和鉴别器的博弈 我们知道,GAN 由两个相互博弈的神经网络组成,即生成器和鉴别器。顾名思义,生成器负责根据输入生成数据(输入可以是噪声,也可以是一些其他的数据)。鉴别器负责分析数据,并区分这些数据是真实的(来自数据集),或者是虚假的(来自生成器)。在数学上,这可以被看作是生成器和鉴别器之间的小游戏: 如果上面的公式看上去很复杂,不必担心——你不是一个人。下面,我们依次说明公式里的各个部分都代表什么。 首先,公式的左边是 MiniMax 方程。 下标 G 和 D 分别代表生成器 G(Generator)和鉴别器 D(Discriminator)。生成器的工作是将方程的值最小化,而鉴别器负责将这个值最大化。生成器 G 和鉴别器 D 会一直博弈,直到我们决定停止为止。 鉴别器 D 接收来自真实数据集的输入 x,然后输出它判定为真的结果 log(D(x))。 G(z) 表示生成器生成的数据。log(1-D(G(z)))) 计算的是鉴别器在判定数据真假方面表现得有多好。D(G(z)) 表示鉴别器认为是真实的那些数据。用 1 减去这个值则表示判别器认为不是真实的数据。 将所有综合在一起,鉴别器负责将 log(D(x) + log(1-D(G(z)))) 的值最大化,而生成器则负责使 D(G(z))) 的值最大化,从而使上述值最小化。 生成器会不断修正自己,让鉴别器判定其生成的值是真实的,而鉴别器也会不断修正自己,让自己能判别出虚假的数据。 因此,生成器 G 要做的,就是让自己的输出与真实数据尽可能地相似。 而要让计算机“有创意”,就必须让生成器生成崭新的数据,光是让生成器去模仿是不够的。 修改 GAN 的损失函数,让创意对抗网络 CAN “有创意” 论文作者在生成对抗网络的基础上,提出了一种新的架构,能够生成“有创意”的内容。他们实现的方法,是在生成器上面增加了一个信号,避免让生成器生成与现有数据过于类似的内容。 具体说,论文作者修改了 GAN 的损失函数。 下面,我们来详细看看 CAN。 在原始的 GAN 架构中,生成器会根据生成内容是否“骗过”了鉴别器来修改权重。GAN 的架构是不会探索新的内容的,GAN 做的只是模仿,其目标就是生成与真实数据集毫无二致的数据。 而 CAN 在两个方面作了修改: 鉴别器不仅仅会判定数据的真假,还会根据图像属于哪个时间段(time period)进行分类 然后,生成器会接收这一额外的信息,将那个指标和鉴别器的真假判断一起做衡量 这样做的结果是什么呢? 有了时间段(以及置信度)这个额外的指标后,生成器就知道它生成的内容与一个时间段的内容的相似度有多高了。 于是,生成器就能不仅让其生成的内容与真实数据相似,同时还能与某一时间段的内容不那么相似。 上图展示了创意对抗网络 CAN 的架构。可以发现,主要的修改发生在损失函数部分。新的损失函数如下: 那么,我们再来看看这个新的损失函数。 上面一行与 GAN 的损失函数类似。注意,下标 r 表示鉴别器对真实/虚假的输出,下表 c 表示鉴别器对时间段分类的输出。 第二行则是为了让系统输出有创意的重头戏。 看上去有些复杂,实际上就是多标签交叉熵损失(Multi Label Cross Entropy Loss)。注意,这里的 K 表示分类的数目。这个损失跟常见分类器用的损失是一样的。生成器会将这部分值最小化,从而将新损失函数的值最大化。 人类参与实验者的评估结果:CAN 生成了艺术作品 下面展示的就是 CAN 生成的图像。 如何? 下面是艺术展 Art Basel 2017 展出的 21 位人类画家的作品(实验中选择了 25 位,这里露出 21 位): (责任编辑:本港台直播) |