引子
首先来跟我做个实验,你能分辨下图哪个是真人,哪个是AI生成的假人吗?
谜底揭晓:两个都是。
如果你仔细看图片右下角会有一行小小的黑字:StyleGAN2(Kerras et al),StyleGAN2是算法名称,Kerras et al是作者,而这个图片来自于一个叫“这个人不存在”的网站:https://thispersondoesnotexist.com/
今天就和大家聊聊styleGAN2的祖先:GAN算法,聊过了你就知道为啥它会生成的这么逼真,而且GAN也是当前生图算法中的核心算法之一,另外一个是Diffusion,我们下一篇细讲。
1. WHAT: 什么是GAN算法
GAN是Generative Adversarial Nets(生成式对抗网络)的简称,是深度学习在图像生成方面的开山之作。
1.1 一句话说原理
-
GAN是造假币者与打假币者之间的零和博弈游戏。我们通过循环交替训练造假者与打假者的能力,直到造假者的作品不能再被打假者识别为止。
在网络上也有人用这样的方式来说明GAN的原理,也非常直接:“让一个普通人画一幅蒙娜丽莎,很难,但如果让你识别这是不是蒙娜丽莎,就变得简单了许多。”
我们把原理用如下架构图来表示。
1.2 GAN的架构
2. GAN的训练过程
2.1 第一步:训练判别器,保持生成器不变。
以真实图片(真币)和随机生成的虚假图片(假币)训练判别器(打假者)。目标是将真实图片识别为真,虚假图片识别为假。
2.2 第二步:训练生成器,保持判别器不变。
生成器生成图片,输入判别器,以判别器输出作为反馈训练生成器的权重。目标是生成器生成的图片可以蒙混过关 。
2.3 第三步:上述步骤交替训练多次,直到生成器和判别器能力相当。
最初在学习GAN的时候有一个误区,以为是首先将判别器训练好,然后再训练生成器,导致自己很多地方想不清楚,后来才发现,判别器和生成器的训练是交替进行的。这样才能保证在这场造假者与打假者的零和博弈中,双方共同进步,否则任何一方如果以压倒性优势强于对方,则训练难以进行。因为:
-
当生成器特别厉害,而判别器很弱,在第二步训练生成器时,判别器的输出接近于真,就无法给出足够的误差来训练生成器。
-
反之,当判别器特别厉害,而生成器很弱,在第二步训练生成器时,由于给出的误差太大(降维打击),而让生成器无法准确感知能力差距在哪,从而也不能很有效的提升自己。
3. HOW: GAN最初的效果如何
在2014年,GAN的实验效果大概是如下图所示,最右侧为生成图片,左侧为真实图片的样本。可以看出对于手写数字的生成还是很厉害的,但是其他的情况并不是很好。因此在GAN之后,有大量的变种和更新来改进GAN的算法。
4. WHO-谁发明了GAN
虽然有些许争议,但是目前学术界普遍认为GAN的发明者是 Ian Goodfellow(1987年出生)。Ian Goodfellow 本科在斯坦福师从吴恩达,博士是在加拿大蒙特利尔大学师从Yoshua Bengio(2018 图灵奖得主)。发表论文的时候Ian在谷歌大脑工作,但GAN 主要的工作是在他攻读博士期间完成的。
应该说,Ian在学生期间就是是彻底的站在AI 的连接主义这一边,他的导师都是深度学习的践行者。之后Ian先后在open AI, Deep mind,Apple等从事AI相关 公司工作。
在GAN论文发表前,遭到审稿人Jürgen Schmidhuber的质疑,认为GAN 和他在1992年提出的Predictivity minimization 高度重合,但是最终GAN 论文仍然发表,而Jürgen Schmidhuber 也被认为是“被图灵奖遗忘的人工智能专家”,有人认为他对人工智能的贡献不亚于深度学习教父Geoffrey Hinton。
GAN论文参考:https://proceedings.neurips.cc/paper_files/paper/2014/file/5ca3e9b122f61f8f06494c97b1afccf3-Paper.pdf
5. WHY: 为什么GAN如此重要
5.1 在GAN之前
在GAN论文发表前,图像生成工作的主流是推理模型。还是拿造假币来说明,之前的造假币者都是通过研究造假币的过程来制造,过程一样了,则造假就会越逼真,但可以想象,造假过程的研究是一个非常复杂的过程。而GAN则不去研究造假过程,只追求结果一致就可以,这样大大降低了计算量。
5.2 在GAN之后(2014年6月之后)
在GAN论文发表之后,带来了一系列的GAN变种,也足以证明GAN的影响力。以下举一些GAN的衍生品(按论文发表时间排序)
1)Face Inpainting(2016/07/26)
可用于图像恢复。比如下图人脸破坏后,可以恢复成最右侧图的模样。
论文链接:https%3A//arxiv.org/pdf/1607.07539.pdf
2)SR GAN(Super resolution GAN) (2016/09/15)
可应用于将一幅低分辨率图片恢复为高分辨率图片,论文链接。
论文链接:https%3A//arxiv.org/pdf/1609.04802.pdf
3)用条件GAN进行图生图(2016/11/21)
Conditional Adversarial Networks是限定条件生成图像,效果大概是像这样。
放在具体的应用中,可能是用户输入线条框线图,输出就可以是一个上色了的图片。
论文链接:https%3A//arxiv.org/pdf/1611.07004.pdf
5. CycleGAN(2017/03/30)
CycleGAN 会学习如何将一组图像转换为可能属于另一组的图像。比如下图中的图画迁移。比如把草原中的“斑马”变成“马”。
论文链接:https://openaccess.thecvf.com/content_ICCV_2017/papers/Zhu_Unpaired_Image-To-Image_Translation_ICCV_2017_paper.pdf
6. Progressive GANs(2018年11月)
生成器的第一层会生成分辨率极低的图像,后续图层则会添加细节。相较于类似的非渐进式 GAN,此方法允许 GAN 训练得更快,并且可以生成更高分辨率的图像,实验结果如下图,论文链接。
原创文章,作者:产品二姐,如若转载,请注明出处:https://www.agent-universe.cn/2023/12/8544.html