在GAN中,对于判别器D来说,实际上就是一个普通的二分类问题。
根据文章《交叉熵,KL散度以及多分类问题下的极大似然估计》当中的思考,对于二分类问题的极大似然估计,有如下式子成立:
那么,将上式的最后一步重新写成联合概率的形式,有
对应到GAN中来,D分类器要做的就是给定一个x,需要判断这个样本x是属于real data还是generated data,如果我们把属于real data当作y=1,generated data当作y=0,那么便有
判别器
判别器作为一个二分类器,其目标函数是极大似然估计,那么当D(x)取什么值的时候,似然函数达到最大值呢?因为有
从积分的微观角度来解决这个问题的话,实际上这个式子可以变形为
其中,有两个点:
- Δx=|x|N ,意思是说把x的定义域等分成N份
- xi+1=xi+Δx
由于对所有的采样点 xi 来说, Δx 都相同的,因此如果能够使得求和里面的每一项f(D)都能够达到最大值,那么自然就取得了L(D)的最大值。而f(D)的最大值可以通过对D求导获得:
令导数为0,可以求得能够使得似然函数最大的最优判别器为:
几个概率的思考
这里的思考主要来自于上面的式子。
概率 p(y=1|x) 的分布
在GAN中,给定一个样本x,它有可能来自于真实的数据,即
x∼pr(x)
,也有可能来自于生成的假的数据分布,即
x∼pg(x)
,而这两个分布可能存在重叠区域,也有可能存在不重叠的区域
- 在重叠区域概率分布
p(y=1|x)
为一个0到1的某个数
- 在不重叠区域分为两种情况:一种是只有真实数据样本的分布,那么
p(y=1|x)=1
;另一种是只有生成数据样本的分布,那么
p(y=1|x)=0
- 假如在一维的x轴上,从左侧到右侧依次是:只有真实数据分布,有重叠区域,只有生成数据分布,那么
p(y=1|x)
的形状便是从左侧到右侧依次是:恒等于1,根据实际数据情况而波动,恒等于0
各个概率之间的关系
有这几种概率
-
p(y=1|x)
,上面已经讨论过了
-
p(x,y=1)
,它实际上等于
pr(x)
,也就是真实数据的分布
-
p(x|y=1)=p(x,y=1)p(y=1)
这些概率之间的关系,可以参考之前思考过的二维高斯分布的情况。