关于时空数据的培训 GAN:实用指南(第 01/3 部分)

news2024/11/20 16:29:32

第 1 部分:深入了解 GAN 训练中最臭名昭著的不稳定性。

一、说明

        GAN 是迄今为止最受欢迎的深度生成模型,主要是因为它们最近在图像生成任务上产生了令人难以置信的结果。然而,GAN并不容易训练,因为它们的基本设计引入了无数的不稳定性。如果你尝试过用MNIST以外的任何东西训练GAN,你很快就会意识到,所有关于训练他们的痛苦(以及试图解决这个问题的相关研究领域)的说法并没有把问题放大。

二、GAN的不稳定性

        我们将系统地解决这些臭名昭著的不稳定性的原因和解决方案,我们在广泛尝试了书中的几乎所有技巧后,在我们的实验中发现这些不稳定性在经验上运作良好。这个由三部分组成的系列文章是关于训练 GAN 的实用指南,重点是时空数据生成,结构如下:

1. 第 1 部分:深入了解 GAN 训练中最臭名昭著的不稳定性

2. 第 2 部分:第 1 部分中讨论的常见陷阱的可能解决方案

3. 第 3 部分:在时空数据上训练 GAN 的特殊情况——要跟踪的指标、独特的复杂性及其解决方案

        本系列中讨论的不稳定性和解决方案与模型和用例无关,也与时空情况相关。它们是任何GAN训练练习的良好起点。在本文中,我们将通过详细介绍 GAN 训练中最臭名昭著的不稳定性来讨论为什么训练 GAN 如此难以捉摸。我们将研究 a) 鉴别器 (D) 和生成器 (G) 训练之间的不平衡如何导致模式崩溃和由于梯度消失而导致的静音学习;b) GAN 对超参数的敏感性,以及 c) 在模型性能方面误导性 GAN 损失。

        [注意:我们假设本文的读者具备 GAN 基础知识的先决条件,并且在某些时候也有一些训练 GAN 的经验。为此,我们将跳过“什么是 GAN?”请读者阅读本文以快速回顾一下。]

三、为什么训练 GAN 如此难以捉摸?

        在本节中,我们详细介绍了GAN训练中一些最臭名昭著的不稳定性,并详细介绍了在我们的实验中在实践中运作良好的每个可能的解决方案。话虽如此,建议在原版设置下运行前几次迭代,以探测在手头的架构和任务中观察到以下哪些陷阱。随后,您可以迭代地实现上述解决方案(根据解决方案的复杂性及其根据我们的经验的有效性进行排序)以进一步稳定训练。请注意,这些提示仅用作方向起点,而不是一次性解决方案的详尽列表。建议读者进一步探索其架构和训练动态,以获得最佳结果。

3.1. 生成器和鉴别器之间的不平衡

        判断一幅画是否是梵高很容易,但要真正制作一幅画却非常困难。因此,人们认为G的任务比D的任务更困难。同时,G 学习生成现实输出的能力取决于 D 的训练程度。最优 D 将给 G 丰富的信号,以学习并改进其生成。因此,重要的是要平衡G和D的训练以获得最佳学习条件。

        GAN基于零和非合作博弈,试图实现纳什均衡。然而,众所周知,某些成本函数不能收敛于梯度下降,特别是对于非凸博弈。这在GAN训练中引入了许多不稳定性,因为G和D训练步骤在最小-最大游戏中不平衡,导致学习梯度欠佳。这些不稳定性将在下面讨论:

        1. 渐变消失:

        对于最佳GAN训练,D是否应该优于G,反之亦然,需要通过查看以下参数来回答-

a) 如果 D 变得太好太快,G 的梯度就会消失,它永远无法赶上。

b) 另一方面,如果 D 是次优的,那么由于 D 的预测性能很差,G 很容易用胡言乱语来愚弄它。这再次导致没有梯度可供学习,导致G输出没有改善。

        因此,在理想情况下,G和D应该以周期性的方式比另一个更好。如果您看到其中一个损失单调地向任何方向移动,那么您的 GAN 训练很可能已经崩溃。

        2. 模式崩溃:如果 G 被不成比例地训练得更多,它会收敛到重复产生相同的输出,从而很好地愚弄 D,而没有任何动力专注于样本的多样性。

3.2  渐变消失原因

        原始GAN目标的生成器(Ian Goodfellow,2014)优化了非饱和JS发散,如下所示:

        在这种情况下,很容易看出,如果生成器错过了某些分布模式(即,当 p(x) > 0 但 q(x) → 0 时,惩罚很高),以及如果生成的数据看起来不真实(即,如果 p(x) → 0 但 q(x) > 0,则惩罚很高)。这促使发生器产生更高质量的输出,同时保持多样性。

        然而,当鉴别器达到最优时,该公式会导致生成器的梯度消失。从下面的例子中可以明显看出这一点,其中 p 和 q 是高斯分布的,p 的平均值为零。右图显示 JS-背离的梯度从 q1 到 q3 消失。这将导致GAN生成器在这些区域的损失饱和时学习非常缓慢(甚至根本不学习)。这种情况在GAN训练的早期就表现出来了,当时pq非常不同,并且D的任务更容易,因为G的近似与实际分布相去甚远。

