飞桨PaddlePaddle(论文复现)-BigGAN解读

article/2025/11/9 22:18:35

飞桨PaddlePaddle(论文复现)-BigGAN解读

先来看看效果(左上脚为生成的图像)在这里插入图片描述
在这里插入图片描述

论文在现有GAN的基础上对生成样本的保真度与多样性之间的权衡进行改进

在ImageNet的128*128分辨率下训练,我们的模型(BigGANs)得到了166.3的Inception Score(IS)和9.6的Frechet Inception Distance(FID),改善了之前最好的52.52的IS和18.65的FID。

这篇论文没有提出新的模型,只是将原有的GAN的模型,
1.用8倍原有的batch size大小,
2.将隐藏层的变量数量扩充到原有模型的4倍以后进行训练获得了很好的图片生成的效果。
3.在扩充了变量数量和batch size大小后,模型出现了不稳定的现象,文章中对出现的不稳定现象,采用现有的比较有效的稳定训练GAN的方
4.文中发现这样确实会稳定GAN的训练,但是同时会牺牲生成图片的质量。

关于实现细节的问题

GAN架构:

SA-GAN

损失函数:

hinge loss

类信息处理:

Batch Norm for G

projection for D

训练

Spectral Norm in G

学习率减半

每训练G一次,训练D两次

G的权重使用moving average,decay为0.9999

初始化

Orthogonal Initialization

文章首先发现,只是增加batch size的大小到原来大小的8倍,模型提升了生成图片的质量(用Inception Score度量),但是也加快了模型发生不稳定和模式崩塌速度。

接着,增加每层的神经元的个数,将其个数翻倍,这样同样提升了生成图片的质量(用Inception Score度量)。但是实验发现,增加GAN网络的深度,并没有改善图片生成的质量。

文中对于类信息c使用batch norm处理,并采用了共享的策略,将c的信息传递给每一层中,这样可以提高性能,减少计算量。除了将类信息c传递到每层,文中同样将z,也就是生成图片所用的噪声数据传递到了每层,这样可以提升性能和加快训练速度。

文章讨论较多的是被其称作截断技巧的部分,简单说,截断技巧就是,用正态分布数据进行训练,然后测试的时候,采用截断的正态分布数据来生成更好的图片(这个思路类似于,训练了一大批军队,但是到时候真正上战场的是这批军队中的精兵)。这个技巧能很好的提高生成图片的质量,但是会降低生成图片的多样性。但是,有些模型不会服从截断(也就是说,使用了截断技巧,但是没有提升产生图片的质量),文章尝试用正交化初始化的方式,解决这个问题,最终找到较好的正则化权重如下:LargeScaleGANtrainingforHighFidelityNaturalImageSynthesis

文章中同时也对于GAN训练的稳定性做了研究,首先他们发现了生成器G的第一层的最大奇异值,会在发生模式崩塌的情况下,剧烈变化并且爆炸增长。但是限制这一层权重的增长,以限定其最大奇异值的变化,并没有保证获得模型的稳定,因而他们认为第一层最大奇异值的变化,是模式崩塌发生的征兆,而不是原因。

文章近一步研究了分辨器的模式崩塌的情况,发现在模式崩塌发生的时候,其权重的奇异值会发现跳跃,同时文章尝试了很多正则化的方法来防止模式崩塌的现象,发现采用了这些正则化的方法,可能会防止模式崩塌,但是这是以生成样本的质量为代价的。因而文章给出的建议是,在现有的技术情况下,可以考虑松弛防止模式崩塌的约束,或者就让模式崩塌发生,从而换取更好的模型生成的图片的质量。

文章的附录部分的讨论也值得一读,比如使用的GAN使用了resNet的架构;训练的trick,还有就是对于隐藏变量——生成器的输入z的取值研究,文中的实验表明,使用伯努利分布,Censored Normal,正态分布和伯努利分布的混合都可以提高输出图片的质量。


http://chatgpt.dhexx.cn/article/D0BT6CO6.shtml

相关文章

深度学习系列43:引入注意力的SAGAN/BigGAN和big_sleep

1. 从SAGAN到BigGAN sa_gan是Self-Attention Generative Adversarial Networks的缩写。 动机:一般的dc_gan(deep convolution)模型擅长处理含有大量纹理的类型,比如天空、风景等,但在结构上的表现比较差,比如不能正确生成人脸、四…

【Large Scale Adversarial Representation Learning 大规模对抗学习(BigGAN) 】学习笔记

目录 1.背景 2.特点 3.BigGAN详细介绍 ①Batch size的增大------以提升IS ②增加网络深度,即增加每层的通道数------以提升IS ③BatchNorm共享嵌入条件标签c------增加参数,提升训练速度 ④将噪声向量 z 送到 G 的多个层而不仅仅是初始层-----提升…

ICLR 2019 Oral 论文 BigGAN 解读及源代码拆解

简称:BigGAN 全称:Large Scale GAN Training for High Fidelity Natural Image Synthesis 来源:ICLR 2019 Oral 一、概述 (一)概要说一下 BigGAN 的研究背景: 到 BigGAN 提出为止,虽然 GANs…

BigGAN-论文阅读笔记

BigGAN-论文阅读笔记 论文地址:Large Scale GAN Training for High Fidelity Natural Image Synthesis-ReadPaper论文阅读平台 文章目录 BigGAN-论文阅读笔记论文结构摘要原文核心 研究背景谱归一化(Spectral Normalization)条件判别 研究意…

BigGAN高保真自然图像合成的大规模GAN训练

