前一阵子,偶然看到一个换脸的视频,觉得实在是很神奇,于是饶有兴致的去了解一下换脸算法。原来背后有一个极为有意思的算法思想——对抗生成。
随后各种各样的GAN算法以指数级增长的方式涌现出来,比如WGAN(Wasserstein GAN),CGAN(condition gan),SRGAN(super resolution gan)等。据说后来提出的GAN在取名字简称的时候——XXGAN,其中GAN的前面的XX,26个英文字母两两排列组合都快不够用了,这足以见得这个算法最近几年的热度。而GAN也有很多应用场景:
- 高清图片生成。
- 消除马赛克。
- 侧脸转正等等。
由于笔者只在稍微了解过图像领域的GAN算法,所以只能说出以上具体的应用场景。不过据了解在自然语言处理领域GAN也可用了训练聊天机器人(chatbot)。总之笔者感觉GAN这个算法如果用对了地方,还是能够发挥出它的潜力的。
GAN算法简介
GAN的结构
首先我们简单了解一下最原始的GAN网络结构,如下图,主要只看分为黄色长方形和粉红色长方形,这两部分为Network的部分:
- 一个生成器(粉红的generator),
- 一个判别器(黄色的discriminator),
接下来注意了,我们仔细研究下这两个网络的输入和输出,同时了解一下这两个网络的关系:
- 生成器的输入是