3.3  模式折叠常识

        模式崩溃是迄今为止训练 GAN 时最困难、最不平凡的问题。虽然对模式崩溃有很多直观的解释,但在实践中我们对它的理解仍然非常有限。到目前为止,一个关键的直观解释已经帮助了从业者,那就是在D上没有足够的更新的情况下,G被训练得不成比例。生成器最终收敛到找到最愚弄D的最佳图像x*,即从鉴别器角度看最真实的图像。在这种情况下,x* 变得独立于 z,这意味着对于每个 z,它都会生成相同的图像。

        最终,D(再次训练时)学会了丢弃该模式的图像作为假图像。这反过来又迫使生成器寻找下一个脆弱点并开始生成该漏洞点。D和G之间的猫捉老鼠追逐仍在继续,G过于专注于“作弊”,以至于它甚至失去了检测其他模式的能力。这在上图中可以看到,其中顶行显示了 G 应该遵循的理想学习过程。底行演示了模式折叠的情况,其中 G 专注于很好地产生一种模式,而忽略其他模式。

3.4 对超参数的敏感性

        GAN对超参数非常敏感,周期。如果没有良好的超参数,任何成本函数都不起作用,因此建议首先广泛调整超参数,而不是在开始时尝试不同的损失函数。调整超参数需要时间和耐心,在开始使用高级损失函数之前,了解架构的基本训练动态非常重要,这些函数将引入自己的超参数集。

四、GAN损失与生成质量的相关性

        在通常的分类任务中,成本函数与模型的准确性相关(较低的损失意味着较低的误差意味着更高的准确性)。然而,GAN的损失衡量了一个参与者在最小-最大博弈(生成器与鉴别器)中与另一个参与者的表现。发生器损耗增加,但图像质量却在改善是很常见的。因此,在训练GAN时,损失“收敛”与生成质量之间的相关性很小,因为不稳定的GAN损失通常具有误导性。图像生成任务中使用的一种非常有效且被广泛接受的技术是通过在不同训练阶段对生成的图像进行目视检查来跟踪训练进度。但这随后使模型比较更加困难,并使调优过程进一步复杂化,因为很难从这种主观评估中选择最佳模型。然而,在我们的实验中,我们很快意识到GAN训练的这个非常关键的方面 - 通过正确的指标跟踪生成进度 - 也是人们谈论训练GAN时最容易被忽视的方面之一。此外,与图像不同,我们无法“直观地”有效地评估时空数据的训练进度。因此,设计和跟踪与时空数据相关的指标变得至关重要,这些指标客观地指示模型性能。

        现在我们已经详细介绍了一些突出的GAN训练陷阱,接下来出现的问题是我们如何检测和解决它们?我们将在本系列的下一篇博客中详细讨论这个主题,在广泛尝试了书中的每个技巧后,我们为每个解决方案提供了多种解决方案。我们按照其易于实施及其各自影响的顺序编制列表,以就GAN培训的迭代增强功能提出建议尚塔努·钱德拉

·

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

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

相关文章

图像处理的创意之旅:逐步攀登Python OpenCV的高峰

目录 介绍OpenCV简介安装OpenCV加载和显示图像图像处理目标检测图像处理的高级应用视频处理综合案例:人脸识别应用总结 介绍 欢迎来到本篇文章,我们将一起探索如何使用Python中的OpenCV库进行图像处理和计算机视觉任务。无论您是初学者还是有一定编程…

Excel VLOOKUP 初学者教程:通过示例学习

目录 前言 一、VLOOKUP的用法 二、应用VLOOKUP的步骤 三、VLOOKUP用于近似匹配 四、在同一个表里放置不同的VLOOKUP函数 结论 前言 Vlookup(V 代表“垂直”)是 excel 中的内置函数,允许在 excel 的不同列之间建立关系。 换句话说&#x…

运算符——“MySQL数据库”

各位CSDN的uu们好呀,今天,小雅兰的内容是MySQL数据库里面的操作符,下面,让我们进入操作符的世界吧!!! 算术运算符 比较运算符 逻辑运算符 位运算符 运算符的优先级 拓展:使用正…

【海思SS626 | 开发环境】编译整个SDK全过程以及问题汇总

目录 一、概述二、解压SDK,打补丁三、安装交叉编译工具✨3.1 安装 aarch64-mix410-linux.tgz✨3.2 安装 cc-riscv32-cfg11-musl-20220523-elf.tar.gz✨3.3 检查工具链版本,打印版本则表示安装成功 四、安装软件包✨4.1 安装软件包✨4.2 安装mtd-utils的依…

Excel VBA 变量,数据类型常量

几乎所有计算机程序中都使用变量,VBA 也不例外。 在过程开始时声明变量是一个好习惯。 这不是必需的,但有助于识别内容的性质(文本,​​数据,数字等) 在本教程中,您将学习- 一、VBA变量 变量是…

AI助手-百度免费AI助手工具

