对于空间的理解会搞错。因为图片本身是用 2D 表示的 3D 世界,所以由图片样本生成的图片,在空间的表达上不够好。比如,生成的小狗似乎是贴在墙上的 2D 狗:
奇怪的东西会出现:
说到这里,Ian 开了一个玩笑,放出了一张真实的猫的姿势奇异的照片(虽然很奇怪,但喵星人还是办到了!):
除了 minibatch 之外,另一种 GAN 的模型变种是 unrolling GAN(不滚的 GAN)。也就是说,每一步并不把判别模型 D 这个学习的雪球给滚起来,而是把 K 次的 D 都存起来,然后根据损失(loss)来选择最好的那一个。它的效果似乎也不错。
问题 2:评估
对于整个生成模型领域来说,另一个问题是没法科学地进行评估。比如你拿一堆图片生成另一堆图片,可是这两批图片其实可能看起来天差地别。人可以判断出生成的小狗照片对不对,机器却没法量化这个标准。 问题 3:离散输出
到目前为止我们提到的输出或者案例都是连续的情况。如果我们的 G 想要生成离散值,就会遇到一个数学问题:无法微分(differentiate)。当然,这个问题其实在 ANN 时代就被讨论过,并有很多解决方案,比如,Williams(1992) 经典的 REINFORCE、Jang et al.(2016) 的 Gumbel-softmax、以及最简单粗暴地用连续数值做训练,最后框个范围,再输出离散值。 问题 4:强化学习的连接。GAN 在给强化学习做加持的时候,也有点问题。首先,GAN 与强化学习的配合使用,目前大概比较火的有如下几篇论文(这里不做深入了,有兴趣的同学请自行阅读):
如果把 GAN 加持过的 RL 用在各种游戏的学习中,GAN 该有的问题其实还是会有: 无法收敛; 面对有限步数的游戏,穷举更加简单粗暴,并且效果好; 如果游戏的出招是个连续值怎么办?(比如《英雄联盟》中,Q 下去还得选方向,R 起来还得点位置,等等); 当然,可以用刚刚说的 unrolling 来「探寻」最优解,但是每一步都要记 K 个判别模型,代价太大。 将GAN与其它方法结合 GAN 不光自身有变种和优化,也能被其它算法融合吸收,进而发挥出强大的效果:
这就是在 NIPS 几天前刚刚发布的 PPGN(Plug and Play Generative Models/即插即用生成模型)(Nguyen et al, 2016) 了。这是生成模型领域新的 State-of-the-art(当前最佳)级别的论文。它从 ImageNet 中生成了 227*227 的真实图片,是目前在这个数据集上跑得最惊人的一套算法。 Ian 本人也表示惊呆了,目测明年肯定是要被狂推上各种会议。(机器之心也会在第一时间给大家解读) 效果图(跟刚刚 Ian 自己的例子相比,差距确实还是肉眼看得出来的):
这时候有人要问了:刚刚不是说 minibatch GAN 表现最好吗? 哈哈,这就是一个学术界的分类梗了。不管是加上 minibatch 还是 unrolling,它们本质上还是 GAN。而 PPGN 不是 GAN 构架,它可以说是融合了包括 GAN 在内的很多算法和技巧的有新算法。 Ian 顺便夹了点私活:他说 PPGN 如果不带上 GAN,立马崩。
总结 (责任编辑:本港台直播) |