Freeze the Discriminator: a Simple Baseline for Fine-Tuning GANs

生成式对抗网络(GANs)在计算机视觉、图形学和机器学习等领域表现出了出色的性能,但通常需要大量的训练数据和大量的计算资源。为了解决这一问题,几种方法将迁移学习技术引入GAN训练中。然而,他们要么倾向于过度拟合,要么局限于学习小的分布变化。在本文中,我们证明了简单的微调gan具有冻结的低层鉴别器表现惊人的好。这个简单的基线,即FreezeD,显著优于以前在无条件和条件gan中使用的技术。

The code and results are available at https://github.com/sangwoomo/FreezeD.

1. Introduction

已经提出了许多技术来克服这一限制,例如,转移训练有素的源模型的知识[45, 32, 44],学习元知识以快速适应目标领域[24, 47, 42],使用辅助任务来促进训练[7, 26, 48, 49],改进次优模型的推理程序[2, 39, 29, 38],使用表达式先验分布[13],主动选择样本来为条件生成提供监督[29],或主动抽样小批进行训练[37]。在这些方法中,转移学习[46]可以说是在有限的数据和资源下训练模型的最有希望的方法。事实上,最近深度学习的大部分成功都是建立在以监督[9]或自我监督[10, 14]的方式在大型数据集上预训练的强大骨干上。

在识别任务中转移分类器成功之后,还可以考虑将训练良好的GAN主干用于下游生成任务。虽然有几种方法提出了迁移学习方法来训练GANs[45,32,44],但它们往往倾向于在有限的训练数据[45]下进行过拟合,或者在学习显著分布偏移时不具有鲁棒性[32,44]。

在本文中,我们提出了一个简单而有效的gan迁移学习基线。特别地,我们展示了简单的gan微调(生成器和判别器)与判别器的冻结较低层的性能惊人地好(参见图1)。直观上,鉴别器的下层学习图像的一般特征,上层学习根据提取的特征对图像进行真伪分类。我们注意到,这种特征提取器和分类器的二分法(并冻结特征提取器以进行微调)并不新鲜;它已被广泛应用于训练分类器[46]。我们确认了这一观点对gan的迁移学习也是有用的,并为gan迁移学习设置了合适的基线。

图1:在动物脸部[36]数据集中的 "狗 "类上,微调[15]和我们提出的基线FreezeD的得分趋势。虽然微调存在过拟合的问题,但FreezeD在训练GAN时显示出持续的稳定性。

我们使用不同的架构和数据集证明了简单基线(被称为FreezeD)的有效性。 对于无条件的GANs,我们对StyleGAN[20]架构进行了微调,该架构在FFHQ[20]、动物脸部[36]和动漫脸部[30]数据集上进行了预训练;对于有条件的GANs,我们对SNGAN-projection[27]架构进行了微调,该架构在ImageNet[9]、牛津花[31]、CUB-200-2011[40]和Caltech-256[12]数据集上预训练。FreezeD在所有的实验设置中都优于以前的技术,例如,在动物脸部数据集的 "狗 "类上,FID[15]得分从微调的64.28分提高到61.46分(-4.4%)

2. Methods

GANs[11]的目标是学习一个生成器(和一个相应的鉴别器)来匹配目标数据分布。在迁移学习中,我们假设可以利用预先训练的源数据分布源生成器(和相应的鉴别器)来改进目标生成器。GANs的调查见[25,22]。

