WGAN 优势小结

        我在上一篇博文为什么 GAN 不好训练中,分析了原始 GAN 难以训练的原因,本篇博文将分析下 WGAN 的优势。

1. Wasserstein 距离

        W 是指 Wasserstein,Wasserstein 距离又叫Earth-Mover(EM)距离。Wasserstein距离相比KL散度、JS散度的优越性在于,即便两个分布没有重叠,Wasserstein距离仍然能够反映它们的远近。WGAN本作通过简单的例子展示了这一点。考虑如下二维空间中的两个分布P1和P2,P1在线段AB上均匀分布,P2在线段CD上均匀分布,通过控制参数θ可以控制着两个分布的距离远近。

        KL 散度和 JS 散度是突变的,要么最大要么最小,Wasserstein 距离却是平滑的,如果我们要用梯度下降法优化 θ 这个参数,前两者根本提供不了梯度,Wasserstein 距离却可以。类似地,在高维空间中如果两个分布不重叠或者重叠部分可忽略,则KL和JS既反映不了远近,也提供不了梯度,但是 Wasserstein 却可以提供有意义的梯度。

2. WGAN 应用

        WGAN 的核心思想就是通过数学变换将 Wasserstein 距离写成可求解的形式,利用一个参数数值范围受限的判别器神经网络来最大化这个形式,就可以近似 Wasserstein 距离。在此近似最优判别器下优化生成器使得 Wasserstein 距离缩小,就能有效拉近生成分布与真实分布。

        WGAN 的优势如下:

1、彻底解决GAN训练不稳定的问题,不再需要小心平衡生成器和判别器的训练程度。
2、基本解决了collapse mode的问题,确保了生成样本的多样性 。
3、训练过程中终于有一个像交叉熵、准确率这样的数值来指示训练的进程,这个数值越小代表GAN 训练得越好,代表生成器产生的图像质量越高。
4、以上一切好处不需要精心设计的网络架构,最简单的多层全连接网络就可以做到。

        实现步骤如下:

1、判别器最后一层去掉 sigmoid。sigmoid 函数容易出现梯度消失的情况。
2、生成器和判别器的 loss 不取 log
3、每次更新判别器的参数之后把它们的绝对值截断到不超过一个固定常数c
4、不要用基于动量的优化算法(包括 momentum 和 Adam),推荐 RMSProp,SGD 也行(原作者的实验经验)

        算法流程如下:

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

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

相关文章

ubuntu18.04 安装yolov5环境及推理环境

文章目录 1、安装anaconda31.2、环境变量配置1.3、添加/更换 conda 清华源 2、安装pytorch1.63、CUDA安装4、安装cuDNN5、安装tensorRT6、安装opencv4.67、tensorRT部署yolov5模型推理 1、安装anaconda3 官方网网址 https://www.anaconda.com/download#downloads去到下载的文…

心理测试网站源码,知己心理React心理健康测试

源码介绍 React心理健康测试网站源码,帮助需要的人更好地了解自已的心理健康状态和人格特征。 React可以在Vite中启用HMR,并且包含了几人EsLint规则。只需要使用react antd-mobile即可 轻松部署完成。

千梦网创:逮住一闪而过的机会疯狂摩擦

我这个人平时想的就多,睡觉也在想事情,有时候睡觉里想的事情往往都是很纯粹的、很绝妙的,但是经常性一醒过来就忘了,再去回忆怎么也想不起来了。 灵感只在特定的环境下产生,这类环境是不可再生和模拟的。 机会只因特…

【C++11特性篇】盘点C++11中三种简化声明的方式【auto】【decltype】【nullptr】(3)

前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 一.auto&范围for二.decltyp…

用Python快速从深层嵌套 JSON 中找到特定的 Value

有时候,我们拿到一个JSON数据的时候,会难以看出其逻辑层次结构。 这时候就需要我们进行代码解析了。 代码: import jsondef find_json_value(data_json, value, path""):if isinstance(data_json, dict):for k, v in data_json.…

Web 应用程序性能测试核心步骤

通常大家做web 应用程序的时候会有哪些操作呢?今天就来看看常见的web 应用程序的常见操作。 Web 应用程序性能测试核心步骤 1:识别测试环境。确定物理测试环境和生产环境,以及测试团队可用的工具和资源。物理环境包括硬件、软件和网络配置。…