2019-02-24 22:23:17 BigGAN-LARGE SCALE GAN TRAINING FOR HIGH FIDELITY NATURAL IMAGE SYNTHESIS 原文:https://arxiv.org/abs/1809.11096 作者:来自DeepMind & Heriot-Watt University 译者:Tony 时长:3K字&#xff…

BigGAN、BiGAN、BigBiGAN简单介绍

介绍 上一篇文章在介绍GAN的评价标准的时候提到了 BigGAN 在Inception Score上取得了巨大的进步,而最近 DeepMind 又基于 BiGAN 提出了 BigBiGAN,它在 ImageNet 上的无监督表示学习和无条件图像生成方面都取得了极为优秀的成绩。 本文主要对BigGAN和BiG…

【GANs学习笔记】(十三)BIGGAN

完整笔记:http://www.gwylab.com/note-gans.html ——————————————————————— 原paper及译文: http://www.gwylab.com/paper-biggan.html 4. BigGAN 4.1 BigGAN解决的问题 我们知道,GANs的终极目标是生成让人无法辨别真…

Paper Reading:BigGAN

URL: https://arxiv.org/pdf/1809.11096.pdf code: https://github.com/AaronLeong/BigGAN-pytorch https://tfhub.dev/s?qbiggan TL;DR 号称具有划时代意义的BigGAN,由DeepMind团队在ICLR2019上发表,将精度作出了跨越式提升。 将Inception Score (IS…

BigGAN论文解读

论文:https://arxiv.org/pdf/1809.11096.pdf 源码:https://github.com/ajbrock/BigGAN-PyTorch 用于高保真自然图像合成的大规模GAN训练 摘要 尽管最近在生成图像建模方面取得了进展,但是从像ImageNet这样的复杂数据集中成功生成高分辨率、…

Big GAN

参考文献: •https://github.com/kayamin/DR-GAN •https://www.jianshu.com/p/4ee8f9284b81 •http://cvlab.cse.msu.edu/pdfs/Tran_Yin_Liu_CVPR2017.pdf •https://arxiv.org/abs/1809.11096 •https://juejin.im/entry/5c05e76c51882539c60cf2d5 •https:…

BigGAN

1、BIGGAN 解读 1.1、作者 Andrew Brock、Jeff Donahue、Karen Simonyan 1.2、摘要 尽管最近在生成图像建模方面取得了进展,但从 ImageNet 等复杂数据集中 成功生成高分辨率、多样化的样本仍然是一个难以实现的目标。为此,我们以迄 今为止最大的规模训…

BigGAN(2019)

论文引入 我们来看一下由 BigGAN 生成的图像: 随着 GAN、VAE 等一众生成模型的发展,图像生成在这几年是突飞猛进,14 年还在生成手写数字集,到 18 年已经将 ImageNet 生成的如此逼真了。 这中间最大的贡献者应该就是 GAN 了&…

BigGAN_用于高保真自然图像合成的大规模 GAN 训练

【飞桨】【Paddlepaddle】【论文复现】BigGAN 用于高保真自然图像合成的大规模 GAN 训练LARGE SCALE GAN TRAINING FOR HIGH FIDELITY NATURAL IMAGE SYNTHESIS1、BiagGAN的贡献2.1背景2.2具体措施与改变2.2.1规模(scaling up)2.2.2截断技巧(…

环形链表之快慢指针

环形链表 前言一、案例1、环形链表2、环形链表II 二、题解1、环形链表2、环形链表II3、源码4、寻找入环点的数学解法 总结参考文献 前言 对于环形链表,通过快慢指针,如果存在环,这这两个指针一定会相遇,这是一种经典的判断环或是应…

快慢指针判断链表中是否存在环以及查找环的起始位置

判断链表中是否有环? 使用快慢指针, 慢指针一次走一步, 快指针一次走两步, 当快慢指针相遇时,说明链表存在环 为什么快指针每次走两步而慢指针每次走一步呢? 因为slow指针和fast指针都会进入环内, 就像在环形跑道内不同位置的两个人;slow指针在后面, fast指针在前面, 但…

链表-快慢指针(C++)

一、链表 链表是由一组在内存中不必相连(不必相连:可以连续也可以不连续)的内存结构Node,按特定的顺序链接在一起的抽象数据类型。 我们常见的链表结构有单链表和双向链表。 单链表,保存了下一个结点的指针&#xf…

面试题 02.08. 环路检测-快慢指针+如何找到环的入口?(证明)Java

1.题目 2.思路 方法一——哈希表记录节点 思路很简单,记录一下每个节点出现的次数,如果某个节点出现了两次,代表此时有环,并且是环的入口,直接返回即可。 时间复杂度O(N) 空间复杂度O(N) public class Solution {…

链表中快慢指针的应用

目录 一、链表的中间结点 二、回文链表 三、链表中倒数第K个结点 四、删除链表的倒数第n个结点 五、环形链表 六、环形链表Ⅱ 一、链表的中间结点 给定一个头结点为 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间…

快慢指针思想

快慢指针思想 在做题当中经常会用到快慢指针,快慢指针就是定义两根指针,移动的速度一快一慢,从而创造出自己想要指针的差值。这个差值可以让我们找到链表上相应的节点。 参考链接:https://www.jianshu.com/p/21b4b8d7d31b 应用 …

指针的运用——快慢指针

快慢指针是指针的一种类型,在这里我们来了解下快慢指针 让我们来看一道题 一、题目 876. 链表的中间结点 首先我们对这道题进行分析,最容易让人想到的方法是直接使用n/2找到中点,如果我们不对链表进行遍历,我们该怎么做呢&…