「杂谈」如何系统性地学习生成对抗网络GAN

 

文/编辑 | 言有三

作为被誉为“下一代深度学习技术”,同时已经在工业界能够真正成熟稳定应用的GAN,有三AI公众号很早之前就开始关注相关内容,从理论到实践都做出了一些总结,并且在持续进行中,本次简单介绍一下相关内容供有需要的同学。

1 了解GAN基本原理和应用

有三最早写的一篇GAN相关的文章就是一篇综述,虽然因为后来比较忙,一直没有更新,但是在这个综述上中,已经介绍了GAN的来龙去脉,优化目标,以及GAN的图像生成,风格迁移,超分辨等各类应用,有超过30篇参考文献,适合对GAN感兴趣的初学者,可移步有三AI公众号阅读。

「杂谈」如何系统性地学习生成对抗网络GAN

 

2 GAN的重要理论

GAN的重点和难点一方面是它的理论,包括优化目标,评测指标。另一方面是各类工程训练技巧。10月份有三同一个实验室的亲师弟郭晓洲在自身扎实的数学系背景知识的支持下,在公众号开设了《GAN优化》专栏,从GAN的基本理论,f散度度量和Wasserstein距离,到GAN与动力学,各种GAN的正则项的优劣,模式崩溃问题,进行了细致的总结,浓浓的数学味道,希望你会喜欢。

「杂谈」如何系统性地学习生成对抗网络GAN

 

「完结」12篇GAN的优化文章大盘点,浓浓的数学味儿

3 GAN实战专栏

好记星不如烂笔头,终究还是要靠实战,于是我们在有三AI知识星球的网络结构1000变中添加了GAN专栏,内容会包括核心思想解读,部分包括代码解读和实战,形式如下:

「杂谈」如何系统性地学习生成对抗网络GAN

SAGAN

SAGAN(Self-Attention Generative Adversarial Networks)是attention机制在GAN中的应用,由于捕获了全局信息,因此生成的效果大大提升。

网络结构如上,就是在前一层的feature maps 上加入attention机制,包含4个1*1的变换,f,g,h,v。

假如输入通道数为C,attention的位置为N,输出为C',f和g用于产生attention map,尺寸都是C'×C,attention map的大小就是C'×N,h尺寸也是C'×C,v尺寸是C×C',最后与x进行加权,式子如下。

「杂谈」如何系统性地学习生成对抗网络GAN

 

γ的值初始化为0,在训练中逐渐增大权重,其原因是刚开始attention训练的不好,随着训练得原来越好之后再加大它的权重。

「杂谈」如何系统性地学习生成对抗网络GAN

 

上图展示了生成的结果以及取生成器最后一层对应的attention结果展示,可以发现attention确实很有效。作者们的开源实现如下, https://github.com/brain-research/self-attention-gan,有机器的同学可以一试。

参考文献

[1] Zhang H, Goodfellow I, Metaxas D, et al. Self-attention generative adversarial networks[J]. arXiv preprint arXiv:1805.08318, 2018.

一些内容预览如下:

「杂谈」如何系统性地学习生成对抗网络GAN

 

「杂谈」如何系统性地学习生成对抗网络GAN

 

当然GAN只是知识星球里很小的一部分内容