NLP(3)--GAN
目录
一、概述
二、算法过程
三、WGAN
1、GAN的不足
2、JS散度、KL散度、Wasserstein距离
3、WGAN设计
四、Mode Collapse and Mode Dropping
1、Mode Collapse
2、Mode Dropping
3、FID
四、Conditional GAN
一、概述
GAN(Generative Adversial Network)生成式对抗网络,由生成器(Generator)和对抗器(Discriminator)组成,通过让生成器生成对应类别分布的网络,判别器来判别是否为真或假的概率值,不断迭代过程,使生成器能生成更为逼真的样本数据。
生成器的任务就是通过从随机噪音中生成与真实数据尽可能相似的网络,来欺骗判别器。
判别器的任务是接收生成样本和真实样本的判断生成样本和真实样本之间的区别,并通过一系列神经网络输出一个概率值,表示该样本为真的概率。
GAN已经在若干领域取得了成果,比如语音合成,图像生成等方面,但仍存在一些挑战,比如不稳定性和模式坍塌等问题。

二、算法过程
(1)首先初始化生成器和判别器参数,并通过随机噪音生成一批假样本。
(2)将假样本放入生成器,通过生成器生成图片。
(3)生成图片传给判别器,判别器输出与真实值相比为真的概率,将相关数值传输给生成器。
(4)生成器通过修改超参数,生成新的图片传给判别器。
(5)不断迭代以上过程,知道达到某一个阈值,或者迭代次数上限。

三、WGAN
1、GAN的不足
(1)模式崩溃问题,在生成器中可能生成特定类型的样本,忽略了其他不同类型的训练样本,没有达到多样性,从而出现模式崩溃的问题。
(2)没有指标可以告知收敛的程度的问题,我们只能人为的通过监控训练的图像,来知道收敛的程度,这大大降低的训练的效果,浪费了训练的时间。(例如下面这个图,在迭代到两者overlap之前,测量js散度都是一成不变的log2。)

2、JS散度、KL散度、Wasserstein距离
(1)散度:表征空间各点矢量场发散的强弱程度,表示场的有源性。
(2)KL散度:相对熵、信息增益,表征两个概率分布P和Q差别的非对称性度量,对P和Q的距离的收敛没有判别性,在没有完全重叠时,KL散度都将没有价值。
KL散度是非对称的,即KL(A,B)≠KL(B,A),由于对数函数是凸函数,KL散度为非负数。
(3)JS散度:度量两个概率的分布相似度,解决KL散度的非对称问题,JS散度是对称的。但仍然没有解决KL散度中的收敛没有判别性的问题。
其中上式, 。
(4)Wasserstein距离
Wasserstein距离也是度量两个概率分布之间的距离,改进了两个分布之间没有重叠部分或重叠部分较少,难以反映两个分布远近的问题,而此时KL散度没有意义,JS散度反映的是常量。
反映P和Q的所有联合分布,对于每一个可能的联合分布γ,可以从中取得一个(x,y),并计算这对样本距离||x-y||,在这种情况下计算距离的期望值
,并在所有可能的联合分布下对期望值取下界。

3、WGAN设计
(1)将目标函数原来的JS散度替换为Wasserstein距离
(2)去掉了判别器最后输出层的sigmoid激活函数。由于样本之间一般是不重叠的,使用sigmoid函数会更容易训练出一个判别器,而导致生成器不在移动,而使用一般的线性模型会是生成器和判别器一直以很小的方向移动,但总归是移动的。

(3)将优化器Adam换成RMSProp,实验得出的经验结论罢了
(4) 权重修剪方面,通过每次更新判别器的参数,将权重限制在预先设定好的范围内,避免判别器权重过大或过小,可以使Wasserstein距离更加稳定可靠。
四、Mode Collapse and Mode Dropping
1、Mode Collapse
模式崩溃:生成图像出现多个相同图片,缺乏多样性,就是出现了模式崩溃。

2、Mode Dropping
模式丢失,生成模式在训练中无法有效生成所有真实数据分布中的模式或样本,使得生成的图片不能捕捉真实数据的分布特征,类似下面图片中在迭代之后,人脸没有变化只有肤色发生了变化。

3、FID
FID (Frechet inception distance),能够计算生成图像和真实图像的特征向量之间的度量,分数越低,生成图像和真实图像越相似。
四、Conditional GAN
Conditional GAN就是条件GAN,添加一定的文字信息(或者是音讯信息)与输入的图像一同进入生成器,一般来说文字信息是要与相关信息的图片匹配,这样可以保证生成器能够利用到文字信息。
其余的过程和GAN一样,在G和D之间不断迭代。

另外在实际的应用中,在D的输入中也要加入一些噪音,可以保证不会出现D快速拟合训练集的效果。

