其实有人写过了https://blog.csdn.net/nymph_h/article/details/96482695
也算是拾人牙慧吧,把自己的一点想法补充下。
=====================================
本文的目的还是解决GAN网络里的mode collapse问题。
做法的话是在Discriminator的Embedding Space里生成一个cluster,从而目标函数通过Gaussian Density Function来获得一个新的GAN function。
产生clusters的过程:通过改变D网络的probablity landscape来提高GAN的mode discovery能力。
文章里提到的Simplex(单纯形)是代数拓扑问题中的概念,单纯形是三角形和四面体的一种泛化,一个k维单纯形是指包含 k+1个节点的凸多面体。
1维单纯形就是线段;2维单纯形就是三角形;三维单纯形就是四面体。
GAN function如下:
m i n G m a x D L ( G , D ) = m i n G m a x D ( E x ∼ p d a t a [ l o g ( l k ( D ( x ) ) ) ] + E z ∼ p z [ l o g ( λ − l k ( D ( ( G ( z ) ) ) ) ] ) \mathop{min}\limits_G\mathop{max}\limits_D\mathcal{L}(G,D)=\mathop{min}\limits_G\mathop{max}\limits_D(\mathbb{E}_{x\sim p_{data}}[\mathop{log}(lk(D(x)))]+\mathbb{E}_{z\sim p_{z}}[\mathop{log}(\lambda-lk(D((G(z))))]) GminDmaxL(G,D)=GminDmax(Ex∼pdata[log(lk(D(x)))]+Ez∼pz[log(λ−lk(D((G(z))))])
λ \lambda λ设置为似然函数lk的最大值。
Mixture Density GAN的模型是怎么想到的?
作者希望通过在真实图像的embedding周围来生成若干个clusters,所有的聚类的中心会形成一个单纯形体,这样他们的距离是互相相同的。每一个聚类都会以一个Gaussian 核函数来表示,从而整体形成了一个Mixture of Gaussians,这里作者将其称为单纯形高斯混合模型(Simplex Gaussian Mixture Model, SGMM)。其中每个cluster用来将fake images的embedding拉向聚类的中心。当这个embedding越接近聚类的中心的时候,它就由于高斯分布会获得更高的分数,从而它可以获得更大的似然值,就更容易被识别为真实的图像。
Mixture Density GAN模型介绍
Discriminator输出一个d维的结果。对于输入图像 x x x而言,分辨器通过网络的最后一层的激活函数产生一个embedding e e e。MD-GAN中使用的SGMM有如下的几种属性:
1.每个单独的component都是d维的多变量高斯分布。
2.模型中包括d+1个不同的Gaussian components