(2022,DynamicD)使用动态鉴别器改进 GAN

news2025/1/13 10:33:45

Improving GANs with A Dynamic Discriminator

公众号:EDPJ

目录

0. 摘要

1. 简介

2. 相关工作

3. 方法

3.1 基础

3.2 动态鉴别器 

3.3 针对不同数据体系的两种方案

4. 实验

4.1 设置

4.2 实证研究 

4.3 与现有方法的比较 

4.4 DynamicD 的泛化性和兼容性 

5. 结论

参考

附录

C. 对不同子网络的分析

D. 训练动态

F. 超参数分析 

S. 总结

S.1 核心思想

S.2 具体操作

S.3 分析


0. 摘要

鉴别器通过区分真实样本和合成样本在训练生成对抗网络 (GAN) 中起着至关重要的作用。 虽然真实数据分布保持不变,但由于生成器的更新,合成分布不断变化,从而使判别器的二分类任务产生相应的变化。 我们认为,对容量进行即时调整的鉴别器可以更好地适应这种时变任务。 一项综合的实证研究证实,DynamicD 的训练策略可以提高综合性能,而不会产生任何额外的计算成本或训练目标。 开发了两种容量调整方案,用于在不同数据机制下训练 GAN:i) 给定足够数量的训练数据,判别器受益于逐渐增加的学习能力,以及 ii) 当训练数据有限时,逐渐减少层宽度可以减轻判别器的过拟合问题。 在一系列数据集上对 2D 和 3D 感知图像合成任务进行的实验证实了我们的 DynamicD 的普遍性以及它相对于基线的实质性改进。 此外,DynamicD 与其他鉴别器改进方法(包括数据增强、正则化器和预训练)具有协同作用,并且在结合用于学习 GAN 时带来持续的性能提升。

1. 简介

现有的图像分类研究指出,将模型容量与任务难度对齐是至关重要的,否则会出现欠拟合或过拟合的问题。

与训练数据在整个训练过程中保持固定的常见图像分类任务不同,GAN 训练似乎是时变的,因为生成器的合成质量在不断改进,如图 1 所示。这样,虽然真实数据分布保持不变,不同的合成分布仍然导致判别器的二分类任务发生变化。 这就很自然地提出了一个问题:具有固定容量的判别器是否满足这种动态训练环境的需求? 

为了回答这个问题,我们通过使用动态鉴别器 (DynamicD) 训练 GAN 进行了全面的实证研究,其中在训练期间对其模型容量进行了即时调整。 我们首先研究一种简单的形式,其中鉴别器的层宽度是线性调整的。 在这样的设置下,由我们的 DynamicD 监督的生成器比使用固定鉴别器学习的生成器具有更好的合成性能,该鉴别器具有起始容量或结束容量。值得注意的是,我们提出的训练策略非常有效,因为它既不依赖额外的计算成本也不依赖额外的损失函数。 受此启发,我们提出了两种容量调整方案,并确认不同的训练数据机制有不同的偏好方案。

  • 一方面,在图 1a 中有足够数量的训练数据,当生成器变得更有能力时,辨别任务变得越来越具有挑战性。 在这种情况下,鉴别器受益于与生成器匹配的扩大容量。
  • 另一方面,由于图 1b 中的训练数据有限,模型训练的时间越长,判别器就越接近于记住整个数据集。 因此,逐渐降低模型容量的方案有助于鉴别器防止过度拟合。 

我们在 2D 图像合成和 3D 感知图像合成这两个任务上评估我们的方法。 在广泛的数据集上,包括人脸、动物面孔、景色和合成的汽车,DynamicD 表现出相对基线的一致改进。 此外,我们表明 DynamicD 与改进 GAN 鉴别器的现有方法具有协同作用,包括数据增强、训练正则化器和预训练 。 它们结合起来会带来额外的性能提升,并为改进 GAN 训练开辟了一个新的维度。

2. 相关工作

生成对抗网络。最近在架构改进和训练方法方面的努力提供了吸引人的合成结果,甚至是 3D 可控性 。 基于这些,提出了各种技术来操纵语义和编辑真实图像。 此外,GAN 还可以改进各种判别任务。 在这项工作中,我们旨在从一个基本观点探索鉴别器的动态能力。 一些相关工作是渐进式增长(progressive growing)训练,它相应地从低分辨率到高分辨率调整生成器和鉴别器。 不同的是,我们不修改生成器,只专注于研究鉴别器的能力。

