优化GAN的分布的梯度问题,WGAN_gan的梯度_MAR-Sky的博客-程序员宅基地

技术标签: 人工神经网络  

参考资料:http://blog.csdn.net/sallyxyl1993/article/details/64123922
     https://baijiahao.baidu.com/s?id=1580024390078548003&wfr=spider&for=pc
     https://sherlockliao.github.io/2017/06/20/gan_math/
     http://blog.csdn.net/u011534057/article/details/52840788
     https://zhuanlan.zhihu.com/p/25071913
注意:(由于符号是截取不同的图片,不同的两种表示两种分布情况)

经典的GAN网络简介

最初的目标函数
参数含义:
在这里插入图片描述
在这里插入图片描述
对目标函数的变换:(先将G固定)
在这里插入图片描述
上式中,由于在G固定的情况下,训练D对真实数据判断的最大值。而z分布通过固定的G之后会被映射到x的分布中,但有些不在x分布中,则它的概率就是0,所以公式的后半部分就简化为z能够映射到x的范围中的计算。
在这里插入图片描述在这里插入图片描述

若想得到D的最大值这得到上式的最大值,如第二个式子的形式的最大值,通过求导为0可以得到最大值为:a/(a+b),及在G固定的情况下,目标函数最大值是:
在这里插入图片描述
当最优的判别器确定后,若想得到最好的G,则两个分布相同时,也就是pdata(x)=pg(x)=0.5,判别式可转换为如下所示,

