深度学习_GAN_生成模型和判别模型的区别

对于机器学习模型,我们可以根据模型对数据的建模方式将模型分为两大类,生成式模型和判别式模型。如果我们要训练一个关于猫狗分类的模型,对于判别式模型,只需要学习二者差异即可。比如说猫的体型会比狗小一点。而生成式则不一样,需要学习猫长什么样,狗长什么样。有了两者的长相以后,再根据长相去区分。具体而言:

  1. 生成式模型:由数据学习联合概率分布P(X,Y),然后由P(Y/X) = P(X,Y)/P(X)求出概率分布P(Y/X)作为预测的模型。该方法表示了给定输入X与产生输出Y的生成关系。
  2. 判别式模型:由数据直接学习决策函数Y = f(X)或条件概率分布P(Y/X)作为预测模型,即判别模型。判别方法关心的是对于给定的输入X,应该预测什么样的输出Y。

对于上述两种模型,从文字上理解起来似乎不太直观。我们举一个例子来说明一下,对于性别分类问题,分别用不同的模型来做:

(1)对于生成式模型:可以训练一个模型,学习输入的人的特征X和性别Y的关系。比如下图所示:

Y(性别) 0 1
X(特征) 0 1/4 3/4
1 3/4 1/4

这个数据可以统计得到,即统计人的特征X = 0,1…的时候,其类别为Y = 0,1…的概率。统计得到上述联合概率分布P(X,Y)后,可以学习一个模型,比如让二维高斯分布去拟合上述数据,这样就学习到了X,Y的联合分布。在预测时,如果我们希望给一个输入特征X,预测其类别,则需要通过贝叶斯公式得到条件概率分布才能进行推断:

P ( Y ∣ X ) = P ( X , Y ) P ( X ) = P ( X , Y ) P ( X ∣ Y ) P ( Y ) P(Y|X)={\frac{P(X,Y)}{P(X)}}={\frac{P(X,Y)}{P(X|Y)P(Y)}} P(YX)=P(X)P(X,Y)=P(XY)P(Y)P(X,Y)

(2)如果用判别式模型:可以训练一个模型,输入人的特征X,这些特征包括人的五官,穿衣风格,发型等。输出则是对于性别的判断概率,这个概率服从一个分布,分布的取值只有两个,要么男,要么女,记这个分布为Y。这个过程学习了一个条件概率分布P(Y/X),即输入特征X的分布已知条件下,Y的概率分布。

显然,从上面的分析可以得出,判别式模型似乎要方便很多,因为生成式模型要学习一个X,Y的联合分布往往需要很多数据,而判别式模型需要的数据则相对少,因为判别式模型更关注输入特征的差异性。不过生成式既然使用了更多数据来生成联合分布,自然能够提供更多的信息,现在有一个样本(X,Y),其联合概率P(X,Y)经过计算特别小,那么可以认为这个样本是异常样本。这种模型可以用来做anomaly detection。

你可能感兴趣的:(#,GAN,深度学习,GAN,机器学习,生成式模型,判别式模型)