美文网首页All_Study
GAN的数学推导和案例应用

GAN的数学推导和案例应用

作者: PrivateEye_zzy | 来源:发表于2018-03-05 14:32 被阅读23次

本章涉及到的知识点清单:

1、数学期望的定义

2、KL散度的定义

3、零和博弈

4、GAN的工作原理

5、GAN的目标函数

6、求解D的最优解

7、反求解G使得G和D的概率分布差异最小

8、案例之GAN实现拟合二次函数

在推导GAN公式之前,需要预备一些数学期望和KL散度的知识点

一、数学期望的定义

期望:在概率论中,将实验中每次可能产生的结果的概率乘以其结果的总和,反映随机变量平均取值的大小。根据其随机变量的取值范围不同,分为离散型和连续型

对于连续型随机变量x,其概率密度函数为f(x),则X的数学期望E(x)可以表示成微积分的形式

连续型期望

二、KL散度的定义

KL散度:在信息论中,用生成的概率分布Q来拟合逼近真实的概率分布P时,所产生的信息损耗,即描述两个概率分布的差异,其本身是非对称的

设x是连续型随机变量,其真实概率分布为P(x),拟合分布概率为Q(x),则P对Q的KL散度为

P对Q的KL散度

三、零和博弈

GAN被称为对抗式神经网络,启发自博弈论中的二人零和博弈

零和博弈:指参与博弈的双方,在严格的竞争下,一方的收益必然意味着另一方的损失,博弈过程中,双方的各自收益和损失的相加总和永远为零,双方完全不存在合作的可能。就好比下棋一样,你和对手的每一步棋都是向着自己最有利的方向走,最终只有一方赢一方输,而下棋的总成绩永远为零

显然,GAN也是由博弈双方组成,分别为生成网络G(Generator)和判别网络D(Generator)

四、GAN的工作原理

GAN的工作过程

上图中,x是真实数据,Pdata(x)是x的概率分布,z是噪点数据,P(z)是z的概率分布,其工作过程为:

(1):从噪声z进行随机抽样,传入G网络,生成新数据G(z)和其概率分布Pg(G(z))

(2):将真实数据和G生成的新数据一起传入D网络进行真假判别,通过sigmoid函数来输出判定类别

(3):迭代优化D和G损失函数,根据D来调整G

(4):直到D和G达到收敛,即D无法判断G产生数据的真假性,即Pg(G(z))已经非常逼近Pdata(x)

至此,我们可以抽象看出GAN的目的,将随机噪声z通过G网络得到一个和真实数据分布Pdata(x)差不多的生成分布Pg(G(z)),这个过程就是G和D相互博弈的过程

五、GAN的目标函数

定义GAN的目标函数为V(G,D),在博弈过程中,G希望减少V的值让自己生成的分布无法识别,而D希望增大V的值让自己可以高效的判别出数据的真假类别,则V(G,D)的表达式为

目标函数

其中E表示真实数据x和噪点数据z的数学期望

G网络是一个生成器,可以是全连接神经网络、卷积神经网络等等,通过噪点分布P(z),一般是高斯分布,得到一个生成数据的分布Pg(x),我们希望Pg(x)非常靠近Pdata(x),来拟合逼近真实分布

D网络是一个判别函数,需要解决传统的二分类问题,其职责就是有效的区分真实分布和生成分布,即衡量Pg(x)和Pdata(x)之间的差距,并通过反复的迭代训练

六、求解D的最优解

从目标函数出发,由于V是连续的,我们将V写成微积分的形式来表示期望

目标函数的积分形式1

设G(z)生成的数据是x,分别求出噪点z和噪点的微分dz表达式

z和dz关于x的表达式

带入z和dz,可以得到

目标函数的积分形式2

我们定义Pg(x)表示z的生成分布,则

生成分布Pg(x)

带入目标函数可得

目标函数的积分形式3

现在要求V(D,G)关于D的最大值,则固定G来求D的偏导数

求解D的最大值

七、反求解G使得G和D的概率分布差异最小

从D(x)的最优解D*(X)的表达式可以看到,我们期望当G产生出来的拟合分布和真实分布一致时,即

拟合分布和真实分布一致

在这个条件下,D*(x)=1/2,即此时D网络已经无法直接分辨出G产生出来的数据的真假性了

那么当D满足最优解后,此时的G的解是什么呢?我们只需要带入D*(x)反过来求解G即可

带入D*(x)求出C(G)积分式

我们对上述积分表达式进行等效处理,在log里面的分式上,分子分母同时除以2(分式不变原理),然后保持分母不变,将分子的1/2利用对数的乘法原理提到外面,则上式可以等效变形为

等效变化C(G)积分式

我们引入连续函数的KL散度将上式积分式整理成散度表达式

C(G)散度表达式

根据KL散度的定义,当拟合分布Pg(x)完全等于真实分布Pdata(x)时,KL=0,所以G网络的最小值是-log4

由此证明了当D网络逼近其最优解的同时,G网络也无限逼近其最小值

八、案例之GAN实现拟合二次函数

有G网络和D网络的意义,我们编写如下代码来拟合二次函数,其中G网络只是一个全连接网络,利用梯度下降来反向传播更新其权重

G网络和D网络

迭代5000次后的博弈结果为

训练开始的生成分布 训练结束的生成分布

从结果上可以看到,G网络生成的分布(绿色)已经非常逼近真实分布(蓝色),且D网络的判别能力逼近50%,G网络的最优值逼近-log4=1.38629达到了很好的收敛效果

案例代码见:GAN拟合二次函数案例

相关文章

  • GAN的数学推导和案例应用

    本章涉及到的知识点清单:1、数学期望的定义2、KL散度的定义3、零和博弈4、GAN的工作原理5、GAN的目标函数6...

  • GAN(2)GAN的数学理论及推导

    GAN 的数学理论及推导(李宏毅GAN课程学习笔记) 在前一篇文章,我们已经从概念及逻辑上,对GAN进行了相对直观...

  • python数据分析与机器学习(Numpy,Pandas,Mat

    机器学习怎么学? 机器学习包含数学原理推导和实际应用技巧,所以需要清楚算法的推导过程和如何应用。 深度学习是机器学...

  • GAN和DCGAN

    原文地址 zhuanlan.zhihu.com GAN 学习:GAN/DCGAN 原理、公式推导及实践 生成对抗网...

  • 狭义相对论的两个时空效应

    本章涉及知识点1、前言2、时间延缓效应的数学推导3、时间延缓效应的分类讨论4、案例一解析5、长度收缩效应的数学推导...

  • softmax应用及数学推导

    假如有两个数,a和b,并且a>b,如果取max,那么就直接取a,但有的时候这样会造成分值小的那个饥饿。因此实现希望...

  • ML03-逻辑回归(下部分)

    本文主题-逻辑回归(下部分):逻辑回归的应用背景逻辑回归的数学基础逻辑回归的模型与推导逻辑回归算法推导梯度下降算法...

  • ML02-逻辑回归(上部分)

    本文主题-逻辑回归(上部分):逻辑回归的应用背景逻辑回归的数学基础逻辑回归的模型与推导逻辑回归算法推导梯度下降算法...

  • GAN原理及推导

    四.训练 5.存在的问题 但是上面 G 的 loss function 还是有一点小问题,下图是两个函数的图像: ...

  • 定积分的算法

    本章涉及知识点1、求解定积分存在的问题2、研究案例之f(x)=sin(x)/x的定积分和广义积分3、纯数学推导计算...

网友评论

    本文标题:GAN的数学推导和案例应用

    本文链接:https://www.haomeiwen.com/subject/ovigxftx.html