CycleGAN网络详解

CycleGAN网络详解注 CycleGAN 的生成器和判别器结构大家都没有去详细介绍 这里我给补充一下哦简介论文下载地址 https arxiv org abs 1703 10593 前言 CycleGan 是一种实现图像风格转换功能的 GAN 网络 早在它出现之前就存在着 Pix2Pix 实现图像风格转换 但 pip2pip 具有很大的局限性 主要是针对两种风格图像要对应出现 而现实中很难找到一些风格不同相同图像 也能难去拍摄获得 于是 CycleGan 就实现这个功能 在两种类型图像之间进行转换 而不需要对应关系 非常强大和实用 这

简介

[论文下载地址] [https://arxiv.org/abs/1703.10593]

前言

CycleGan是一种实现图像风格转换功能的GAN网络。早在它出现之前就存在着Pix2Pix实现图像风格转换,但pip2pip具有很大的局限性,主要是针对两种风格图像要对应出现,而现实中很难找到一些风格不同相同图像,也能难去拍摄获得,于是CycleGan就实现这个功能,在两种类型图像之间进行转换,而不需要对应关系,非常强大和实用!!!

生成器和判别器结构

网络下载

模型损失

生成器和判别器的loss函数和GAN是一样的,判别器D尽力检测出生成器G产生的假图片,生成器尽力生成图片骗过判别器

对抗loss:

D Y D_Y DY生成的是矩阵,所以这里对比的是矩阵,使用MSE损失计算loss

Cycle Consistency 损失

  1. 对抗损失使用的损失函数为BCELoss
    在这里插入图片描述
    作者训练对抗损失时没有使用BCELoss(二分类交叉熵损失函数),而使用的时MSE(均方根误差),作者解释均方根误差的训练效果更好

  2. 论文中没有写identity损失,但是源码中是体现了Identity损失的,这个损失主要是训练网络的识别能力,表示为 A t o B ( r e a l B ) AtoB(real_B) AtoB(realB),解释一下,就是将真实的B输入到A生成B的判别器中,查看判别器的识别损失,希望越小越好!说明生成器网络真正的理解了B的结构。同理也存在 B t o A ( r e a l A ) BtoA(real_A) BtoA(realA)
    L i d e n t i t y = E y   p d a t a ( y ) [ ∣ ∣ D Y ( G ( y ) ) − y ∣ ∣ 1 ] + E x   p d a t a ( x ) [ ∣ ∣ D X ( G ( x ) ) − x ∣ ∣ 1 ] L_{identity} = E_{y~p_{data(y)}}[||D_Y(G(y))-y||_1]+E_{x~p_{data(x)}}[||D_X(G(x))-x||_1] Lidentity=Ey pdata(y)[DY(G(y))y1]+Ex pdata(x)[DX(G(x))x1]
    准确的说,
    L o s s = L G A N ( G , D Y , X , Y ) + L G A N ( G , D X , Y , X , ) + L c y c + L i d e n t i t y Loss = L_{GAN}(G,D_Y,X,Y) + L_{GAN}(G,D_X,Y,X,)+L_{cyc} + L_{identity} Loss=LGAN(G,DY,X,Y)+LGAN(G,DX,Y,X,)+Lcyc+Lidentity


总结

CycleGAN的应用很多,很丰富,我认为可以与各位的领域相结合,尤其是数据集可以扩充部分,一定能取到很强的功效。另外,我认为CycleGAN网络也可以进行调整,还有很多不足之处,改进模型是一个不错的提议哦!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210713.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午7:03
下一篇 2026年3月19日 上午7:04


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号