改进 GAN 中的鉴别器。 人们已经从各种角度尝试改进鉴别器。 一些文献探讨了数据增强如何帮助减轻鉴别器的过度拟合,这在低数据条件下非常有效。 然而,如果有足够的训练数据,改进变得有限甚至是负面的。 同时,之前的工作还努力为鉴别器加入各种正则或引入各种额外任务。 虽然鉴别器确实可以在某种程度上得到增强,但额外的计算是不可避免的。

  • 最近,研究人员开始充分利用大规模数据收集的预训练模型(例如,ImageNet)作为鉴别器的冻结特征提取器。
  • Sauer 等人提出带有投影的预训练特征空间可以显着提高收敛速度。
  • 与此同时,Kumari 等人通过集成多个现成的模型改进了 GAN 训练。
  • 然而,最近的工作表明,使用 ImageNet 预训练模型可能会使指标在实践中不可靠。

模型增强。 与直接对数据操作的数据增强不同,模型增强直接增强神经 representation。一个代表性的例子是 Dropout,它随机消除神经网络的单元以缓解过度拟合问题。 为了更好的正则化和性能,提出了各种 dropout 操作,如 SpatialDropout、DropBlock 和 StochasticDepth。

  • 最近,Cai 等人将网络增强引入到训练中以改进微型神经网络。
  • 同时,Liu 等人证明模型增强可以很好地与对比学习一起工作。
  • 模型增强的文献主要集中在改进判别模型上。Mordido 等人建议涉及多个鉴别器,然后选择鉴别器的一个子集来训练生成器。
  • 不同的是,我们的方法侧重于一个鉴别器,并从递减和递增的角度研究不同容量的影响。

3. 方法

3.1 基础

3.2 动态鉴别器 

增加容量。 如果在我们的判别器较弱的情况下双分类任务变得具有挑战性,就会发生欠拟合,这样合成质量相对较低的生成器很容易骗过判别器。 因此,我们通过每几次迭代添加新初始化的神经滤波器来逐步增加鉴别器的容量。 也就是说,假设一层包含 M 个维度为 N 的神经滤波器,增加策略旨在引入 αM 个额外的滤波器,其中 α 表示扩展系数。

随着训练的进行,每 n 次迭代, α 线性增大,即鉴别器中所有层的容量同时增长(实际上 n = 1)。 在实践中,我们从标准鉴别器的一半容量开始,并确保最终容量与原始容量相同,以进行公平比较。

容量下降。 如果双分类任务相对简单,一个普通的判别器也可能会过度拟合,这似乎会记住训练集,合成质量将因此显着恶化。 为了缓解这种情况,我们随机消除了一些过滤器,因此层宽度逐渐缩小,如图 2 右侧所示。我们通过收缩系数 β 明确控制容量。 

与增加容量不同,我们根据经验发现减少所有层会使训练不稳定,尤其是在调整通常包含较少内核的较低层时。 因此,我们在多层之后应用这种递减方案。

这种递减方案不同于标准的 Dropout,因为我们的方法形成了一个“权重级别”的 dropout,它由训练 batch 中的所有实例共享,而 Dropout 更像是“特征级别”的每个实例正则化器。 

在训练期间,β 也线性下降,导致鉴别器的能力下降。 值得注意的是,这种策略不仅缩小了网络宽度,而且在一定程度上通过随机删除引入了多个鉴别器。 补充材料中的分析表明,来自各种鉴别器的 representations 可以相互补充,防止严重记忆某种模式,即大大减轻过度拟合问题。

3.3 针对不同数据体系的两种方案

数据充足。从一个相对小的网络(原始网络的子集)开始训练,扩展系数 α 可以从 0.5 到 0 变化。最大的网络与原始网络一致。

数据有限。收缩系数 β 从 1.0 开始,然后逐渐下降到 0.5。 考虑到上述由所有层的容量减少引起的不稳定问题,我们排除了通常包含较少维数的低级层的减少策略。

4. 实验

