前言
生成式对抗网络(四) Cycle GAN
Cycle GAN
之前训练一个network,输入x输出y,都是成对的资料才能训练。可是有一种情况,有x和有y但是x和y不是成对的,如何训练。(非监督)
如影像风格转换,有真人的图片和动漫人物图片,但是不是对应的,通过GAN是可以进行转换的。
转换一下之前的想法,能不能把之前的分布改成domain X的图片的分布,输出是y domain的分布。
套用原来GAN想法,从X domain sample一个图片,给generator产生另一张图片。一个discriminator看过很多y domain的图片,看到y domain的图片给高分。
但是这就有一个问题,就是generator输出的图片不一定跟输入有关系,也可以通过discriminator。这就很想conditional GAN,但是又无法套用conditional GAN,应为conditional GAN 有成对的资料。但是现在没有成对的资料训练discriminator。
使用cycle GAN,可以解决这个问题。训练两个generator,第一个generator是吧x domain的图训练成y domain;第二个generator是把y domain的图还原成x domain。一个图片是一个向量,让两个向量间距离越接近表示两张图越像。
这样第一个generator就不能随便产生人脸了。但是目前还无法保证输入和输出的人脸很像,也许机器会学到奇怪的转换(如反转)。
做cycle GAN的时候,也可以做另外一个方向的转变。
这种非监督式的cycle GAN,还可以应用到seq2seq,不同语言的,文本和精简,声音和文本等等。
总结
学习视频地址:https://www.bilibili.com/video/BV13Z4y1P7D7?p=17&vd_source=3a369b537e1d34ff9ba8f8ab23afedec