generative-model [ From GAN to WGAN ]

news2024/10/7 4:44:05

目录

Kullback–Leibler and Jensen–Shannon Divergence

Generative Adversarial Network (GAN)

What is the optimal value for D?

What is the global optimal?

What does the loss function represent?

Problems in GANs

Hard to achieve Nash equilibrium

Low dimensional supports

Vanishing gradient

Mode collapse

Lack of a proper evaluation metric

Improved GAN Training

Wasserstein GAN (WGAN)

What is Wasserstein distance?

Why Wasserstein is better than JS or KL divergence?

Use Wasserstein distance as GAN loss function

Example: Create New Pokemons!


生成对抗网络 (GAN) 在许多生成任务中显示出出色的结果,以复制现实世界的丰富内容,如图像、人类语言和音乐。它受到博弈论的启发:两个模型,一个生成器和一个批评者,在相互竞争的同时使彼此变得更强大。然而,训练GAN模型是相当具有挑战性的,因为人们面临着训练不稳定或无法收敛等问题。

在这里,我想解释生成对抗网络框架背后的数学原理,为什么很难训练,最后介绍一个旨在解决训练困难的GAN的修改版本。

Kullback–Leibler and Jensen–Shannon Divergence

在我们开始仔细研究 GAN 之前,让我们首先回顾一下量化两个概率分布之间相似性的指标。

一些人认为(Huszar,2015)GANs取得巨大成功背后的一个原因是将损失函数从传统最大似然方法中的不对称KL散度转换为对称JS散度。

Generative Adversarial Network (GAN)

GAN由两个模型组成:

  • 鉴别器D:估计给定样本来自真实数据集的概率。它充当评论家,并经过优化以区分假样品和真实样本。
  • 发电机G:输出给定噪声变量输入的合成样本z (z带来潜在的产出多样性)。它被训练来捕获真实的数据分布,以便其生成样本可以尽可能真实,或者换句话说,可以欺骗鉴别器提供高概率。

这两个模型在训练过程中相互竞争:

生成器G极力欺骗鉴别者,而批评者模特D正在努力不被骗。

两种模型之间这种有趣的零和博弈激励双方改进其功能。

What is the optimal value for D?

What is the global optimal?

What does the loss function represent?

Problems in GANs

Hard to achieve Nash equilibrium

Low dimensional supports

Vanishing gradient

Mode collapse

Lack of a proper evaluation metric

Improved GAN Training

(1) Feature Matching

(2) Minibatch Discrimination

(3) Historical Averaging

(4) One-sided Label Smoothing

(5) Virtual Batch Normalization (VBN)

(6) Adding Noises.

(7) Use Better Metric of Distribution Similarity

Wasserstein GAN (WGAN)

What is Wasserstein distance?

Why Wasserstein is better than JS or KL divergence?

Use Wasserstein distance as GAN loss function

Example: Create New Pokemons!

笔记摘自Lil'Log

From GAN to WGANicon-default.png?t=N7T8https://lilianweng.github.io/posts/2017-08-20-gan/

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

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

相关文章

【Vue】集成百度地图

Vue 集成 百度地图 1、获取百度地图 ak 密钥 2、登录网址 https://lbsyun.baidu.com/ 3、注册百度地图开放平台账号,填写认证信息,并且创建应用 安装 npm install vue-baidu-map --savemain.js import BaiduMap from vue-baidu-map;Vue.use(BaiduM…

进程间通信之System V 共享内存

文章目录 一、共享内存 进程具有独立性,因此进程间通信的前提是两个进程能看到同一份资源 一、共享内存 在内存中申请一块空间,并将起始地址分别映射到两个进程的虚拟地址空间上,便可以让两个进程看到同一份资源 操作系统为了管理共享内存&…

DP读书:不知道干什么就和我一起读书吧——以《鲲鹏处理器 架构与编程》中鲲鹏软件的构成为例

DP读书:不知道干什么就和我一起读书吧 为啥写博客:好处一:记录自己的学习过程优点二:让自己在各大社群里不那么尴尬推荐三:坚持下去,找到一个能支持自己的伙伴模版:鲲鹏软件构成硬件特定软件1. …

五、工厂方法模式

一、什么是工厂方法模式 工厂方法模式是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。   工厂方法模式的主要角色如下。 抽象工厂(Abstract Factory):提…

USB集线器设计

参考电路 参考1 基于FE1.1S四路USB集线器设计 基于FE1.1S四路USB集线器设计 - 嘉立创EDA开源硬件平台 (oshwhub.com)https://oshwhub.com/beibu/ji-yufe1-1s-si-luusb-ji-xian-qi-she-ji 参考2 C479658_LCYZB-SL2.1A USB集线器验证板-V1 C479658_LCYZB-SL2.1A USB集线器验…

