LOADING

加载过慢请开启缓存 浏览器默认开启

CS229-2 Generative Learning

Gaussian Discriminant Analysis (GDA) 与 朴素贝叶斯

1. Discriminative vs Generative

1.1 Discriminative Learning Algorithm

判别式学习直接学习:

p(y|x)

或者直接学习映射:

h(x)

典型例子:Logistic Regression、SVM、Neural Network、Softmax Regression。

它关心的是:给定特征 x,标签 y 是什么? 即直接学习分类边界。

1.2 Generative Learning Algorithm

生成式学习建模的是:

p(x|y)p(y)

然后通过 Bayes rule 得到:

p(y|x)=p(x|y)p(y)p(x)

其中:

  • p(y)class prior(类别先验概率)
  • p(x|y) 表示给定类别 y 时特征 x 的分布

分类时,p(x) 对所有类别相同,因此:

argmaxyp(y|x)=argmaxyp(x|y)p(y)

这就是生成式分类器的核心。

2. Gaussian Discriminant Analysis (GDA)

2.1 GDA Model

GDA 用于分类,假设输入是连续特征 xRd,核心假设是:每一类内部的特征分布都是 multivariate Gaussian

yBernoulli(ϕ)x|y=0N(μ0,Σ)x|y=1N(μ1,Σ)

参数含义:

参数 含义
ϕ 类别 1 的先验概率,即 P(y=1)
μ0 类别 0 的特征均值向量
μ1 类别 1 的特征均值向量
Σ 两类共享的协方差矩阵

2.2 Multivariate Gaussian

多元高斯分布记为 N(μ,Σ),其中:

  • μRd 是均值向量
  • ΣRd×d 是协方差矩阵

概率密度函数:

p(x;μ,Σ)=1(2π)d/2|Σ|1/2exp(12(xμ)TΣ1(xμ))

其中最关键的量是 Mahalanobis distance

(xμ)TΣ1(xμ)

它衡量样本 x 到均值 μ 的"协方差归一化距离"。当 Σ=I 时退化为欧氏距离 xμ22

2.3 Prediction

训练得到 ϕ,μ0,μ1,Σ 后,对新样本 x 计算:

p(y=1|x)=p(x|y=1)ϕp(x|y=1)ϕ+p(x|y=0)(1ϕ)

预测规则:

y^=argmaxyp(x|y)p(y)

p(x|y=1)ϕ>p(x|y=0)(1ϕ) 则预测为 1,否则预测为 0。

2.4 GDA vs Logistic Regression

在 GDA 的假设下,可以推导出后验概率具有 sigmoid 形式:

p(y=1|x)=11+exp(θTx)

因此 GDA 和 Logistic Regression 的决策边界都是线性的。但二者并不等价:

模型 学什么 假设强度 特点
Logistic Regression 直接学 p(y|x) 较弱 MLE on p(y(i)|x(i))
GDA p(x|y)p(y) 更强(假设 Gaussian) MLE on p(x(i),y(i))

结论:

  • 若 Gaussian 假设成立,GDA 数据效率更高,能更快收敛到好的分类器
  • 若 Gaussian 假设不成立,Logistic Regression 更 robust
  • 实践中数据量足够大时,Logistic Regression 通常是更安全的选择

3. Naive Bayes

3.1 Motivation & Assumption

GDA 适合连续特征。Naive Bayes 适合离散特征,常用于文本分类(spam classification、sentiment analysis、document classification)。

Naive Bayes 也是生成式模型,建模 p(x|y)p(y),但它做了一个强假设:

给定类别 y 后,各特征 xj 条件独立。

即 Naive Bayes (conditional independence) assumption:

p(x1,x2,,xn|y)=j=1np(xj|y)

“Naive” 的含义:现实中特征通常不独立,但这个假设极大简化了建模和计算。

3.2 Prediction Formula

由 Bayes rule 和条件独立假设:

p(y|x)p(y)j=1np(xj|y)

分类时:

y^=argmaxyp(y)j=1np(xj|y)

实际计算取 log 避免下溢:

y^=argmaxy[logp(y)+j=1nlogp(xj|y)]

3.3 Parameter Estimation

以二分类、离散特征为例,使用 MLE(本质上就是数频率)。

类别先验 ϕy=P(y=1)

ϕy=i=1m1{y(i)=1}m

特征条件概率 ϕj|y=1=P(xj=1|y=1)

ϕj|y=1=i=1m1{xj(i)=1y(i)=1}i=1m1{y(i)=1}

类似地,ϕj|y=0y=0 的样本中统计即可。

3.4 Laplace Smoothing

为什么需要平滑? 若某个词在训练集中从未在一类中出现,P(word=k|y=c)=0,则整篇文档的概率会因为连乘变为 0。训练集中没出现不代表真实概率为 0。

对一个取 k 个值的离散变量,原 MLE 为:

ϕj=i=1m1{z(i)=j}m

Laplace smoothing 给每个类别"假装多出现一次":

ϕj=1+i=1m1{z(i)=j}m+k

4. Event Models for Text Classification

核心问题:一篇文档如何表示成特征?有两种常见思路。

4.1 Multi-variate Bernoulli Event Model

只关心某个词是否出现过。特征是二值向量 xj{0,1}xj=1 表示词 j 在文档中出现过。此模型忽略词频——出现 1 次和 10 次等价。

4.2 Multinomial Event Model

关心文档中每个位置出现了哪个词(等价于关心词频)。设文档长度 ni,每个位置的词来自词表 {1,2,,|V|}

模型假设:

p(x|y)=j=1nip(xj|y)

分类时(取 log):

y^=argmaxy[logp(y)+j=1nilogp(xj|y)]

Multinomial 模型通常比 Bernoulli 更适合文本分类。

4.3 Parameter Estimation

对于类别 y=c 下词 k 的概率 ϕk|y=c=P(word=k|y=c),加入 Laplace smoothing 后:

ϕk|y=c=1+i=1mj=1ni1{xj(i)=ky(i)=c}|V|+i=1m1{y(i)=c}ni
  • 分子:类别 c 的所有文档中词 k 出现次数 + 1
  • 分母:类别 c 的所有文档的总词数 + 词表大小 |V|