mask-conditional contrast-GAN

版权声明:要转随便转,如果能加上原文的链接就感谢各位了。( ⊙ o ⊙ )    https://blog.csdn.net/Hungryof/article/details/78093174

可以看到,猫变狗,单车变摩托了。效果看上去有点尴尬,但毕竟是初步效果是有了。 
但这篇论文的主要贡献是提出了一个“Contrast distance”。

主要思想
我要从小猫变小狗,变的小狗与真实像狗要像,但是到底像到什么程度呢?输入是猫,那么起码生成的小狗,与真实的小狗的相像程度,要大于与其输入的猫的相像程度吧。其实就是一个triple loss的思想。我们要想生成的是狗,希望生成的狗输入真实狗的那一类,那么这两只狗的距离,肯定要小于生成的狗与输入的猫的距离。因为狗与猫是不同类,他们的距离属于类间距离。所以这种”Contrast distance”就相当于类间距离大于类内距离。 


损失
对于G来说就有三个损失,除了最简单的 重建损失,还有GAN损失(用LSGAN来让稳定性高点),最后就是这里的重点 对比损失了。比较简单的就是下面这样写: 
∥fx∼fy′∥>∥fy′∼fy¯∥
‖fx∼fy′‖>‖fy′∼fy¯‖

因为我们要比较的距离不是直接在raw image上进行比较,起码是semantic上的距离吧。所以就用一个DcyDcy来提取语义信息,并在特征上进行约束。为了避免模式塌陷,用f¯yf¯y,即抽取多张真实的狗图,提取特征再取个平均,而不是任意抽一张。 
那么距离的具体定义: 
Q(fy′,fx,fy¯)=−loge−∥fy′−fy¯∥2e−∥fy′−fy¯∥2+e−∥fy′−fx∥2
Q(fy′,fx,fy¯)=−log⁡e−‖fy′−fy¯‖2e−‖fy′−fy¯‖2+e−‖fy′−fx‖2

可以看到,如果∥fy′−fy¯∥2‖fy′−fy¯‖2 比∥fy′−fx∥2‖fy′−fx‖2 小的越多,那么QQ值就越小。所以G就最小化QQ,而DcyDcy就最大QQ就行。 

值得注意的是,这里只需要用一个cycle网络就行。原因就是因为加了Q约束。

隐藏层加类别选择的方法


这个还是挺常用的,就是你如果要进行对G加入一定的条件,比如这里是要求让G生成狗,那么你在latent representation中直接加入“one-hot”类型的特征就行。不过如果是在隐藏层特征中加入“标签”,比如这里 1*64的被扩展成 16*16*64。当然不能胡乱扩展,扩展方式是,每个spaital size的点,都有one-hot这么多通道。可以这样理解,对于每个点来说,64个通道,只有一个值是1,其余全部为0。相当于这个点是被赋予了“狗”的标签。扩展的16*16*64, 每次只有一个面(假设是第3个)是1,其余63个面全为0。经过网络训练后,会自动认为第3个通道面为1的话,就专门提取一些有助于变成狗的特征。(以后有更好的解释再补充吧。。)其实这在很多地方都这样弄,比如Generative Adversarial Text to Image Synthesis, 在D的隐藏层也是这样加入类别选择的。
--------------------- 
作者:Hungryof 
来源:CSDN 
原文:https://blog.csdn.net/hungryof/article/details/78093174 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值