4.1 设置

基线。没有自适应鉴别器增强 (ADA) 的 StyleGAN2 作为我们 2D 图像合成的主要基线。 我们还使用 StyleNeRF 进行了 3D 感知图像合成实验。 所有训练设置都严格遵循先有技术,以确保公平比较。

4.2 实证研究 

实验结果如表 1 所示。

4.3 与现有方法的比较 

4.4 DynamicD 的泛化性和兼容性 

5. 结论

我们提出了一种改进 GAN 的通用方法 DynamicD。 通过调整两种不同方案下鉴别器的容量,我们可以显着提高图像合成质量并相应降低计算成本。 在广泛的数据集和生成任务上进行的实验证明了我们的 DynamicD 的有效性、通用性和兼容性,以及一致的性能提升。

讨论。 尽管在各种任务和数据集上的合成质量和性能都很吸引人,但我们的 DynamicD 仍然有一些局限性。 例如,当前形式的 DynamicD 通过扩展或缩小层宽度来调整网络容量。 没有探索其他因素(例如网络深度)的影响。 同时,目前的实验是在基于 CNN 的鉴别器上进行的。 基于 transformer 的鉴别器的收益仍然不确定且值得研究。 另一方面,虽然这项工作早期尝试证明两种动态方案在不同数据规模下的有效性,但一些自我调整或 AutoML 策略可能更有效。 此外,理论研究将使它更具吸引力,留待未来研究。

参考

Yang C, Shen Y, Xu Y, et al. Improving gans with a dynamic discriminator[J]. arXiv preprint arXiv:2209.09897, 2022.

附录

C. 对不同子网络的分析

如第 3 节所述,我们的递减策略将涉及多个子网。 为了分析各种子网的行为,我们利用 Grad-CAM 来可视化空间注意力。 图 S1 显示了基线的注意力图和我们在 FFHQ-2K 上的方法。 请注意,我们在一个训练步骤中观察并比较了不同方法的视觉注意力。 

给定真实图像,固定鉴别器更喜欢某个空间位置。 也就是说,空间焦点在很大程度上决定了这个图像是真实的还是假的。 然而,从容量递减的鉴别器中随机抽取的子集会以不同的方式进行关注。 来自十个子网的平均注意力图表明,这些不同的网络可以在一定程度上相互补充,帮助判别器查看更多区域来做出决定。

D. 训练动态

在本节中,我们绘制了几种设置下的时变 FID 曲线以供进一步分析。 首先,图 S4 显示了两个有限数据集和两个足够数据集下的性能曲线。 显然,在训练的一开始,我们的方法几乎没有优势,因为由于子网采样,并非所有参数都得到训练。 但经过短暂的预热,我们的方法始终优于基线。 在某种程度上,我们可以说我们的方法可以稍微加快收敛速度,因为我们的方法通常需要更少的时间来达到相同的 FID。

此外,我们还在图 S7 的生成域适应任务中展示了鉴别器的 FID 和 logits(即鉴别器的输出)。 显然,FreezeD 和基线(即直接微调)似乎过度拟合,因为它们的 FID 逐渐上升,对真/假二分类的置信度越来越高。 相反,随着判别器容量的逐步限制,一定程度上缓解了过拟合。 

正如在第 4.4 节中提到的,我们凭经验发现降低容量在完整 FFHQ 上效果更好。 在这里,我们分别在图 S8 中绘制了 StyleNeRF 基线、容量增加的 StyleNeRF 和容量减少的 StyleNeRF 的 FID 曲线。 这表明 70,000 张人脸图像似乎也不足以进行 3D 感知图像合成,因为减少策略总是优于 StyleNeRF 基线和增加方案。 

F. 超参数分析 

表 S1 展示了对 FFHQ 的多个超参数的分析。 显然,我们的方法对不同的超参数并不高度敏感,例如递减方法、应该从递减通道中排除多少层以及递减/递增系数。 特别是,在 FFHQ 上选择的超参数在各种数据集和任务中保持相同。

S. 总结

S.1 核心思想

在 GAN 训练过程中,虽然真实数据分布保持不变,但由于生成器的更新,合成分布不断变化,从而使判别器的二分类任务产生相应的变化。

