- 一、预备知识
- 1.1 数学期望
- 1.2 最大似然估计
- 例子
- 1.3 熵与交叉熵
- 1.4 KL散度(Kullback-Leibler divergence)
- 1.4 零和博弈
- 二、数学描述
在推导GAN公式之前,为了理解生成对抗网络的基本原理,需要首先了解一些预备知识。
1.1 数学期望在概率论和统计学中,数学期望(mean)(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和,是最基本的数学特征之一。它反映随机变量平均取值的大小。
对于连续型随机变量x,其概率密度函数为f(x),则X的数学期望E(x)为:
最大似然估计(maximum likelihood estimation, MLE)一种重要而普遍的求估计量的方法。最大似然法明确地使用概率模型,是用来估计一个概率模型的参数的一种方法,其目标是寻找能够以较高概率产生观察数据的系统发生树。
(最大似然估计是一种“模型已定,参数未知”的方法)
举个通俗的例子:假设一个袋子装有白球与红球,比例未知,现在抽取10次(每次抽完都放回,保证事件独立性),假设抽到了7次白球和3次红球,在此数据样本条件下,可以采用最大似然估计法求解袋子中白球的比例(最大似然估计是一种“模型已定,参数未知”的方法)。当然,这种数据情况下很明显,白球的比例是70%,但如何通过理论的方法得到这个答案呢?一些复杂的条件下,是很难通过直观的方式获得答案的,这时候理论分析就尤为重要了,这也是学者们为何要提出最大似然估计的原因。我们可以定义从袋子中抽取白球和红球的概率如下: 似然估计:
两边取ln,方便求导:
取平均:
最大似然估计的过程,就是找一个合适的theta,使得平均对数似然的值为最大。因此,可以得到以下公式:
推广到多个:
我们定义M为模型(也就是之前公式中的f),表示抽到白球的概率为theta,而抽到红球的概率为(1-theta),因此10次抽取抽到白球7次的概率可以表示为:
即
求导,令其导数为零:
由此可得,当抽取白球的概率为0.7时,最可能产生10次抽取抽到白球7次的事件。
参考: https://www.jianshu.com/p/f1d3906e4a3e
1.3 熵与交叉熵熵(Entropy):
交叉熵(Cross-Entropy):
1.4 KL散度(Kullback-Leibler divergence)KL散度,又称“相对熵”,在信息论中,用生成的概率分布Q来拟合逼近真实的概率分布P时,所产生的信息损耗,即描述两个概率分布的差异,其本身是非对称的。
设x是连续型随机变量,其真实概率分布为P(x),拟合分布概率为Q(x),则P对Q的KL散度为: 从上述公式可以看出,当且仅当P=Q时,KL(P||Q)=0。同时KL散度具有非负性,即KL(P||Q)≥0;KL散度不具备对称性,也就是说P对Q的KL散度并不等于Q对P的KL散度。
KL散度的理论意义在于度量两个概率分布之间的差异程度。当KL散度越高时,说明两者的差异程度越大;而当KL散度低时,则说明两者的差异程度小。如果两者相同的话,则该KL散度应该为0。
【特定情况下,通常是P用以表示数据的真实分布,而Q表示数据的模型分布或近似分布。】
参考: 【1】https://zhuanlan.zhihu.com/p/22464760
1.4 零和博弈零和博弈:指参与博弈的双方,在严格的竞争下,一方的收益必然意味着另一方的损失,博弈过程中,双方的各自收益和损失的相加总和永远为零,双方完全不存在合作的可能。 就好比下棋一样,你和对手的每一步棋都是向着自己最有利的方向走,最终只有一方赢一方输,而下棋的总成绩永远为零。 关于博弈论的详细知识,可参考:https://blog.csdn.net/didi_ya/article/details/108979939
二、数学描述 上图中,x是真实数据,Pdata(x)是x的概率分布,z表示随机噪声,P(z)是z的概率分布,噪声分布。
z通过一个神经网络输出x,x为fake sample,如图所示:
D(x;θg):代表是真品的概率。越趋近于1,越可能是真品;越趋近于0,越可能是赝品。 其大致表示如下:
目标: 对于判别器D: 如果 x 来自 pdata,则 D(x)偏高;=>log D(x)↑ 如果 x 来自 pg(即z 来自 pz),则 D(x)偏低,即(1-D(x))偏高 ==> log(1-D(x))↑ (由于x=G(z)) 因此 max
【为什么是期望?】 求期望是因为这是要在整个数据集上做运算,而这个数据集是x~pdata,即数学期望
对于生成器D: 如果 x 来自 pg(即z 来自 pz),则 D(x)偏高,即(1-D(x))偏低 ==> log(1-D(x))↓
因此 min
总目标:(生成器G建议在判别器D的基础上)
因为,min的对象是G,max的对象是D,而第一项不包括G,因此min计算时不包括第一项的期望。
GAN的目的是将随机噪声z通过生成器G得到一个和真实数据分布Pdata(x)类似的生成分布Pg(G(z)),