[PyTorch][chapter 55][GAN- 3]

news2024/11/25 15:48:27

前言:

     这里面主要结合GAN 损失函数,讲解一下JS散度缺陷问题。


目录:

  1.  GAN 优化回顾
  2.  JS 散度缺陷

一   GAN 优化回顾

        1.1 GAN 损失函数

              min_{G}max_{D} V(D,G)=E_{x \sim p_r(x)}[log D(x)]+E_{z \sim p_z(z)}[log(1-D(z))]

                                                     =E_{x\sim p_r(x)}[log D(x)]+E_{x \sim p_g(x)}[log(1-D(x))]

      1.2 固定生成器G,最优鉴别器D^* 为

               

                   此刻优化目标为

                  V(D,G^*)=\int_x p_rlog \frac{p_r}{p_r+p_g}+\int_x p_g log (1-\frac{p_r}{p_r+p_g})

                    =\int_x p_rlog \frac{p_r}{p_r+p_g}+\int_x p_g log (\frac{p_g}{p_r+p_g})

   1.3 得到最优鉴别器D^*后,最优编码器G为

             优化目标:

               V(D^*,G)=2D_{JS}(p_r||p_g)-2log2

           当 p_r=p_g, 得到最优解

                V(D^*,G^*)=-2log2


二  JS 散度缺陷:

  JS散度全称Jensen-Shannon散度,简称JS散度。

 性质: 非负性,对称性。

 2.1  问题:

        当两个分布完全不重叠时,JS散度为恒定值 log2.此时JS散度将无法产生有效的梯度信息无法更新生成网络的参数,从而出现网络训练困难的现象 ,

     当两个分布出现重叠时,JS散度采会平滑变动,产生有效梯度信息;

     当完全重合后,JS散度取得最小值0.如下图所示,红色的曲线分割两个正态分布,由于两个分布没有重叠,生成样本位置处的梯度值始终为0.
 

以下面两个p,q分布的例子: 

   

             x_1=0,x_2 \sim u(0,1) 分布时候,(x_1,x_2) \in p

             x_1=a,x_2 \sim u(0,1) 分布时候,(x_1,x_2) \in q

     2.2 D_{KL} 散度问题

             当 a=0,两者重叠

              当 a \neq0, 两者不重叠

               D_{KL}(p||q)=\int_{-\infty}^{\infty} p log\frac{p}{q}

                                    =\sum_{x_1=0,x_2 \sim U(0,1)} 1log \frac{1}{0}

                                     =+\infty

              同样 D_{KL}(q||p)=+\infty

  

   2.3 D_{JS} 散度问题:

            D_{JS}(p||q)=\frac{1}{2}(\sum_{x_1=0,x_2 \sim u(0,1)})1log\frac{1}{2}+\sum_{x_1=a,x_2 \sim u(0,1)})1log\frac{1}{2})

           当 a= 0时:

                D_{JS}=0

          当 a \neq 0 时:

              D_{JS}=log2

    

          两个分布完全不重叠时:JS散度为恒定值log2⁡,将无法产生有效的梯度信息;

         两个分布出现重叠时: JS散度采会平滑变动,产生有效梯度信息;

         完全重合后:JS散度取得最小值0,得到最优的生成器G

      如下图所示,红色的曲线分割两个正态分布,由于两个分布没有重叠,生成样本位置处的梯度值始终为0,无法更新生成网络的参数,从而出现网络训练困难的现象
 

   如下例子:

 当开始训练的时候,一旦进入了红色区域,KL,JS散度都是常数,此刻梯度为0

无法更新生成器G

 

参考:

 深度学习之生成对抗网络(7)WGAN原理_炎武丶航的博客-CSDN博客
链接:算法面试高频知识点:JS散度解析_牛客网

课时124 JS散度的缺陷_哔哩哔哩_bilibili

课时125 EM距离_哔哩哔哩_bilibili

课时124 JS散度的缺陷_哔哩哔哩_bilibili 

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

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

相关文章

机器学习算法基础--逻辑回归简单处理mnist数据集项目