对此,作者提出了动态鉴别器(DynamicD),如图 2 所示。

  • 当数据充足时,逐渐增大鉴别器网络的宽度,从而避免欠拟合;
  • 当数据不足时,逐渐减小鉴别器网络的宽度,从而避免过拟合。

S.2 具体操作

数据充足。应逐渐增大网络容量。从一个相对小的网络(原始网络的子集,例如,一半)开始训练,每几次迭代添加 αM 个新初始化的神经元,扩展系数 α 可以从 0.5 到 0 变化,M 为初始(小)网络的宽度。最大的网络与原始网络一致。

数据不足。应逐渐减小网络容量。通过随机删除一些神经元,来减小网络宽度。收缩系数 β 从 1.0 开始,然后逐渐下降到 0.5。

与增加容量不同,作者发现减少所有层会使训练不稳定,尤其是通常包含较少神经元的较低层。 因此,作者排除了这些低级层的缩减方案。

这种递减方案不同于标准的 Dropout,因为该方法形成了一个 “权重级别” 的 dropout,它由训练 batch 中的所有实例共享,而 Dropout 更像是 “特征级别” 的每个实例正则化器。 

缩减策略不仅缩小了网络宽度,而且在一定程度上通过随机删除引入了多个鉴别器。分析表明,来自各种鉴别器的 representations 可以相互补充,防止严重记忆某种模式,即大大减轻过拟合问题。

S.3 分析

相比于基线模型(例如,StyleGAN2),本方法可以稍微加快收敛速度,通常需要更少的时间来达到相同的 FID。直观地理解就是,无论缩减还是扩张,需要训练的总参数量都比原模型小。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/601730.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何从底层优化memmove

如何从底层优化memmove 先实现memmove: 如果没有重叠,可以按任何方向拷贝如果有重叠,先拷贝重叠位置,再考虑是前重叠还是后重叠 优化策略: 拷贝数据的时候应该根据寄存器的大小来设计拷贝单位,注意数据区域可能不是…

怎么快速搭建Vue+Vite项目?

快速搭建VueVite项目的步骤如下: 1.随便创建一个文件夹,用来放项目。我这里创建的文件夹名称是my-vite。 2.在当前目录的路径显示框输入cmd,快速打开cmd命令窗口 3.输入以下命令查询电脑是否已经安装了node.js,此时需注意node版本需要&g…

Nginx的讲解

Nginx的讲解 关于Nginx编译安装Nginx服务1.关闭防火墙,将安装nginx所需软件包传到/opt目录下2.安装依赖包3.创建运用用户、组4.编译安装Nginx5、检查、启动、重启、停止 nginx服务6.添加 Nginx系统服务 Nginx服务的主配置文件 nginx.conf1.全局配置2.I/O 事件配置3.…

【笔试强训编程题】Day3.(字符串中找出连续最长的数字串 69385)和(数组中出现次数超过一半的数字 23271)

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训编程题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!! 文章目录…

【shiro】shiro整合JWT——3.执行流程

前言 shiro整合JWT系列,主要记录核心思路–如何在shiroredis整合JWTToken。 上一篇中,主要讲如何在shiro框架中配置Jwt,以及token执行的流程。 该篇主要梳理整个代码的执行流程。 ps:本文主要以记录核心思路为主,以下…

JavaWeb14(ajax02判断账号是否存在JSON介绍AJAX+JSON字符串和对象之间的转换JSON实现自动补全)

目录 一.AJAX实现即时检查用户名是否存在 1.1 效果预览 1.2 代码实现 ①html代码 ②ajax请求 ③底层代码 2.JSON概述. 2.1何为JSON. 2.2为什么需要JSON. 2.3JSON格式介绍. 2.3.1JSON对象格式. 2.3.2JSON数组格式. 2.3.3JSON对象数组格式. 3.JSON字符串的解析. 3.1…

springboot启动过程原理分析

前言 现在绝大多数java项目都上了Springboot框架, 因此深入理解Springboot框架的运行原理,能帮助我们更好的在Springboot框架下进行业务开发,同时能学习框架中优秀的设计思想, 本文主要是通过对Springboot源码的分析, 来理解整个springboot项目的启动流程. 因为Springboot不同…

