pix2pix简单分析

pix2pix是一个GAN模型改进的算法,要求训练集有匹配对。与之相反的,是无匹配对的训练集,即cyclegan。

[1611.07004] Image-to-Image Translation with Conditional Adversarial Networks (arxiv.org)

一、模型结构

 

 模型结构如图所示,对于生成器G,需要输入一个标签x。对于判别器D,则需要输入图片y及标签x。作者使用了U-net网络,大概长这个样子。

 

 一个大大的U形,一般用于语义分割,效果还不错,是一个基准模型。

二、LOSS函数

 

 其loss函数如上所示。

CGAN的loss如下所示,其实就是gan的损失函数稍微改了下:

 

 L1 损失函数:

 L1 loss是一种单纯的绝对差损失,鲁棒性强,但是很容易减少生成图G的多样性,倾向于生成真实图y(原封不动照搬)。

有很多论文指出,这部分损失函数可以改为 内容损失。

关于内容损失,指的是浅层特征的损失,是属于风格迁移方面的内容,一般使用VGG16来计算,因为经过了一些卷积层的抽象,具有一定的泛化能力。此外还有 风格损失,指的是深层特征的损失,这部分损失更关注特征与特征之间的关系,所以使用gram或协方差矩阵来计算损失。(VGG16是一个分类模型)

详细内容可以看:风格迁移(style_transfer)网络 - 知乎 (zhihu.com)

 

 三、后续

文章后续稍微讨论了一下优化器optim的问题。D、G都是交替训练一次,使用了adam的优化方法,学习率为0.0002。批处理量是1,也可以设为1~10。

在文章中,Bathsize设为1是很合理的,他说虽然有BN层,一般不会batch size=1,但是实列归一化的这种方法被证明有效,可以用。

总之,这个方法简单粗暴,效果也不错。

posted @   澳大利亚树袋熊  阅读(1524)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示