目录 1.项目背景介绍 2.Mnist数据导入 3.数据标签提取且划分数据集 4.数据特征标准化 5.模型建立与训练 6.后验概率判断及预测 7.处理模型阈值及准确率 8.阈值分析的可视化绘图 9.模型精确性的评价标准 1.项目背景介绍 """ MNIST数据集是美国国家标准与…

【论文阅读 08】Adaptive Anomaly Detection within Near-regular Milling Textures

2013年,太老了,先不看 比较老的一篇论文,近规则铣削纹理中的自适应异常检测 1 Abstract 在钢质量控制中的应用,我们提出了图像处理算法,用于无监督地检测隐藏在全局铣削模式内的异常。因此,我们考虑了基于…

with ldid... /opt/MonkeyDev/bin/md: line 326: ldid: command not found

吐槽傻逼xcode 根据提示 执行了这个脚本/opt/MonkeyDev/bin/md 往这里面添加你brew install 安装文件的目录即可

ETLCloud工具让美团数据管理更简单

美团为第三方开发者和商家提供了一系列开放的API接口和工具,使其可以与美团的业务进行对接和集成,从而获得更多的业务机会和增长空间。 通过美团开放平台,第三方开发者和商家可以实现以下功能: 开放接口:美团开放平台…

联想y7000 y7000p 2018/2019 不插电源 不插充电器, 直接关机 ,电量一直89%/87%/86%,V0005如何解决?

这种问题,没有外力破坏的话,电池不可能突然出事。这种一般是联想的固件问题,有可能发生在系统更新,或者突然的不正常关机或长时间电池过热,原因我不是很清楚。 既然发生了,根据我收集的解决方法&#xff0c…

软件测试-基本概念

软件测试-基本概念 1.什么是软件测试 测试指的是对我们生产出来的产品特性进行一些校验,例如对传感器、手机等的测试,而软件测试是对我们开发出的软件进行校验是否存在问题,测试软件特性是否符合用户需求。 2.软件测试的基本概念 软件测试…

Itsycal for Mac: 精美日历软件的魅力之旅

在这个数字化时代,管理时间和日程变得尤为重要。macOS 平台上的 Itsycal 日历软件可以帮助你有效管理你的日程和时间。 Itsycal 是一款轻量级且直观的日历应用程序,专门为 macOS 用户设计。通过这款软件,你可以轻松查看、管理和跟踪你的日常…

分布式多级缓存SDK设计的思考

分布式多级缓存SDK设计的思考 背景整体架构多层级组装回调埋点分区处理一致性问题缓存与数据库之间的一致性问题不同层级缓存之间的一致性问题不同微服务实例上,非共享缓存之间的一致性问题 小结 之前实习期间编写过一个简单的多级缓存SDK,后面了解到一些…

Postman脚本——断言测试

pm对象提供了测试相关功能: pm.test(testName:String, specFunction:Function):Function:测试函数。pm.expect(assertion:*):Function → Assertion:允许在响应数据上做测试,使用ChaiJS expect BDD语法。 可以使用pm.response.t…

SQL模板-用户留存率计算

在这段实习中,我遇到了用户留存率计算的需求,这里做个总结。 首先来讲下,什么是用户留存? 在互联网行业中,用户在某段时间内开始使用应用,经过一段时间后,仍然继续使用该应用的用户。用户留存一…

Windows账号和密码的获取与破解 相关工具集合

Windows账号和密码的获取与破解 相关工具集合 1.概述2.GetHashes3.gsecdump4.SAMInside5.oclHashcat 1.概述 在通过SQL注入等方式获取网站的WebShell后,就可以利用系统的各种漏洞进行提权,提权成功后,就可以通过远程终端登录系统。此时&…

什么是设备运维管理系统?它对企业有什么帮助?

如果企业在生产过程中遭遇设备故障的突发情况,不仅会对生产计划产生直接的影响,还会导致生产成本的不必要增加。这就是没有采用设备运维管理系统的潜在风险和问题。因此,许多制造企业已开始积极引入并实施设备运维管理系统,其主要…

kubevirt v1.1.0-alpha.0 offline deploy on kubernetes v1.23.17

文章目录 准备条件下载介质部署查看安装 virtctl 前天,kubevirt 更新了,尝鲜。 准备条件 二进制 Deploy Kubernetes v1.23.17 下载介质 export VERSION$(curl -s https://api.github.com/repos/kubevirt/kubevirt/releases | grep tag_name | grep -v…

uni-app 之 解决u-button始终居中问题

uView中u-button始终居中问题如何解决的简单方法&#xff1f; 1&#xff1a;给该元素margin-right: 0;可以达到向右靠齐&#xff1b; 2&#xff1a;给该元素的父元素设置float: right image.png <u-button style"width: 50px; margin-left: 0;" plain"t…

arm ubuntu 换源

sudo gedit /etc/apt/sources.list 将里面内容替换成下面 网址链接 清华源 截图如下 自行选着系统

摸鱼也摸鱼之在线数独自动求解

背景 在发现被老板CPU之后&#xff0c;大家想做的基本上都是摸鱼&#xff0c;像我这种没什么手法的人不可能摸鱼打MOBA游戏&#xff0c;所以只能选择数独这种对时间要求不怎么急促的小游戏。然而&#xff0c;有时候搞半天才发现从一开始就错了&#xff0c;这让我很苦恼&#x…

毕业设计|基于stm32单片机的app视频遥控抽水灭火小车设计

基于stm32单片机的app视频遥控抽水灭火水泵小车设计 1、项目简介1.1 系统构成1.2 系统功能 2、部分电路设计2.1 L298N电机驱动电路设计2.2 继电器控制电路设计 3、部分代码展示3.1 小车控制代码3.1 水泵控制代码 4 演示视频及代码资料获取 1、项目简介 视频简介中包含资料http…

开源日报 0822 | 语音识别与推理

这些项目包括 JavaScript 算法示例、系统编程语言 Rust、高性能的自动语音识别推理项目 Whisper.cpp 以及键盘工作者的单词记忆与英语肌肉记忆锻炼软件 Qwerty Learner。 trekhleb/javascript-algorithms Stars: 174.1k License: MIT 这个项目是一个包含许多流行算法和数据结…

mmc20创建进程c/c++实现

背景 最近写了一份遍历clsid所有接口的代码&#xff08;链接点这里&#xff09;&#xff0c;在查找有意思的包含exe方法的时候发现了mmc20&#xff0c;且接口是6efc2da2-b38c-457e-9abb-ed2d189b8c38。 但常见的使用mmc20都是用的vbs和powershell来创建的进程&#xff0c;这里…

Hadoop的HDFS高可用方案

一、Hadoop高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用&#xff0c;两者的实现基本类似&#xff0c;但 HDFSNameNode 对数据存储及其一致性的要求比 YARN ResourceManger 高得多&#xff0c;所以它的实现也更加复杂 1、HDFS系统高可用简介…