c语言单向链表

看如下代码,这是一个完整的可运行的c源文件,要注意的点: c语言程序运行不一定需要头文件NULL其实是 (void*)0,把指针赋值成(void*)0,就是防止程序员不想该指针被引用的时候被引用,引用地址为0的值程序会引起系统中断&…

PyQt6 QSpacerItem弹簧控件

锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计46条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版…

00后卷王的自述,我难道真的很卷?

前言 前段时间去面试了一个公司,成功拿到了offer,薪资也从12k涨到了18k,对于工作都还没两年的我来说,还是比较满意的,毕竟一些工作3、4年的可能还没我高。 我可能就是大家说的卷王,感觉自己年轻&#xff…

自动化访客互动:提升网站效益与用户体验的关键优势

在激烈的市场竞争环境中,想抢占市场,获得收益并不容易。每一个订单的完成都要经过一定的销售周期,所以企业可以根据销售周期每个阶段的特点进行优化,留住客户。其中,企业可以在与客户在线互动的过程中,让互…

ShardingSphere-JDBC 和 ShardingSphere-Proxy,你选择哪一个

参考文章 总结: 只使用Java,ShardingSphere-JDBC更好有异构语言的话,ShardingSphere-Proxy 更好混用也挺香

小红书商品详情API:电商助力

一、引言 随着互联网的普及和电商行业的快速发展,消费者对于商品信息的获取方式也在不断变化。小红书作为一款以内容分享为主的社交电商平台,吸引了大量用户。为了满足用户对商品信息的快速获取需求,小红书提供了商品详情API接口。本文将探讨…

Web测试、APP测试常用技巧(错过你一定会后悔)

1. web元素定位七种方式 优先使用的6种 find_element_by_id (返回一个元素)find_element(s)_by_class_name (根据类名获取元素列表)find_element(s)_by_name (根据标签的name属性值返回包含标签对象元素的列表)find_element(s)_by_link_text (根据连接文本获取元素列表)find_…

linux环境安装可操作图库语言Gremlin的图框架HugeGraph

原创/朱季谦 若你还没接触过图数据库,可能看到这个概念时,会比较蒙蔽。 图是什么?图数据库又是什么? 首先,在数据结构中,图是一种由顶点(vertex)集合及顶点间关系集合组成的一种非…

常见数据结构

数据结构概述 数据结构是计算机底层存储、组织数据的方式,是指数据相互之间是以什么方式排列在一起的。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。 栈 栈数据结构的执行特点:后进先出,先进后出。 栈模型…

探索灵活性与可维护性的利器:策略(Strategy)模式详解

目录 ​编辑 1. 策略模式概述: 2. 主要角色: 3. 实例场景: 4. 具体实现步骤: 步骤一:定义策略接口 5. 使用策略模式的客户端代码: 总结: 我的其他博客 1. 策略模式概述: 策…

python【matplotlib】鼠标拖动滚动缩放坐标范围和拖动图例共存

背景 根据前面的博文: python【matplotlib】画图鼠标缩放拖动动态改变坐标轴范围 和Python【Matplotlib】图例可拖动改变位置 两个博文,博主考虑了一下,如何将两者的功能结合起来,让二者共存。 只需根据Python【Matplotlib】鼠标…

域名、DNS 和 IP是什么?网站搭建的必备知识,一文搞定

在正式进行WordPress站点搭建前,有一些最基础的知识是必备的,这篇文章会详细介绍给大家。 一、域名、DNS和IP的关系 域名、DNS和IP是互联网上的三个重要的概念,它们之间有着密切的联系,也影响着我们访问网站的方式和效果。接下来…

JNA实现JAVA调用C/C++动态库

1.JNA JNA全称Java Native Access,是一个建立在经典的JNI技术之上的Java开源框架(https://github.com/twall/jna)。JNA提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而…

5.1 C++11强类型枚举

一、C枚举的缺陷 1.类型冲突 枚举值和类型都是全局可见的, 与正常C的namespace、类等都是格格不入的,并且还容易导致冲突。 enum Type { General, Light, Medium, Heavy }; enum Category { General, Pistol, MachineGun, Cannon }; 如果在相同作用域…