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) 对所有类别相同,因此:

arg⁡maxyp(y|x)=arg⁡maxyp(x|y)p(y)

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

2. Gaussian Discriminant Analysis (GDA)

2.1 GDA Model

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

y∼Bernoulli(ϕ)x|y=0∼N(μ0,Σ)x|y=1∼N(μ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^=arg⁡maxyp(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^=arg⁡maxyp(y)∏j=1np(xj|y)

实际计算取 log 避免下溢:

y^=arg⁡maxy[log⁡p(y)+∑j=1nlog⁡p(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)=1∧y(i)=1}∑i=1m1{y(i)=1}

类似地,ϕj|y=0 在 y=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^=arg⁡maxy[log⁡p(y)+∑j=1nilog⁡p(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=1m∑j=1ni1{xj(i)=k∧y(i)=c}|V|+∑i=1m1{y(i)=c}⋅ni
  • 分子:类别 c 的所有文档中词 k 出现次数 + 1
  • 分母:类别 c 的所有文档的总词数 + 词表大小 |V|