Spring:Spring框架_事务传播和隔离级别 ④

一、事务和四大特性 事务:指数据库的一个执行操作单元 事务的四个特性(ACID) 1.1 原子性 原子性(Atomicity):操作这些指令时,要么全部执行成功,要么全部不执行。只要…

JUC 学习笔记

JUC 学习笔记 本文为笔者对 JUC 的学习记录,主要参考了尚硅谷的 JUC 教程 文章目录 JUC 学习笔记1. JUC 概述什么是 JUC?线程和进程:进程的状态:wait 和 sleep:并发和并行:管程:用户线程和守护…

Python numpy - 数组的向量化运算

目录 一 函数numpy.where 二 数组统计方法 1 基础数组统计方法 2 布尔值数组的方法 三 排序 1 函数sort 2 函数np.unique 向量化:利用数组表达式来替代显式循环的方法 一 函数numpy.where 条件逻辑函数 where(condition, x, y) condition为条件,当满足条件…

有限状态机器测试(过渡游览法)

有限状态机器测试(过渡游览法) 测试相关概念—故障类型 行为由转换定义。 故障分为三种类型: 输出错误Output faults:错误的输出是由转换产生的。 状态转移错误State transfer faults:转移到错误的状态。 额外的状态Extra states&#xff08…

医院检验科检验系统(LIS)源码:临检、生化、免疫、微生物

一、检验科检验系统 (LIS)概述:对接HIS,医生工作站能够方便、及时的查阅患者检验报告。 二、检验科检验系统 (LIS)主要功能描述: 1.质控品管理: 医院设备质控(编码、设…

数据结构入门7-2(散列表)

注 本笔记参考:《数据结构(C语言版)(第2版)》 散列表的基本概念 像基于线性表、数表的查找方式,往往都是以关键字的比较为基础的。这种比较方式在遇到结点数量很多的情况时就会暴露其的弊端:需要…

vue3-实战-03-管理后台路由分析搭建和登录模块开发

1-路由的搭建 先分析模块,搭建一些基础的路由信息,我们分析需要登录页面路由,登录成功后展示数据路由,404页面路由,以及我们输入错误的路径的我们需要重定向到404路由。配置好相关路由之后,我们需要在入口文…

基于 ESP32-H2 构建高性价比的安全物联网设备

如今,人们对网联设备安全性的认识和关注不断增加。在欧盟《网络弹性法案》也即将生效的,为网联设备增加硬件层面的安全功能非常重要。 乐鑫 ESP32-H2 致力于为所有开发者提供高性价比的安全解决方案,这款芯片经过专门设计以集成多种安全功能…

【java】java访问https并验证账号密码

java访问https,获取页面或者数据时,需要证书和账号密码的验证。 一 获取CRT证书 获取网站的证书,拿到证书后可能是crt格式,可以使用下面的命令转为p12格式 openssl pkcs12 -export -in Mycert.crt -inkey Mykey.key -out Mycer…

0基础学习VR全景平台篇第35篇:场景功能-细节

本期为大家带来蛙色VR平台,场景管理—细节功能操作。 功能位置示意 一、本功能将用在哪里? 细节功能,用于展示VR漫游作、大像素、高清矩阵作品中细微不容易发现,但却又比较有亮点或者能起到关键作用的画面。 通过在全景图中添加…

javaWeb ssh课程资源网站myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh课程资源网站系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用 B/S模式开发。开发环境为TOMCAT7.…

字节的测试面试题,你觉得很难吗?不是有手就行....

年前的时候,我的一个粉丝跟我说,他在面试美团的自动化测试岗的时候,不幸挂掉了。 越想越可惜,回想面试经过,好好总结了几个点,发现面试没过的主要原因是在几个关键的问题没有给到面试官想要的答案 字节的…

6-HEX, SE,引物荧光标记试剂,胺反应性琥珀酰亚胺酯,广泛用于nucleic acid测序和相关研究

6-HEX, SE | 6-HEX,SE [6-羧基-2,4,4,5,7,7-六氯荧光素,琥珀酰亚胺酯] |CAS:N/A | 纯度:95% (文章资料汇总来源于:陕西新研博美生物科技有限公司小编MISSwu)​ 结构…