首先,我们简要回顾了以往的迁移学习方法。

  • 微调[45]:最直观、最有效的知识传递方式就是微调;将目标模型的参数初始化为源模型的预训练权值。作者报告说,微调生成器和鉴别器确实显示出最好的性能然而,微调经常遭受过度拟合的困扰;因此需要适当的regularization

  • Scale/shift[32]:由于na¨ıve微调容易过度拟合,Scale/shift建议只更新归一化层(例如,批处理归一化(BN)[17]),而固定所有其他权重。然而,由于其局限性,它往往表现出较差的结果,特别是当源和目标分布之间有显著的变化时

  • Generative latent optimization(GLO)[32,4]。由于GAN的损失是由判别器给出的,这对于有限的数据来说可能是不可靠的,GLO建议用监督学习来微调生成器,其中损失由L1损失和感知(perceptual )损失之和给出[19]。在这里,GLO联合优化生成器和 latent codes以避免过度拟合;一个 latent codes(及其相应的生成样本)与一个真实样本相匹配;因此,生成器可以通过插值来概括样本。虽然GLO提高了稳定性,但由于缺乏对抗性损失(以及对源鉴别器的预先了解),它往往会产生模糊的图像

  • MineGAN[44]。为了避免生成器的过度拟合,MineGAN建议固定生成器并修改latent codes。为此,MineGAN训练一个矿工网络,将latent codes转换为另一个latent codes。虽然当源分布和目标分布共享支持时,这种类似重要性采样的方法是有效的,但当它们的支持不一致时,它可能不具有普遍性

我们现在引入了一个简单的基线,FreezeD,尽管它很简单,但它的性能优于前面的方法,并为可能的未来方向提出了另外两种方法,它们可能会带来进一步的改进。我们指出,我们的目标不是提倡最先进的技术,而是建立一个简单和有效的基线。通过这样做,我们希望鼓励新技术超越所提议的基线

  • FreezeD(我们提出的基线):我们发现简单地冻结鉴别器的较低层次,只微调上层,表现惊人地好。我们将这个简单而有效的基线称为FreezeD,并将在实验部分演示它相对于前面方法的一致增益。

  • L2-SP[23]。除了之前的方法,我们还测试了L2-SP,众所周知,它对分类器是有效的。在微调的基础上,L2-SP使目标模型不至于远离 source models。特别是,它使源模型和目标模型的参数的L2-norm正规化。在我们的实验中,我们将L2-SP应用于生成器、判别器和两者,但结果并不理想。然而,由于冻结层可以被看作是对所选层给予L2-SP的无限权重,而对其他层给予0,所以对每一层使用适当的权重可能会有更好的表现。

  • 特征蒸馏[16,35]:我们还测试了特征蒸馏,这是最流行的分类器迁移学习方法之一。在这些变体中,我们简单地提取源模型和目标模型的激活(初始化为源模型)。我们发现特征蒸馏的结果与freeze的结果相当,但需要两次计算。研究更先进的技术(例如,[1,18,34])将是一个有趣和有前景的未来方向。

A. Ablation Study on Freezing Layers

我们在表5和表6中分别研究了StyleGAN和SNGAN-projection的判别器的冻结层的效果。在StyleGAN中,第4层始终显示出最佳性能。然而,在SNGAN-projection中,第{3、2、1}层分别对Oxford Flower、CUB-200-2011和Caltech-256数据集是最好的。这是因为Caltech-256与Oxford Flower相比更难学习(即分布转移更大)。直观地说,人们应该减少对模型的限制,以适应大的分布偏移。我们还可以看到,对于《牛津花》数据集,FreezeD的稳定性不如微调。我们观察到,特征提炼显示出更好的稳定性,同时在我们的早期实验中显示出类似的最佳性能。调查一个更复杂的方法将是一个有趣的研究方向。

表5:在Animal Face数据集的“猫”和“狗”类下StyleGAN架构上D冻结层的消融研究。第i层表示该鉴别器的前i层被冻结。第4层表现最好

表6:在Oxford Flower, CUB-200-2011, Caltech-256数据集下对SNGAN-projection架构上D的冻结层的消融研究。第i层表示鉴别器的前i层被冻结。

