生成对抗网络公式推导
本文仅是学习GAN时做的笔记整理,参考链接已在上篇文章列出,如有侵权请与笔者联系
1. KL散度
1.1 信息熵
- 热力学中的热熵是表示分子状态混乱程度的物理量。香农用信息熵的概念来描述信源的不确定度。
- 两个独立符号所产生的不确定性应等于各自不确定性之和
- 在信源中,考虑的不是某一单个符号发生的不确定性,而是要考虑这个信源所有可能发生情况的平均不确定性。
信息熵是信息论中用于度量信息量的一个概念。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。所以,信息熵也可以说是系统有序化程度的一个度量。
对于信源中的单个符号,它的熵定义为:
I ( x ) = log 1 p ( x i ) I(x) = \log \frac{1}{p(x_i)} I(x)=logp(xi)1
一个随机变量 X X X的可能取值为 X = { x 1 , x 2 , . . . , x n } X = \{ x_1,x_2,...,x_n\} X={
x1,x2,...,xn},对应的概率为 P ( X = x i ) ( i = 1 , 2 , . . . , n ) P(X = x_i) (i=1,2,...,n) P(X=xi)(i=1,2,...,n),则变量 X X X的熵定义为:
H ( X ) = E ( I ( X ) ) = ∑ i = 1 n p ( x i ) I ( x i ) = ∑ i = 1 n p ( x i ) log 1 p ( x i ) = − ∑ i = 1 n p ( x i ) log p ( x i ) \begin{aligned} H(X) &= E(I(X)) \\ & = \sum_{i=1}^n p(x_i)I(x_i) \\ & = \sum_{i=1}^n p(x_i) \log \frac{1}{p(x_i)} \\ & = -\sum_{i=1}^n p(x_i) \log{p(x_i)} \end{aligned} H(X)=E(I(X))=i=1∑np(xi)I(xi)=i=1∑np(xi)logp(xi)1=−i=1∑np(xi)logp(xi)
在概率论和统计学中,一个离散型随机变量的期望值是试验中每一次可能出现的结果的概率乘以其结果的总和。
若X是一个离散型的随机变量,可能值为 X = { x 1 , x 2 , . . . , x n } X = \{ x_1,x_2,...,x_n\} X={ x1,x2,...,xn},对应概率为 P ( X = x i ) ( i = 1 , 2 , . . . , n ) P(X = x_i) (i=1,2,...,n) P(X=xi)(i=1,2,...,n),概率和为1,那么期望值 E ( X ) = ∑ i = 1 n p i x i E(X)=\sum_{i=1}^n p_ix_i E(X)=∑i=1npixi
(1)信息熵与事件的可能性数量有关,在概率均等的情况下,存在的可能越多,信息熵越大,信息也越不确定.
(2)信息熵与事件的概率分布情况有关,概率分布越平均,信息熵越大,当所有概率均等的情况下,信息熵达到最大.
1.2 相对熵
相对熵又称互熵,交叉熵,鉴别信息,Kullback熵,Kullback-Leible熵(即KL散度),是两个概率分布 P P P和 Q Q Q差别的非对称性的度量
典型情况下, P P P表示数据的真实分布, Q Q Q表示数据的模拟分布或近似分布。在一定程度上,熵可以度量两个随机变量的距离。但KL散度是非对称的,即 D ( P ∣ ∣ Q ) ̸ = D ( Q ∣ ∣ P ) D(P \mid\mid Q)\not= D(Q \mid\mid P) D(P∣∣Q)̸=D(Q∣∣P),所以它不是真正的距离。
KL散度是用来度量使用基于Q的编码来编码来自P的样本平均所需的额外的位元数(比特个数)。常用于衡量两个概率分布之间的差异或相似度,或衡量利用Q拟合P时的能量消耗
设 P ( x ) P(x) P(x)和 Q ( x ) Q(x) Q(x)是 X X X取值的两个概率分布,则 P P P和 Q Q Q的相对熵为:
D ( P ∣ ∣ Q ) = ∑ x ∈ X P ( x ) log P ( x ) Q ( x ) D(P \mid\mid Q) = \sum_{x \in X} P(x)\log \frac{P(x)}{Q(x)} D(P∣∣Q)=x∈X∑P(x)logQ(x)P(x)
其积分形式为:
∫ x P ( x ) log P ( x ) Q ( x ) = ∫ x P ( x ) P ( x ) Q ( x )   d x \int_x{P(x)\log \frac{P(x)}{Q(x)}} = \int_x{P(x)\frac{P(x)}{Q(x)}}\,{\rm d}x ∫xP(x)logQ(x)P(x)=∫xP(x)Q(x)P(x)dx
因为对数函数是凸函数,所以KL散度的值为非负数。
1.3 JS散度
JS散度度量了两个概率分布的相似度,基于KL散度的变体,解决了KL散度非对称的问题。一般地,JS散度是对称的,其取值是0到1之间。若两个分布完全没有交集,那么JS散度取最大值1;若两个分布完全一样,那么 JS 散度取最小值 0。定义如下:
J S ( P ∣ ∣ Q ) = 1 2 K L ( P ∣ ∣ P + Q 2 ) + 1 2 K L ( Q ∣ ∣ P + Q 2 ) JS(P||Q) = \frac{1}{2}KL(P||\frac{P+Q}{2}) + \frac{1}{2}KL(Q||\frac{P+Q}{2}) JS(P∣∣Q)=21KL(P∣∣2P+Q)+21KL(Q∣∣2P+Q)
#2. 优化目标
min G max D V ( D , G ) = E x ∼ p d a t a ( x ) [ log D ( x ) ] + E z ∼ p z ( z ) [ log ( 1 − D ( G ( z ) ) ) ] \min\limits_G \max\limits_DV(D,G) = E_{x\thicksim{p_{data}(x)}}[\log D(x)] + E_{z\thicksim{p_z(z)}}[\log (1 - D(G(z)))] GminDmaxV(D,G)=E