AI助手是有百度推出的免费AI助手工具,国内无需魔就可以使用的AI工具,而且无限制,和ChatGPT类似的人工智能聊天机器人差不多,内置了各种功能的快捷入口,直接点开即可使用,而且还可以ai作画。 工具地址&…

Flutter快速入门学习(一)

目录 前言 新建项目 项目入口 Dart的入口(项目的入口) 布局 视图组件 Container(容器) Text(文本) Image(图片) Row(水平布局)和Column&#xff08…

【项目实战】【已开源】USB2.0 HUB 集线器的制作教程(详细步骤以及电路图解释)

写在前面 本文是一篇关于 USB2.0 HUB 集线器的制作教程,包括详细的步骤以及电路图解释。 本文记录了笔者制作 USB2.0 HUB 集线器的心路历程,希望对你有帮助。 本文以笔记形式呈现,通过搜集互联网多方资料写成,非盈利性质&#xf…

windows系统安装php,运行php

一、安装php 官网:PHP For Windows: Binaries and sources Releases 下载最新的PHP解释器 解压好放入 C:\php 目录文件下 二、配置php 配置环境变量:在CMD命令提示符中输入以下命令,将PHP路径添加到系统环境变量中,以便可以在…

正规股票配资网站的三个明显特点分析

随着股票市场的快速发展,越来越多的投资者开始考虑使用股票配资来增加自己的资金流动性和收益率。然而,在选择股票配资网站时,投资者往往难以辨别哪些网站是正规的,哪些网站存在风险。因此,以下将分析正规股票配资网站…

kafkaStream实时流式计算

2 实时流式计算 2.1 概念 一般流式计算会与批量计算相比较。在流式计算模型中,输入是持续的,可以认为在时间上是无界的,也就意味着,永远拿不到全量数据去做计算。同时,计算结果是持续输出的,也即计算结果…

服务器硬件监控解决方案,提升服务器稳定性

前言 在当今数字化时代,服务器的稳定运行对于企业的核心业务至关重要。为了确保服务器的正常运行并及时发现潜在问题,我们公司开发了一款先进的服务器硬件监控解决方案。本文将深入探讨服务器硬件监控的重要性、解决方案的特点和优势,以及支持…

5基于pytorch的多目标粒子群算法,MOPSO,引导种群逼近真实Pareto前沿,算法运行结束后将外部存档中粒子作为获得的Pareto最优解近似。

基于pytorch的多目标粒子群算法,MOPSO,引导种群逼近真实Pareto前沿,算法运行结束后将外部存档中粒子作为获得的Pareto最优解近似。程序已调通,可以直接运行。 5pytorch多目标粒子群算法最优解5pytorch多目标粒子群算法最优解 (xiaohongshu.co…

VMware vCenter 从6.7跨版本升级至7.0U3N

本文尝试使用 vCenter Server Appliance 管理界面 (VAMI) 进行对vCenter Server Appliance7应用进行小版本升级,从6.7.0.47000升级到7.0.3.01600(7.0U3N)。 一、升级前的准备工作 1、检查当前运行环境(当前为6.7.0.47000&#x…

ES6 特性

一、ES6 1.1 ES6 概念 1.1.1 什么是 ES ES 全称 EcmaScript 是脚本语言的规范JavaScript 是 EcmaScript 的一种实现ES 新特性就是指 JavaScript 的新特性 1.1.2 为什么要使用 ES 语法简单,功能丰富框架开发应用前端开发职位要求 1.1.3 为什么要学习 ES6 ES6 …

docker学习1

Docker jar包环境镜像,镜像存在docker仓库中,随用随取,无需现配环境 docker通过隔离机制,各个镜像之间互不干扰 docker比vm轻量化,每次只需运行镜像即可,镜像占内存小启动快,虚拟机启动慢&…

代码随想录|198.打家劫舍,213.打家劫舍II, 337.打家劫舍 III

198.打家劫舍 思路: 题目要求不偷相邻两家,两种偷法,偷法1是偷前k-1间房子,最后一间不偷;偷法2是偷前k-2间房子和最后一间。 代码实现1 class Solution {public int rob(int[] nums) {//偷法1:偷前k-1间…

ts工具类

这里有具体的使用示例: 15 种TypeScript最常用的实用程序类型,赶快收藏起来吧! - 知乎我们在使用 TypeScript 的过程中,我们是面向类型编程的,为了满足不同的工作场景,我们需要对已知类型进行改造。 为了…

Ubuntu下Nginx配置ModSecurity详细思路及过程

下面是一个简介: Ubuntu是一个linux操作系统,Nginx是一个web服务器软件,ModSecurity是一款开源的web应用防火墙(江湖人称“WAF”)。 如果上面的概念没有一定的了解,下面的内容其实也能看。就是不好操作。…

(典题)线段计数 CF690 div3 F

Problem - F - Codeforces 题意: 思路: 这题没什么性质可言,可以说就是纯纯的套路题 既然存在一条线段和其他所有线段相交,不知道是哪条线段,考虑枚举这条线段,然后计数没有交点的线段个数,取…