美文网首页
李毅宏 【GAN 课程笔记 2: Basic Theory】

李毅宏 【GAN 课程笔记 2: Basic Theory】

作者: winddy_akoky | 来源:发表于2019-06-13 15:45 被阅读0次

本系列是自己看完李毅宏老师的GAN系列教程后整理的笔记,有错误的地方请指正。

一、 目的

给定一个数据集,求该数据集的一个分布?譬如图1,x表示一张图(可以理解成一个高维的向量),现有的数据集都是一些二次元图片,最终的目的就是寻找二次元图片的分布P_{data}(x)。有了这个分布后,就可以从这个分布中进行采样,从而生成更多的二次元图片。假设二次元图片的分布函数长得更蓝色区域一样,采样在蓝色区域内的点都能表示成高质量的二次元图片。而落在蓝色区域外的点只能生成非二次元或质量很差的二次元图片。

因此,本节课的目的就是如何求P_{data}(x)

图1

二、 极大似然估计

  • 设数据集的分布:P_{data}(x),当然不知道这个分布具体长啥样,不然就没事做了,但是我们知道处于这个分布内的数据点。
  • 因此,自然会想到,用现有的处于分布P_{data}(x)内的数据构造一个分布去近似P_{data}(x)。令这个近似的分布为:P_{G}(x; \theta)。这是参数化的表达式,其中\theta就是要求得的参数。例如:P_{G}(x; \theta)是一个高斯分布,其中\theta就表示均值和方差。

具体来讲,其参数的计算方法如下:

  1. 先从原数据集中采样,即在分布P_{data}(x)上采样,得到样本:\{x^1,x^2,...,x^m \}
  2. 计算:P_{G}(x^i; \theta)
  3. 采样样本的似然函数就可以写成:
    \begin{equation} L=\prod_{i=1}^{m} P_{G}\left(x^{i} ; \theta\right) \end{equation}
  4. 寻找参数\theta^*最大化似然函数。
图2

三、 极大似然估计=KL散度

其实证明过程就如图3所示。

其实这里我有几个待解决的问题:

  1. 特地证明这种关系是为了说明什么?
  2. 最大化最大似然函数等价于最小化KL散度,为什么神经网络中的loss函数不直接优化似然函数?
  3. P_G该用什么表示?
图3

四、生成器

P_G的一个表示方法就是用神经网络。理论上,用神经网络可以近似任意一个函数,理所当然能近似P_G这个分布函数。

如图4所示,我们希望最终产生的P_G(x)尽可能的接近P_{data}(x),也就说要最小化P_G(x)P_{data}(x)的“差异性”。

\begin{equation} G^{*}=\arg \min _{G} {D i v\left(P_{G}, P_{\text {data}}\right)} \end{equation}

现在问题就是如何计算这种差异性?

图4

五、判别器

现在遇到的问题是如何解决下面这个式子:
\begin{equation} G^{*}=\arg \min _{G} D i v\left(P_{G}, P_{d a t a}\right) \end{equation}
很遗憾的是,不管是P_{data}还是P_G我们都无从知道。但是,我们可以得到来自P_{data}P_G的数据样本。

图5

实际上,解决方法是从判别器入手的。判别器的主要作用就是:判断输入进来的样本是好还是坏(是属于P_{data}还是属于P_G)。如图6,蓝色的星星和红色星星输入进Discriminator后,输出的结果是每一个样本属于P_{data}的概率。这个过程跟二分类模型类似。而判别器最终的目的就是最大化:V(G,D)

图6

下面就要介绍这个V(G,D)跟JS散度的关系,也就说,其实V(G,D)恰好可以衡量两种分布的差异性,那么也就可以用V(G,D)去替代Div(P_G,P_{data})。这便是这节最终想要做的事。下面是证明。

image.png image.png image.png image.png image.png

相关文章

网友评论

      本文标题:李毅宏 【GAN 课程笔记 2: Basic Theory】

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