生成式模型和判别式模型

生成式模型

生成式模型(generative model)会对 x x x y y y的联合分布 p ( x , y ) p(x,y) p(x,y)进行建模,然后通过贝叶斯公式来求得 p ( y ∣ x ) p(y|x) p(yx), 最后选取使得 p ( y ∣ x ) p(y|x) p(yx)最大的 y i y_i yi.
具体地, y ∗ = a r g max ⁡ y i p ( y i ∣ x ) = a r g max ⁡ y i p ( x ∣ y i ) p ( y i ) p ( x ) = a r g max ⁡ y i p ( x ∣ y i ) p ( y i ) = a r g max ⁡ y i p ( x , y i ) y_{*}=arg \max_{y_i}p(y_i|x)=arg \max_{y_i}\frac{p(x|y_i)p(y_i)}{p(x)}=arg \max_{y_i}p(x|y_i)p(y_i)=arg \max_{y_i}p(x,y_i) y=argmaxyip(yix)=argmaxyip(x)p(xyi)p(yi)=argmaxyip(xyi)p(yi)=argmaxyip(x,yi).

相关算法:

  1. 判别式分析 •
  2. 朴素贝叶斯 •
  3. K近邻(KNN) •
  4. 混合高斯模型 •
  5. 隐马尔科夫模型(HMM) •
  6. 贝叶斯网络 •
  7. Sigmoid Belief Networks •
  8. 马尔科夫随机场(Markov Random Fields) •
  9. 深度信念网络(DBN)

判别式模型

判别式模型(discriminative model)则会直接对 p ( y ∣ x ) p(y|x) p(yx)进行建模.

相关算法:

  1. 线性回归(Linear Regression) •
  2. 逻辑斯蒂回归(Logistic Regression) •
  3. 神经网络(NN)
  4. 支持向量机(SVM) •
  5. 高斯过程(Gaussian Process) •
  6. 条件随机场(CRF)
  7. CART(Classification and Regression Tree)

二者优缺点

  1. 一般来说, 生成式模型都会对数据的分布做一定的假设, 比如朴素贝叶斯会假设在给定 y y y的情况下各个特征之间是条件独立的: p ( X ∣ y ) = ∏ i = 1 N p ( x i ∣ y ) p(X|y)=\prod_{i=1}^{N}p(x_i|y) p(Xy)=i=1Np(xiy), GDA会假设 p ( X ∣ y = c , θ ) = N ( μ c , Σ c ) p(X|y=c,\theta)=\mathcal{N}(\mu_c,\Sigma_c) p(Xy=c,θ)=N(μc,Σc). 当数据满足这些假设时, 生成式模型通常需要较少的数据就能取得不错的效果, 但是当这些假设不成立时, 判别式模型会得到更好的效果.

  2. 生成式模型最终得到的错误率会比判别式模型高, 但是其需要更少的训练样本就可以使错误率收敛[限于Genarative-Discriminative Pair, 详见[2]].

  3. 生成式模型更容易拟合, 比如在朴素贝叶斯中只需要计下数就可以, 而判别式模型通常都需要解决凸优化问题.

  4. 当添加新的类别时, 生成式模型不需要全部重新训练, 只需要计算新的类别 y n e w y_new ynew x x x的联合分布 p ( y n e w , x ) p(y_new,x) p(ynew,x)即可, 而判别式模型则需要全部重新训练.

  5. 生成式模型可以更好地利用无标签数据(比如DBN), 而判别式模型不可以.

  6. 生成式模型可以生成 x x x, 因为判别式模型是对 p ( x , y ) p(x,y) p(x,y)进行建模, 这点在DBN的CD算法中中也有体现, 而判别式模型不可以生成 x x x.

  7. 判别式模型可以对输入数据 x x x进行预处理, 使用 ϕ ( x ) \phi(x) ϕ(x)来代替 x x x, 如下图所示, 而生成式模型不是很方便进行替换.

参考资料:
https://www.cnblogs.com/kemaswill/p/3427422.html

你可能感兴趣的:(机器学习)