视频导出文件太大如何变小?缩小视频这样做

作为一名视频制作爱好者,我们经常需要导出视频文件,但是,有时候我们会发现导出的视频文件太大,给上传和分享带来很大的不便。那么,如何将视频文件变小呢?下面将为你介绍三个方法,让你轻松解决视…

【python】之time库,创建数字时钟!

今天我们来看一下time库的一个使用,提到time库,大家应该很熟悉吧,作为python的内置库,无需安装,直接导入使用即可。 一.time库 常用函数介绍 1.time.time( ):返回当前时间的时间戳 import timetime.time(…

5分钟快速搭建!这款颜值爆表的数据可视化工具,你值得拥有!

最好的数据可视化工具是什么? 没有最好,只有最适合的。不过,想要找一个优秀的数据可视化工具,可以从下面几点进行评估: (1)易用性: 直观的界面可以帮助新手快速上手,并…

知了汇智2023夏令营集训活动圆满收官,产教融合助力高素质人才培养

当前,新一轮科技革命和产业变革深入发展,新产业、新业态、新技术的涌现不断带动了对互联网人才、IT技术人才、信息安全人才需求的快速增长,在这一背景下,大学生需要提升专业应用技能和职场竞争力,以满足企业对人才日益…

Blender界面学习03 原点、鼠标所在位置的缩放与旋转

物体的坐标原点可以移动 放大缩小时默认是屏幕中央,修改为鼠标在哪儿就缩放哪儿 默认旋转时围绕屏幕的中心 可以修改为指定对象旋转

Matlab论文插图绘制模板第110期—水平双向柱状图

在之前的文章中,分享了很多Matlab柱状图的绘制模板: 进一步,再来看一种特殊的柱状图:水平双向柱状图。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自行下…

vscode搭建springboot开发环境

前言 idea好用到但是收money,eclipse免费但是界面有点丑,所以尝试使用vscode开发springboot 提前准备 安装jdk,jdk需要大于11 安装vscode 安装maven 安装插件 主要是下面的插件 Extension Pack for JavaSpring Boot Extension PackDepe…

一个可以使用的聚合登录系统源码,可以实现一站式社会化账号登录。

简单测试了一下,可以跑起来,这个代码可以使用,但关键代码都加密了,所以使用时需要慎重。本来这种加密的垃圾代码我是不分享的,但有些同学还是需要参考一下程序设计思路,所以免费分享给大家研究学习使用。 …

走进低代码平台| iVX-困境之中如何突破传统

前言: “工欲善其事,必先利其器”,找到和使用一个优质的工具平台,往往会事半功倍。 文章目录 1️⃣认识走近低代码2️⃣传统的低代码开发3️⃣无代码编辑平台一个代码生成式低代码产品iVX受面性广支持代码复用如何使用? 4️⃣总结…

hive下库里有表数据,删不了库的解决办法

hive下库里有表数据,删不了库的解决办法 报错:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. InvalidOperationException(message:Database db_hive2 is not empty. One or more tables exist.) 使用CASCADE &…

中欧财富:分布式数据库的应用历程和 TiDB 7.1 新特性探索

作者:张政俊 中欧财富数据库负责人 中欧财富是中欧基金控股的销售子公司,旗下 APP 实现业内基金品种全覆盖,提供基金交易、大数据选基、智慧定投、理财师咨询等投资工具及服务。中欧财富致力为投资者及合作伙伴提供一站式互联网财富管理解决方…

【Linux】JumpServer 堡垒机远程访问

文章目录 前言1. 安装Jump server2. 本地访问jump server3. 安装 cpolar内网穿透软件4. 配置Jump server公网访问地址5. 公网远程访问Jump server6. 固定Jump server公网地址 前言 JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpS…

1761. 一个图中连通三元组的最小度数

每日一题 1761. 一个图中连通三元组的最小度数 难度:困难 只会强行枚举 class Solution:def minTrioDegree(self, n: int, edges: List[List[int]]) -> int:fromTo {}for edge in edges:a fromTo.get(edge[0], [])a.append(edge[1])fromTo[edge[0]] aa fro…

一百六十八、Kettle——用海豚调度器定时调度从Kafka到HDFS的任务脚本(持续更新追踪、持续完善)

一、目的 在实际项目中,从Kafka到HDFS的数据是每天自动生成一个文件,按日期区分。而且Kafka在不断生产数据,因此看看kettle是不是需要时刻运行?能不能按照每日自动生成数据文件? 为了测试实际项目中的海豚定时调度从…

从零学算法(剑指 Offer 36)

123.输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例: 我们希望将这个二叉搜索树转化为双向循环链表。…