CycleGAN

前段时间看了一下CycleGan网络,最近还是想稍微总结一下,毕竟如果不记下的话很容易忘记。个人觉得玩Gan网络就是玩其loss,尤其发现CycleGan网络的loss设定还是蛮有趣的, 但是还是蛮绕的~

一、 GAN网络介绍

  1. 应用场景
    GAN网络现在还是蛮火的,尤其是最近抖音使用到gan网络来进行旧照片以及旧的影视进行高清处理,看起来还是蛮🐂🍺的。
    下面举几个简单的例子:


gan.png

horse2zebra.gif
超分辨率重构
  1. 网络概念框架
image.png

比如说左边是一个犯罪分子(生成器),他肯定希望他造出来的假币越真越好,但是右边(判别器)的警察肯定希望自己能判别出假币的真伪准确率越高越好。犯罪分子肯定不断提升自己的造假币技术的能力,希望自己造的假币越真越好,但是作为警察的判别器来说,肯定也希望自己的判别能力能随着遭假币水平的提升也随之提升。

  1. GAN的常见变种及应用场景。
    GAN提出来一直是各行业顶会的投稿热点,现在业界也提出了GAN的各种变种。常见的变种包括Pix2pix, CycleGAN, TPGAN, StackGAN和StarGAN.
    (1) Pix2pix作用就是一幅图像转换成另外一幅图像,说白了就是一种图像翻译框架。 例如高清图像↔素描图像,之间的相互转换。
    (2) CycleGAN其实是一种新的无监督的一种图像迁移框架,它的优势就是在没有承兑训练数据集的情况下将图像数据从原目标区域迁移到目标区域。其主要用于风格迁移。例如现实风格↔抽象风格。
    (3) TPGAN中提出后的双路径生产对抗网络包括生成器(包含局部生成器负责细节特征和全局生成器负责结构特征)和识别器。主要可以用于侧面人脸↔正面人脸转换。
    (4) StackGAN融合自然语言和图像生产的两项任务,可以通过对文本语义的理解来控制图像的生成。 StackGAN分两个阶段处理任务:第一个阶段的生成对抗生成网络利用文本描述粗略地勾画出物体的主要形状和颜色,其输出是低分辨率的图像;第二阶段的生成对抗网络将第一阶段的输出和文本描述作为输入,生成细节丰富的高分辨率图像。
    (5)StarGAN 是CycleGAN在输入输出多样性的扩展,其实现了多样性的扩展,其实现了多类输入到多类输出的风格迁移。

二、CycleGAN原理

GAN原理.png

从图中可以看出real A图通过生成fake B图与下面的real B图通过我们的去判断我们生成B是否是正式的,以此来训练我们的判别器以及我们的生成器。不知道说到这里我们有没有发现一个问题,就是我们的fake B训练到最后会越来越像real B倾斜,而无法兼顾我们部分像real A的期望。因此我们在这里在fake B后接一个网络,使得我们的real A 与通过还原网络产生的Reconstructed A进行loss计算,使得其能很好的让产生的图像也能兼顾部分A的特征。

这里需要强调的是生成网络一般采用下采样的卷积网络,还原网络一般采用上采样的反卷积网络,但是我们的反卷积还原出得图片的通道数需要为3,以对应彩色图。

在判别网络的时候我们需要将W*H*N的矩阵转成W*H*1的矩阵,这是为了我们在后面进行PatchGAN操作方便。

下面我们来整体看下网络模型的整体结构


image.png

其实就是上图中输入A生成fake B, 在这里我们也可以输入B 生成fake A 即有两个路线。
在这里涉及到4中损失函数:

  • Identity loss
  • G(生成器)网络 loss
  • Cycle loss
  • D(判别器)网络 loss

上面所述的4个网络都有两个过程分别是A↔️B以及B↔️A. 记住这里每一个损失是由顺序的。我们需要按照顺序理解。
identity loss ➡️ G网络loss➡️ Cycle loss ➡️ D网络loss

  1. identity loss

通过G_{AB}网络输入是A图片生成gen B图片,但是我们希望我们假设这个时候我们输入是real B图但是希望输出也应该是gen B图片,所以我们用L1 loss <gen B, real B>来表示。

通过G_{BA}网络输入是A图片生成gen A图片,但是我们希望我们假设这个时候我们输入是real A图但是希望输出也应该是gen A图片,所以我们用L1 loss <gen A real A>来表示。

  1. G网络loss

将A输入到G_{AB}生成的fake B进入到判别器里面,我们希望我们fake B更像real B。 所以fake B放入判别器希望器判断为True。 这里我们是采用MSE loss <fake B, true>

将B输入到G_{BA}生成的fake A进入到判别器里面,我们希望我们fake A更像real A。 所以fake A放入判别器希望器判断为True。 这里我们是采用MSE loss <fake A true>

这里需要注意一点我们经过判别器的时候采用了PatchGAN我们。PatchGAN可以这么理解。
GAN一般情况下的网络结构,在一些人的实验中已经表明对于要求高分辨率、高细节保持的图像领域中并不适合,有些人根据这一情况设计了PatchGAN的思路。这种GAN的差别主要是在于Discriminator上,一般的GAN是只需要输出一个true or fasle 的矢量,这是代表对整张图像的评价;但是PatchGAN输出的是一个N x N的矩阵,这个N x N的矩阵的每一个元素,比如a(i,j) 只有True or False 这两个选择(label 是 N x N的矩阵,每一个元素是True 或者 False),这样的结果往往是通过卷积层来达到的,因为逐次叠加的卷积层最终输出的这个N x N 的矩阵,其中的每一个元素,实际上代表着原图中的一个比较大的感受野,也就是说对应着原图中的一个Patch,因此具有这样结构以及这样输出的GAN被称之为Patch GAN。

  1. Cycle loss
    real A图像通过G_{AB}和G_{BA}生成gen A, 此时我们需要通过L1 loss<real A, gen A>
    real B图像通过G_{BA}和G_{AB}生成gen B, 此时我们需要通过L1 loss<real B, gen B>

  2. D网络loss
    此时我们将判别器梯度计算改为True, 分别将real A, fake A放入判别器,我们再将real B, fake B放入判别器。分别计算各自的MSE loss<real A, True>, MSE loss<real B, True>, MSE loss<fake A, False>, MSE loss<real B, False>

参考

  1. 关于PatchGAN的理解
  2. TensorFlow2.0 深度学习应用变成快速入门
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352