在这里插入图片描述
由于常数的均值不变,则C(G) = -log 4,及最优的情况下目标函数值,也是在D确定的情况下,G的最小值。在没有达到最优的G时,可以将上式提出一个-log 4,通过变化得到下面的式子(参考:https://blog.csdn.net/stalbo/article/details/79283399):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
又知道JS散度的计算公式
在这里插入图片描述
可将上面的式子最终化简为,
在这里插入图片描述

目标函数的问题

参考:https://www.zhihu.com/question/315253041/answer/877635189
对于前面提到的目标函数的最优解:
在这里插入图片描述
以及当D为最优时的G的目标函数
在这里插入图片描述
下面是KL散度的公式,两中分布(P,Q)可能出现多种情况,
在这里插入图片描述
P和Q无重合分布点,这生成器分布Q(x)=0,此时,KL的散度无意义,JS散度会成为一个常数。下面是二维平面数据分布的几种情况,

在这里插入图片描述
在实际中,分布的情况是多维的,而上图中只是二维,可以想象一下三维空间的两个平面的分布设为(F1,F2),这时的分布的重合范围就是一条线,相比与整个分布来说可以忽略,如果到更高维的分布则重合部分的比重会更少。也就是**JS散度是常数log 2,此时,梯度下降法的梯度为0 。**而且当D无线接近最优解时,生成器的梯度消失越严重,则训练越困难。

重新定义的目标函数

在这里插入图片描述
其中lb是指log 2,结合前面提到的算法,该式子可以转换为
在这里插入图片描述
在这里插入图片描述
其中式10,要求两个分布的概率相同,但式11,要求两个分布不一样,这中情况下不可能得到最优解。当对单一条件得到最优解:
只是满足式子10时,
在这里插入图片描述
这个说明生成了最真实的样本,但没有多样性,生成正确重复的样本,也不会生成多样性样本,就是模式崩溃。

只是满足式子11时,
在这里插入图片描述
该情况下,样本生成的随机性较强,但没能生成真实样本。

Wasserstein距离又叫Earth-Mover(EM)距离

比较普遍的解释就是移动图堆或搬砖的方式,通过调整现有的分布将生成网络的分布调整到对应的真实分布一样。
在这里插入图片描述

在这里插入图片描述
上图,有点儿怪,但可以理解为两个特殊分布,一个分布在x=θ处,一个分布在x=0处,会得到如下关系
在这里插入图片描述
其中,W是一个平滑的目标值,即使两个分布完全无交集,也有合理的度量

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43794311/article/details/111500652

智能推荐

org.apache.struts2.impl.StrutsActionProxy.getErrorMessage(StrutsActionProxy.java-程序员宅基地

jdk1.5,struts2.3.4,tomcat6.0 配置struts2 报错500: web.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration...

stm32使用J-LINK下载_stm32jlink驱动下载-程序员宅基地

一、硬件连线二、软件设置 MDK51.修改debug,改为J-LINK/J-TRACE Cortex点击setting,打开Flash Download,根据内存修改Programming2.返回上一层,修改Utilities我这里使用了默认配置_stm32jlink驱动下载

测试电磁波仪软件,电磁波辐射检测仪的使用方法_电磁辐射检测仪工作原理与应用..._古畑新之助的博客-程序员宅基地

摘要:电磁波辐射检测仪在我们的生活中已经得到了普遍的运用。本文主要介绍了电磁波辐射检测仪的使用方法、电磁辐射检测仪工作原理以及它的应用,详细说明了电磁波辐射检测仪产品的特点。电磁辐射介绍电磁波(又称电磁辐射)是由同相振荡且互相垂直的电场与磁场在空间中以波的形式移动,其传播方向垂直于电场与磁场构成的平面,有效的传递能量和动量。电磁辐射可以按照频率分类,从低频率到高频率,包括有无线电波、微波、红外线、...

PotPlayer设置最小化的快捷键_potplayer最小化-程序员宅基地

打开PotPlayer,右键,点击选项点击基本,然后再点击快捷键。我们就是在这里修改快捷键的!可以看到我已经自定义过一些快捷键了,并且忽略了默认的快捷键。这里我先删除屏幕最小化的快捷键。然后来演示一下它,点击添加接着出现一个自定义快捷键的窗口,我们可以看到在右边有一个滚动条,将其滑动到最下方点击屏幕,然后再选择最小化。接着在快捷键的地方键入想要控制最小化的快捷键即可,最后点击确定。这时会回到第二步图片的界面,然后再依次点击应用,确定即可。..._potplayer最小化

PTA《C语言程序设计实验与习题指导(第3版)》题目集 实验5-1 使用函数计算两个复数之积 (10 分)_两个乘积为10的复数_JYY_2021的博客-程序员宅基地

若两个复数分别为:c1​=x1​+y1​i和c2​=x2​+y2​i,则它们的乘积为c1​×c2​=(x1​x2​−y1​y2​)+(x1​y2​+x2​y1​函数接口定义:double result_real, result_imag;void complex_prod( double x1, double y1, double x2, double y2 );其中用户传入的参数为两个复数x1+y1i和x2+y2i;函数complex_prod应将计算结果的实部存放在全局变量re.._两个乘积为10的复数

Python -- Matplotlib.pyplot快速上手(绘制三维图 /二维图)(解决中文乱码问题)_python matplotlib三维图像简化为二维图像-程序员宅基地

import matplotlib.pyplot as pltx = [1, 2, 3, 4]y = [1, 4, 9, 16]plt.plot(x, y)plt.show() 设置折线点的属性import numpy as npimport matplotlib.pyplot as plt# evenly sampled time at 200ms interva..._python matplotlib三维图像简化为二维图像

随便推点

Windows通过命令上传文件到服务器_记一次从tomcat弱口令到获取服务器权限-程序员宅基地

#0x01 前言在一次蓝队的资产梳理以及渗透测试的过程中,同事通过web目录扫描工具对目标系统进行目录扫描,发现了一个tomcat的默认登录页面,在简单的密码尝试之后,发现存在弱口令,弱口令为admin /admin。一般进入到tomcat的应用管理页面,能想到的都是通过部署war包的方式上传木马文件,获取webshell。0x02 渗透过程1、打开tomcat的默认登录页面,通过adm..._server2012r2弱口令

oracle执行runstats,oracle runstats工具-程序员宅基地

------以sys登录进行授权 grant select on sys.v_$timer to suk; grant select on v_$mystat to suk; grant select on sys.v_$statname to suk; grant select on sys.v_$latch to suk;------This is the test harness I use...

okhttp3封装-程序员宅基地

import android.os.Handler;import okhttp3.Call;import okhttp3.Callback;import okhttp3.OkHttpClient;import okhttp3.Request;public class OkHttpUtils { private Handler handler = new Handler()

iconfont下载的本地文件的ttf、woff、woff2转换成base64位后引入iconfont.css使用_woff2转base64_尔嵘的博客-程序员宅基地

写这篇文章的目的:我想在html中使用iconfont图标元素,选择好的图标下载到本地后,引入iconfont.css文件无法直接使用iconfont下载的本地文件的ttf、woff、woff2转换成base64位后引入iconfont.css使用如下:使用在线转换工具 Transfonter注意: 1、原来下载的iconfont.css文件中有三种类型的:woff2、woff、truetype,这里我选择woff作为转换源,即://at.alicdn.co..._woff2转base64

【Kubernetes 010】Ingress作用及Ingress-Nginx实际操作详解_nginx-ingress指定后端具体的pod中的一个-程序员宅基地

上一节中我们学习了Service以及对应的负载均衡,但是这些负载均衡都是基于IP和端口的四层负载均衡。那么如果想要实现七层负载均衡,也就是根据请求的内容来,有没有办法实现呢?这就需要用到本节即将学习的Ingress了。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录什么是IngressIngress vs NodePortIngress-Nginx安装实际操作HTTP代理HTTPS代理BasicAuthNginx重写_nginx-ingress指定后端具体的pod中的一个

基于docker搭建jenkins-程序员宅基地

一、概述Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎。Jenkins 是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。二、安装环境说明操作系统:centos 7.6docker版本:19.03.12ip地址:19..._docker搭建jenkins

推荐文章

热门文章

相关标签