1 Generative Model vs Discriminative Model

首先,我们要明白机器学习中主要有两种模型,生成模型和判别模型。顾名思义,判别模型就是判别输入数据属于哪一类,例如卷积神经网络可以判别一幅图是不是包含猫;而生成模型并不知道数据是属于哪一类,它的作用是通过熟悉输入数据的特定分布,来产生一组新数据与输入数据分布类似。


最常见的生成模型算法就是利用最大似然算法,通过计算边缘概率等来确定新数据符合原始分布,常见的如混合高斯分布,这是利用统计模型得出来的,但是统计模型的计算量十分复杂。



2 GAN特征

有人就想出来了使用对抗式神经网络(Generative Adversial Network,简称GAN)来作为生成模型,这个模型的具体过程是:


使用两个模型(generative model G和discriminative model D)通过后向传播算法进行同时训练,并且它们分别都是深度神经网络;

其中生成模型G的作用是获取输入数据的分布特征、并且要使得判别模型D的误差达到最大。

其中判别模型D的作用是估计新样本来自原始数据或模型G的概率;

在训练或产生过程中,无需马尔科夫链或其他推断。




换句话说,GAN就是包含两个神经网络g和d,并且这两个网络是同时训练的,每一个网络都含有一个目标函数通过梯度下降算法去优化,最终使得生产模型和判别模型同时变得更优,并且最终状态是最强大的判别模型也能被最强大的生产模型给“忽悠”过去。也就是说,D和G两个网络好比在玩二人对抗游戏。

2.1_.JPG


这个公式的含义是:我们要找到两个最优网络,其中D网络要满足使得新产生的数据来自原始分布的概率最大,而G网络要使得产生数据与原始数据的分布尽可能一样。


下面这幅图显示了GAN在训练过程中的网络变化,其中黑色虚线代表训练数据的分布曲线,绿色实线代表生成网络产生的数据分布,而蓝色虚线代表判别网络的判别概率(其中1代表数据来自原始分布的概率为1)。由图可知,GAN的最终状态是生成网络G产生的数据分布和原始数据分布趋于一致,而判别网络的判别概率趋于1/2。

2.2_.jpg





3 GAN训练流程

下面来具体看一下GAN算法的训练流程,这里采取的训练方案是每连续训练k次判别模型后训练一次生成模型,并且对于生产模型的目标函数我们只取后面一项。具体训练流程如下图所示:

2.3_.jpg





4 GAN的优缺点
 
优点:由于GAN的目标函数是产生与真实数据无法区分的分布,所以当它用于图像的生成时是相当成功的;相比variational autoencoders,GAN更加接近真实数据;相比maximum likelihood,GAN不需要先验的概率分布。



缺点:GAN的一个明显的缺点是难以训练,为什么这么说呢?一看GAN的目标函数就知道了,不同于常规的交叉熵或平方差等目标函数,GAN的目标函数比较复杂并且独特。这也是目前看来还很少有人将GAN用于文本或音频方面的原因吧。

 
 
 
 
来源:张泽旺 深度学习每日摘要
智造家