Freeze the Discriminator a Simple Baseline for Fine-Tuning GANs相关推荐

  1. Paper reading:A simple baseline for one-shot multi-object tracking(一)

    A simple baseline for one-shot multi-object tracking(一) 1. 背景介绍 作者来自华中科技大和微软亚亚研院,之前LZ是看过一点多目标跟踪的算法的, ...

  2. 《A Simple Baseline for BEV Perception Without LiDAR》论文笔记

    参考代码:bev_baseline project page:A Simple Baseline for BEV Perception Without LiDAR 1. 概述 介绍:在这篇文章中提出了 ...

  3. Bert模型 fine tuning 代码run_squad.py学习

    文章目录 关于run_squad.py 分模块学习 SquadExample InputFeatures create_model model_fn_builder input_fn_builder ...

  4. pytorch深度学习-微调(fine tuning)

    微调(fine tuning) 首先举一个例子,假设我们想从图像中识别出不同种类的椅子,然后将购买链接推荐给用户.一种可能的方法是先找出100种常见的椅子,为每种椅子拍摄1,000张不同角度的图像,然 ...

  5. pretraining+fine tuning

    few shotlearning简单实现方法:在大规模数据做预训练模型,然后在小规模suport set上做fine tuning.方法简单准确率高. 基础数学知识: cos函数可以判断两个向量的相似 ...

  6. 如何fine tuning

    先看一个示例 keras入门 -在预训练好网络模型上进行fine-tune https://blog.csdn.net/hnu2012/article/details/72179437 我们的方法是这 ...

  7. 计算机视觉之迁移学习中的微调(fine tuning)

    现在的数据集越来越大,都是大模型的训练,参数都早已超过亿级,面对如此大的训练集,绝大部分用户的硬件配置达不到,那有没有一种方法让这些训练好的大型数据集的参数,迁移到自己的一个目标训练数据集当中呢?比如 ...

  8. 年终收藏!一文看尽2020年度最出圈AI论文合集

    来源:  新智元 本文约4600字,建议阅读5分钟 本文为你总结2020年AI领域有很多精彩的重要成果. 2020年,想必各国的人民都被新冠病毒支配得瑟瑟发抖... 不过,这并不影响科研工作者的工作态 ...

  9. 重磅推荐:2020年人工智能最精彩的25篇论文(附下载)

    本文推荐整理的2020年人工智能最新突破的25篇论文,包含论文下载.视频说明.代码下载. 这是今年最精彩的人工智能方向的研究论文,本文帮您整理了.简而言之,这是一份精心策划人工智能和数据科学领域最新突 ...

  10. 收藏 | 一文看尽2020AI论文

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:新智元 AI博士笔记系列推荐 周志华<机器学习> ...

最新文章

  1. 让 PM 全面理解深度学习
  2. ios nslog 例子_iOS Block实例
  3. wordpress 自定义字段
  4. html实体转换成xa0,关于javascript:反应道具:在JSX动态内容中使用HTML实体?
  5. element子组件中的校验_Salesforce LWC学习(十六) Validity 在form中的使用浅谈
  6. Node:使用node-postgre时,使用async、await查询
  7. 颗粒状糖果(巧克力)包装机设计
  8. 【从零开始学架构-李运华】开篇词|照着做,你也能成为架构师!
  9. CATIA V5-6 R2017 轴类零件设计
  10. 【Python】爬取TapTap原神评论并生成词云分析
  11. Win10完美运行红色警戒2的安装包和补丁
  12. 为什么宁愿工资低点,也不建议去外包公司?
  13. html5怎么获取当前星期几,javascript如何获取今天是星期几?
  14. 一首很好听的英文歌曲Peerless
  15. 喝酒神器微信小程序源码支持流量主解锁多人对战
  16. 古琴销售怎么做阳php学,古琴斫琴要领
  17. c++小游戏:飞机游戏
  18. css玻璃雨滴效果,纯css实现窗户玻璃雨滴逼真效果
  19. django框架中嵌入容联云sdk实现短信发送接口
  20. RPC中Stub的理解

热门文章

  1. 小程序逆向——某书小程序反编译(一)
  2. 小程序云开发添加html页面,微信小程序云开发js抓取网页内容
  3. 用安装包修复服务器,修复服务器
  4. python @property 解释
  5. 一个足球队员的不屈抗争·《晚唱·贾平凹》
  6. delete obsolete 会删除归档日志么?
  7. 你一事无成,还在那里傻乐
  8. INTERVAL 用法 mysql
  9. Flink Interval Join使用以及源码解析
  10. Python爬虫实战 | (21) Scrapy+Selenium爬取新浪滚动新闻