参考视频:2021 - 生成式对抗网络(GAN) (三) – 生成器效能评估与条件式生成_哔哩哔哩_bilibili
相关文章:
NLP(3)--GAN
目录 一、概述 二、算法过程 三、WGAN 1、GAN的不足 2、JS散度、KL散度、Wasserstein距离 3、WGAN设计 四、Mode Collapse and Mode Dropping 1、Mode Collapse 2、Mode Dropping 3、FID 四、Conditional GAN 一、概述 GAN(Generative Adversial Networ…...
无涯教程-JavaScript - IMLOG2函数
描述 IMLOG2函数以x yi或x yj文本格式返回复数的以2为底的对数。可以从自然对数计算复数的以2为底的对数,如下所示- $$\log_2(x yi)(log_2e)\ln(x yi)$$ 语法 IMLOG2 (inumber)争论 Argument描述Required/OptionalInumberA complex number for which you want the bas…...
SpringBoot复习:(61)拦截器(HandlerInterceptor)的用法
一、自定义拦截器: package cn.edu.tju.interceptor;import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRespo…...
【PyQT5教程】-01入门PyQT5
PyQT介绍 1.Qt 1.1 介绍 Qt(读作“cute”)是一个跨平台的C应用程序开发框架,最初由挪威公司Trolltech(现在是Qt公司的一部分)开发。Qt提供了一系列工具和类库,用于开发图形界面应用程序、命令行工具和服务…...
判断字符串s是否为字符串t的子序列
题目:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一…...
数据结构之队列的实现(附源码)
目录 一、队列的概念及结构 二、队列的实现 拓展:循环队列 三、初学的队列以及栈和队列结合的练习题 一、队列的概念及结构 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(Fi…...
[A题]2023 年全国大学生数学建模比赛思路、代码更新中.....
💥1 概述 构建以新能源为主体的新型电力系统,是我国实现“碳达峰”“碳中和”目标的一项重要措施。塔式太阳能光热发电是一种低碳环保的新型清洁能源技术[1]。定日镜是塔式太阳能光热发电站(以下简称塔式电站)收集太阳能的基本组…...
Tailwind 练手项目
Tailwind 练手项目 用到的技巧 Tailwind CSS 速成 应该都提过了,我不记得这里有什么特别新的知识 整体完成图大概这样: 一个纯静态页面,没有做 JS 之类的特效,不过做了移动端适配,说实话我写到一半的时候改了不少………...
SpringMVC_SSM整合
一、回顾SpringMVC访问接口流程 1.容器加载分析 容器分析 手动注册WebApplicationContext public class ServletConfig extends AbstractDispatcherServletInitializer {Overrideprotected WebApplicationContext createServletApplicationContext() {//获取SpringMVC容器An…...
【操作系统】电脑上没有IIS怎么办
文章目录 前言一、查看二、解决 前言 有的新机刚开始在计算机-管理-服务下没有IIS网络服务怎么办。 一、查看 桌面计算机/此电脑 鼠标右键:管理 服务和应用 发现没有IIS 二、解决 控制面板 程序和功能 启动或关闭Windows功能 IIS相关的所有功能选中ÿ…...
【vue】vue项目中批量下载文件并打压缩包
前言 一开始用的是循环单个文件下载,即从后台获取到文件url列表,循环对每个url单独进行下载,这样的问题是每调用一次下载,浏览器都会进行“另存为”的弹框,很麻烦!!! 关闭“下载前…...
Linux中的软件管家——yum
目录 编辑 一,软件安装的方式 二,对yum的介绍 1.yum的作用 2,yum的库 三,yum下载软件的操作 1.yumlist 2.yuminstall 3.yumremove 四,yum源的转换 一,软件安装的方式 软件安装的方式大概分为三种…...
安卓绘制原理概览
绘制原理 Android 程序员都知道 Android 的绘制流程分为 Measure、Layout、Draw 三步骤,其中 Measure 负责测量 View 的大小Layout 负责确定 View 的位置Draw 负责将 View 画在屏幕上 由 ViewRootImpl 实现的 performTraversal 方法是 Measure、layout、draw 的真正…...
接口测试工具开发文档
1 开发规划 1.1 开发人员 角 色 主要职责 负责模块 人员 备注 n xxx模块 xxx 1.2 开发计划 <附开发计划表> 1.3 开发环境和工具 开发工具 工具 作用 Notepad 编辑器 Perl 解释器 2 总体设计 设计思路:因为测试app和server。首先必须…...
面试题速记:JavaScript有哪些数据类型,它们的区别是?
JavaScript有哪些数据类型,它们的区别? JavaScript共有八种数据类型,分别是 Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt。 其中 Symbol 和 BigInt 是ES6 中新增的数据类型: ●Symbol 代表创建后独一无二…...
Spring Cloud面试题
为什么需要学习Spring Cloud 不论是商业应用还是用户应用,在业务初期都很简单,我们通常会把它实现为单体结构的应用。但是,随着业务逐渐发展,产品思想会变得越来越复杂,单体结构的应用也会越来越复杂。这就会给应用带…...
计算机网络自顶向下-web页面请求历程
1. 准备: DHCP、 UDP、 IP 和以太网 假定 Bob 启动他的便携机,然后将其用一根以太网电缆连接到学校的以太网交换机 , 交换机与学校的路由器相连。学校的路由器与一个 ISP 连接, 本例中 ISP 为 comcast.net ,为学校提供了 DNS 服务…...
打造西南交通感知新范式,闪马智能携手首讯科技落地创新中心
9月4日,2023年中国国际智能产业博览会(以下简称“智博会”)在重庆拉开帷幕。大会期间,由上海闪马智能科技有限公司(以下简称“闪马智能”)与重庆首讯科技股份有限公司(以下简称“首讯科技”&…...
Android11去掉Settings中的网络和互联网一级菜单
碰到一个不要wifi不要蓝牙的项目,客户要求去掉Settings中的网络和互联网一级菜单,因为硬件都不贴,所以软件对应也要去掉。 我们可以根据packages/apps/Settings/res/xml/top_level_settings.xml的布局文件找到TopLevelNetworkEntryPreferenc…...
基于Python开发的五子棋小游戏(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)
一、项目简介 本项目是一套基于Python开发的五子棋小游戏,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含:项目源码、项目文档、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试&a…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
