生成式模型
生成式模型(generative model)会对
x
x
x和
y
y
y的联合分布
p
(
x
,
y
)
p(x,y)
p(x,y)进行建模,然后通过贝叶斯公式来求得
p
(
y
∣
x
)
p(y|x)
p(y∣x), 最后选取使得
p
(
y
∣
x
)
p(y|x)
p(y∣x)最大的
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(yi∣x)=argmaxyip(x)p(x∣yi)p(yi)=argmaxyip(x∣yi)p(yi)=argmaxyip(x,yi).
相关算法:
- 判别式分析 •
- 朴素贝叶斯 •
- K近邻(KNN) •
- 混合高斯模型 •
- 隐马尔科夫模型(HMM) •
- 贝叶斯网络 •
- Sigmoid Belief Networks •
- 马尔科夫随机场(Markov Random Fields) •
- 深度信念网络(DBN)
判别式模型
判别式模型(discriminative model)则会直接对 p ( y ∣ x ) p(y|x) p(y∣x)进行建模.
相关算法:
- 线性回归(Linear Regression) •
- 逻辑斯蒂回归(Logistic Regression) •
- 神经网络(NN)
- 支持向量机(SVM) •
- 高斯过程(Gaussian Process) •
- 条件随机场(CRF)
- CART(Classification and Regression Tree)
二者优缺点
-
一般来说, 生成式模型都会对数据的分布做一定的假设, 比如朴素贝叶斯会假设在给定 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(X∣y)=∏i=1Np(xi∣y), GDA会假设 p ( X ∣ y = c , θ ) = N ( μ c , Σ c ) p(X|y=c,\theta)=\mathcal{N}(\mu_c,\Sigma_c) p(X∣y=c,θ)=N(μc,Σc). 当数据满足这些假设时, 生成式模型通常需要较少的数据就能取得不错的效果, 但是当这些假设不成立时, 判别式模型会得到更好的效果.
-
生成式模型最终得到的错误率会比判别式模型高, 但是其需要更少的训练样本就可以使错误率收敛[限于Genarative-Discriminative Pair, 详见[2]].
-
生成式模型更容易拟合, 比如在朴素贝叶斯中只需要计下数就可以, 而判别式模型通常都需要解决凸优化问题.
-
当添加新的类别时, 生成式模型不需要全部重新训练, 只需要计算新的类别 y n e w y_new ynew和 x x x的联合分布 p ( y n e w , x ) p(y_new,x) p(ynew,x)即可, 而判别式模型则需要全部重新训练.
-
生成式模型可以更好地利用无标签数据(比如DBN), 而判别式模型不可以.
-
生成式模型可以生成 x x x, 因为判别式模型是对 p ( x , y ) p(x,y) p(x,y)进行建模, 这点在DBN的CD算法中中也有体现, 而判别式模型不可以生成 x x x.
-
判别式模型可以对输入数据 x x x进行预处理, 使用 ϕ ( x ) \phi(x) ϕ(x)来代替 x x x, 如下图所示, 而生成式模型不是很方便进行替换.