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,但是实列归一化的这种方法被证明有效,可以用。
总之,这个方法简单粗暴,效果也不错。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了