尖顶变成圆顶,一秒种起一棵树:把GAN肢解之后,就能随意支配了

暴栗 发自 凹非寺量子位 出品 | 公众号 QbitAI

尖顶变成圆顶,一秒种起一棵树:把GAN肢解之后,就能随意支配了

这里有一只GAN,可以把尖耸的屋顶刷成圆的。

给天上的云换个姿势,一秒种起一棵树。

还可以,把草拔光。

尖顶变成圆顶,一秒种起一棵树:把GAN肢解之后,就能随意支配了

△ 消除大法:触草木,尽死

MIT、IBM、港中大以及谷歌的科学家,一组一组地控制了GAN的神经元,才支配了生成过程。

团队说,他们对GAN内在原理的了解程度,是前所未有的。所以,团队在一篇论文里,介绍了这种魔法。

现在,算法已开源,并有Demo可以玩,叫GANpaint。传送门见文底。

解锁GAN的隐藏原理,才能控制GAN

草,木,云,天,穹顶,砖瓦,房门……

每个元素,都对应GAN的其中一组神经元

只要激活某一组神经元,抑制其他神经元,就可以有选择地生成想要的元素。

长期以来,人类任由GAN胡乱涂鸦,不大去追究它们作画的原理。

尖顶变成圆顶,一秒种起一棵树:把GAN肢解之后,就能随意支配了

△ 43.2万美元成交的GAN肖像,谁也不知道它是怎样学会画人

而GANpaint团队心思细腻,想要看清GAN的内部是如何运作,就有了这项研究:

每次激活不同的神经元,相当于把GAN肢解 (Dissect) 开来,让人一点一点去领会;

团队还提出了一个分析框架 (Analytical Framework) ,把肢解过程可视化,就像Demo展示的那样。

讲一下步骤。

尖顶变成圆顶,一秒种起一棵树:把GAN肢解之后,就能随意支配了

把分割网络(Xiao et al, 2018)和肢解方法(D Bau et al, 2017)结合

首先,把跟某个物体 (比如树) 相关的、可解释的GAN单元 (Interpretable GAN Units) 挑出来。通俗说来就是根据特征图,找到哪些神经元对应哪个物体。

然后,衡量这些单元对物体的影响力有多强,量化出来。也就是说,不只是相关 (Correlated) ,神经元要能控制物体的变化,才有用。

最终,考察这些单元与背景之间的上下文关系 (Contextual Relationship) 。研究要在一幅图里生成某种物体,怎样才能不突兀。

团队说,为了理解GAN的内在原理,而做的系统性分析,这还是史上第一次

尖顶变成圆顶,一秒种起一棵树:把GAN肢解之后,就能随意支配了

△ 43号单元,代表生成圆顶

还是刚才的栗子:要把尖顶变成圆顶,GAN要学习尖顶圆顶的特征,还要让生成的圆顶和原来的背景相处融洽。

而生成效果越自然,表示人类越发懂得控制GAN的神经元,也是理解GAN的工作原理了。

你也要试试么

想象,自己被追兵逼到一座古堡门前。你跑进了城堡,然后一秒把门GAN掉。安全。

尖顶变成圆顶,一秒种起一棵树:把GAN肢解之后,就能随意支配了

然后,等追兵无功而返,再重新生成一道门跑出来。真是优秀的技能。

尖顶变成圆顶,一秒种起一棵树:把GAN肢解之后,就能随意支配了

△ 这并不是什么城堡,但我真的GAN出一道门

再多的风景,就不一一列举了。

七个按钮,大家可以自己试试看,会不会生成什么惊喜。

毕竟,有人以为“去掉砖” (Brick x Remove) ,应该会是这样:

尖顶变成圆顶,一秒种起一棵树:把GAN肢解之后,就能随意支配了

没有,不是我说的,不知道谁说的 (Twitter: @Jukkuden) 。

Demo传送门:

http://gandissect.res.ibm.com/ganpaint.html

代码传送门:

https://github.com/CSAILVision/GANDissect

论文传送门:

https://arxiv.org/pdf/1811.10597.pdf

版权所有,未经授权不得以任何形式转载及使用,违者必究。