赞
踩
论文名称:CAN: Creative Adversarial Networks, Generating “Art” by Learning About Styles and Deviating from Style Norms
发表在:the eighth International Conference on Computational
Creativity (ICCC), held in Atlanta, GA, June 20th-June 22nd, 2017.
原文链接:https://arxiv.org/abs/1706.07068
先放一些最终成果,都是使用机器生成的作品(个人觉得还是比较成功的,毕竟只要有几个看上去差不多的作品就很厉害了):
文章主旨其实是通过更改GAN(生成对抗神经网络,Generative Adversical Networks)的目标函数来学习生成style融合的艺术作品。
一句话总结即为:论文中通过引用许多心理学方面的结论,把艺术(create art)的合格性、有效性和arousal(觉醒度)做关联,不能太无味,又不能太刺激;进而对觉醒度做分析,认为画风(style)融合可以很好的增强模型的觉醒度。
论文首先在Introduction的部分探讨作画过程:1. 画家肯定要吸收观看其他的作品(为模型中使用艺术品数据库做铺垫)2. 一个有创造性的画家是尽量增加作品的arousal potential(能够给观赏者带来的潜在觉醒度),并且增加的不能过多,遵循least effort原则。3. 画风突破具有重要作用。
然后又在2.1. Background部分对Arousal展开,先给了arousal的定义(困倦、放松的时候arousal低,暴怒、激动的情况下arousal高);然后解释了arousal potential源于novelty, suprisingness, complexity, ambiguity and puzzlingness,并对几个概念展开;又再次引入了least effort的原则,并使用Wundt curve佐证。
通过一系列的心理学结论的引用和推导,最终说明了学习生成画风(style)融合的作品可以产生艺术品。
回忆GAN的功能,是输入一堆数据,然后通过学习使得模型能够生成和输入数据分布大致相同的数据。具体地,GAN分为两个部分,分别是生成器(Generator,G)和判别器(Discriminator, D)。生成器的作用就是生成数据,通过学习尽可能是生成的数据和原数据分布相同;判别器则是用于判断输入数据是原有数据集内部的,还是使用生成器生成的。一个笔者比较喜欢的比喻是:可以把生成器看做假币制造工厂,而判别器看做验钞机/警察;那验钞机的任务就是区分真币和假币,而假币制作工厂的任务就是制造出难以被验钞机识别的假币;可以想象,随着验钞机的不断更新换代(采用更加先进的技术等等),假币制造工厂生产的假币变得难以流通,从而迫使假币制造工厂制造出更好的假币来鱼目混珠,进而迫使验钞机继续更新自己的技术去区分真币和更厉害的假币;这个互相竞技的过程最终会结束,即假币和真币已经一模一样的时候,验钞机变得再也无法区分真币和假币;而此时假币制造工厂已经可以制造出和真币一模一样的假币,任何其生产的货币都可以看做真币。论文中将这种关系比作两个玩家(G和D)的竞技过程,GAN论文中验证了该游戏存在一个纳什均衡的解(即G产生的数据和输入数据分布相同)。(但是由于GAN的难以训练和神经网络本身使用SGD只能求取近似解等特性,使得其效果差强人意,这也是很多论文加以改进的点)
在本问题里面,论文中认为GAN在理想情况下只能学习生成和原有作品集内部一样的作品,不具有新颖性,从而arousal potential不够,进而不能产生艺术品。论文中称GAN的结果为Emulation(模仿)。
论证了GAN的不足之后,就需要对其进行修改。修改的方向即为增强生成作品的arousal potential,而论文中采取的方法即为增强生成作品的画风融合程度。
具体模型如上图,注意到与GAN相同,其大概可以分为生成器(Generator, G)、判别器(Discriminator,D)和损失函数(Loss)三个部分。最终需要使用的部分只是生成器,所以我们从生成器开始看起。神经网络训练都需要有损失函数指导,从而计算梯度值,进而利用梯度值对权重矩阵进行更新,进行学习。蓝色线表示的就是Generator使用的损失函数,分为两个部分:是否为艺术品(Art/Not art)和画风融合的程度(Style Ambiguity)。已经存在和GAN不同的地方了,原有GAN只使用第一个部分作为损失函数,从而学习到都是和原数据分布相近的生成数据;而CAN中加入了Style Ambiguity从而要求生成器生成的数据还要尽可能的对style进行融合。而Style Ambiguity的衡量不是使用某种定死的损失函数,是通过学习一个对画风(style)进行分类的神经网络(Art-style classification)来得到的,而这个部分就是属于分类器学习的部分。
综上,CAN里面的判别器部分学习两个分类器:是否为艺术品(Art/Not art)、画风分类(Art-style classification)。而这两个部分可以指导生成器生成和输入艺术品近似的数据(Art/Not art),并且难以判别具体的画风(Style Ambiguity)。
回顾GAN的损失函数为:
这两项其实(Art/Not art)分类器指导的。
而CAN的损失函数为:
注意到损失函数中对于原有数据集的部分加入了正确分类的概率
对于(Style Ambiguity)的衡量,论文比较了entropy和cross entropy两种方式,两者曲线如图(蓝色为交叉熵,红色为熵):
发现两者的趋势大致相同,即都对接近于0或1的概率做惩罚;但是可以看到交叉熵对于0或1的惩罚力度远大于熵,从而可以期待更加难以区分类别的结果。
分类器模拟的是DCGAN,为多层deconv的结合,如下图中文字所示:
判别器包括两个分类器,分别是(Art/Not art)和(Art-style classification)。这两个判别器共享CNN部分,为六层使用Leaky ReLU的卷积层;然后两个分类器对应于CNN输出之后接的两个头:(Art/Not art)为一层全连接,输出概率;(Art-style classification)为三层全连接,最后输出各个类别的概率。具体如下图所示:
基本算法如上。和GAN相同,都是分别对判别器部分和生成器部分进行训练,然后不断迭代。判别器部分对原始数据使用指导,对应于期待两个分类器都得到较好的效果;而对于生成器生成的数据则使用指导,对应于期待分类器可以识别出输入是由生成器生成的。而生成器的部分则是使用
指导,对应于期待生成器生成的样板能够不被判别器区分出是假的,并且类别判断也要尽可能模糊。
包括初始化、模型设计技巧、优化算法、数据增广等等。
大多数和CAN模型相关的部分都在前面描述完毕,后面就是一些模型比较、作者思考等部分,可以选择性跳过。
论文中还提到了三种基础模型,用于模拟GAN的效果。具体地,分别是完全模拟GAN,但分辨率不同的前两个模型,Art-trained-GAN 64x64和Art-trained-GAN 256x256;以及加入了类别判断分类器,但不用于指导生成器的模型,style-classification-CAN。三种模型的实验结果由上到下如下图所示:
可以看出从上到下,结果逐渐变好;第二个模型已经可看出对比度、形状、纹路等等;第三个模型已经可以看到可以识别的物体场景等等。(须注明这些图片都是人为挑选出来的结果)
比较第一个和第二个模型,第二个模型更改了生成器的部分,增加了两层deconv,使得生成的图片分辨率增强(同时模型参数也增加了),但得到的结果反而更好了。(笔者一直工作在小数据集上,所以忽略了模型复杂度不足也有可能导致较差的实验结果,所以觉得这个还是有必要注明一下。)
第三个模型对比于第二个模型,增添了一个画风分类器,具体描述如下:
可以看到,对于生成器模型来说,仍然是被
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。