机器学习笔记之线性分类——高斯判别分析(一)模型思路构建
引言
上一节介绍了线性分类中概率判别模型的经典方法——逻辑回归(Logistic Regression),本节将介绍线性分类中概率生成模型的经典方法——高斯判别分析(Gaussian Discriminant Aanlysis)。
回顾:软分类思想
从软分类角度观察线性分类:以二分类为例,假设样本数据以及样本标签分布表示如下:
X
=
(
x
(
1
)
,
x
(
2
)
,
⋯
,
x
(
N
)
)
N
×
p
T
Y
=
(
y
(
1
)
,
y
(
2
)
,
⋯
,
y
(
N
)
)
N
×
1
T
y
(
i
)
∈
{
0
,
1
}
\mathcal X = (x^{(1)},x^{(2)},\cdots,x^{(N)})^{T}_{N \times p} \\ \mathcal Y = (y^{(1)},y^{(2)},\cdots,y^{(N)})^{T}_{N \times 1} \\ y^{(i)} \in \{0,1\}
X=(x(1),x(2),⋯,x(N))N×pTY=(y(1),y(2),⋯,y(N))N×1Ty(i)∈{0,1}
软分类的朴素思想 是:给定样本
X
\mathcal X
X条件下,判别后验概率
P
(
Y
∣
X
)
P(\mathcal Y \mid \mathcal X)
P(Y∣X)之间的大小关系。即:
P
(
Y
p
r
e
d
=
0
∣
X
)
=
?
P
(
Y
p
r
e
d
=
1
∣
X
)
P(\mathcal Y_{pred} = 0 \mid \mathcal X)\overset{\text{?}}{=}P(\mathcal Y_{pred} = 1 \mid \mathcal X)
P(Ypred=0∣X)=?P(Ypred=1∣X)
已知一个样本
x
(
i
)
x^{(i)}
x(i),通过某种方法得到了
P
(
y
p
r
e
d
(
i
)
=
0
∣
x
(
i
)
)
P(y_{pred}^{(i)}=0 \mid x^{(i)})
P(ypred(i)=0∣x(i))和
P
(
y
p
r
e
d
(
i
)
=
1
∣
x
(
i
)
)
P(y_{pred}^{(i)} =1 \mid x^{(i)})
P(ypred(i)=1∣x(i))之间大小关系:
P
(
y
p
r
e
d
(
i
)
=
0
∣
x
(
i
)
)
>
P
(
y
p
r
e
d
(
i
)
=
1
∣
x
(
i
)
)
P(y_{pred}^{(i)}=0 \mid x^{(i)}) > P(y_{pred}^{(i)} =1 \mid x^{(i)})
P(ypred(i)=0∣x(i))>P(ypred(i)=1∣x(i))
我们将基于样本
x
(
i
)
x^{(i)}
x(i)的预测标签结果
y
p
r
e
d
(
i
)
y_{pred}^{(i)}
ypred(i)判别为
0
0
0,反之同理。
基于上述思想,为了得到各后验概率间的大小关系,具体分为两种方法:概率判别模型、概率生成模型。
概率判别模型
概率判别模型的 朴素思想 是:既然要比较各后验概率间大小关系,那么干脆直接将各后验概率具体值求出来,然后直接比较即可。最典型的操作是逻辑回归(Logistic Regression)。
逻辑回归求解后验概率
P
(
y
(
i
)
∣
x
(
i
)
)
P(y^{(i)} \mid x^{(i)})
P(y(i)∣x(i))的方法是 利用模型进行求解。基于二分类的逻辑回归模型表示如下:
偏置项
b
b
b省略,融合进‘权重信息’
W
\mathcal W
W中。
P
(
y
p
r
e
d
(
i
)
∣
x
(
i
)
)
=
s
i
g
m
o
i
d
(
W
T
x
(
i
)
)
=
1
1
+
e
−
W
T
x
(
i
)
P(y_{pred}^{(i)} \mid x^{(i)}) = sigmoid(\mathcal W^{T}x^{(i)}) = \frac{1}{1 + e^-{\mathcal W^{T}x^{(i)}}}
P(ypred(i)∣x(i))=sigmoid(WTx(i))=1+e−WTx(i)1
对应两种后验概率表示如下:
{
P
(
y
p
r
e
d
(
i
)
=
1
∣
x
(
i
)
)
=
1
1
+
e
−
W
T
x
(
i
)
P
(
y
p
r
e
d
(
i
)
=
0
∣
x
(
i
)
)
=
1
−
1
1
+
e
−
W
T
x
(
i
)
=
e
−
W
T
x
(
i
)
1
+
e
−
W
T
x
(
i
)
\begin{cases} P(y_{pred}^{(i)} =1 \mid x^{(i)}) = \frac{1}{1 + e^-{\mathcal W^{T}x^{(i)}}} \\ P(y_{pred}^{(i)} =0 \mid x^{(i)}) = 1 - \frac{1}{1 + e^-{\mathcal W^{T}x^{(i)}}} = \frac{e^{-\mathcal W^{T}x^{(i)}}}{1 + e^{-\mathcal W^{T}x^{(i)}}} \end{cases}
⎩
⎨
⎧P(ypred(i)=1∣x(i))=1+e−WTx(i)1P(ypred(i)=0∣x(i))=1−1+e−WTx(i)1=1+e−WTx(i)e−WTx(i)
最终对后验概率
P
(
y
p
r
e
d
(
i
)
∣
x
(
i
)
)
P(y_{pred}^{(i)} \mid x^{(i)})
P(ypred(i)∣x(i))进行极大似然估计,等价于最小化交叉熵方法,最终求解最优模型参数
W
\mathcal W
W。
要重点关注的是:最终求解的参数是模型参数。
概率生成模型
概率生成模型的 朴素思想 是:相比于概率判别模型直接求解 P ( y ( i ) ∣ x ( i ) ) P(y^{(i)} \mid x^{(i)}) P(y(i)∣x(i)),由于最终目标是判断后验概率的大小关系,因此不需要将 P ( y ( i ) ∣ x ( i ) ) P(y^{(i)} \mid x^{(i)}) P(y(i)∣x(i))求解出来也能够判别出大小关系。
概率生成模型实现判别任务的核心依据:贝叶斯定理:
P
(
Y
p
r
e
d
=
i
∣
X
)
=
P
(
X
∣
Y
=
i
)
P
(
Y
=
i
)
P
(
X
)
(
i
=
0
,
1
)
P(\mathcal Y_{pred} = i \mid \mathcal X) = \frac{P(\mathcal X \mid \mathcal Y = i)P(\mathcal Y=i)}{P(\mathcal X)} \quad (i=0,1)
P(Ypred=i∣X)=P(X)P(X∣Y=i)P(Y=i)(i=0,1)
其中分母
P
(
X
)
P(\mathcal X)
P(X)是一个关于样本集合
X
\mathcal X
X的边缘概率分布:
P
(
X
)
=
∫
Y
P
(
X
∣
Y
)
P
(
Y
)
d
Y
P(\mathcal X) = \int_{\mathcal Y}P(\mathcal X \mid \mathcal Y)P(\mathcal Y)d\mathcal Y
P(X)=∫YP(X∣Y)P(Y)dY
由于
P
(
X
)
P(\mathcal X)
P(X)和
Y
\mathcal Y
Y无关,因此将
P
(
X
)
P(\mathcal X)
P(X)视为常数;从而可以将
P
(
Y
p
r
e
d
=
i
∣
X
)
P(\mathcal Y_{pred}=i \mid \mathcal X)
P(Ypred=i∣X)表示如下:
P
(
Y
p
r
e
d
=
i
∣
X
)
∝
P
(
X
∣
Y
=
i
)
P
(
Y
=
i
)
(
i
=
0
,
1
)
P(\mathcal Y_{pred}=i \mid \mathcal X) \propto P(\mathcal X \mid \mathcal Y=i)P(\mathcal Y=i) \quad (i=0,1)
P(Ypred=i∣X)∝P(X∣Y=i)P(Y=i)(i=0,1)
因而根据概率生成模型的朴素思想,对结果的比较方式进行替换:
P
(
Y
p
r
e
d
=
0
∣
X
)
=
?
P
(
Y
p
r
e
d
=
1
∣
X
)
→
P
(
X
∣
Y
=
0
)
P
(
Y
=
0
)
=
?
P
(
X
∣
Y
=
1
)
P
(
Y
=
1
)
P(\mathcal Y_{pred} = 0 \mid \mathcal X)\overset{\text{?}}{=}P(\mathcal Y_{pred} = 1 \mid \mathcal X) \\ \to P(\mathcal X \mid \mathcal Y=0)P(\mathcal Y = 0) \overset{\text{?}}{=} P(\mathcal X \mid \mathcal Y=1)P(\mathcal Y = 1)
P(Ypred=0∣X)=?P(Ypred=1∣X)→P(X∣Y=0)P(Y=0)=?P(X∣Y=1)P(Y=1)
观察等式两边的任意一项:
P
(
Y
=
0
)
P(\mathcal Y = 0)
P(Y=0)表示关于标签数据结果为
0
0
0的先验概率分布;
P
(
X
∣
Y
=
0
)
P(\mathcal X \mid \mathcal Y=0)
P(X∣Y=0)表示标签数据确定的情况下,样本
X
\mathcal X
X的概率分布,即似然的概率分布。
根据概率生成模型的朴素思想,我们将通过求解似然、先验分布的概率分布参数来比较后验概率分布的大小。
通过比较发现:
概率判别模型与概率生成模型的核心区别:
- 概率判别模型求解的是模型参数;
- 概率生成模型求解的是概率分布参数;
高斯判别分析
高斯判别分析就是基于概率生成模型的朴素思想,对似然 P ( X ∣ Y ) P(\mathcal X \mid \mathcal Y) P(X∣Y)、先验 P ( Y ) P(\mathcal Y) P(Y)进行一系列假设,从而通过对似然、先验概率进行求解来替代后验概率 P ( Y ∣ X ) P(\mathcal Y \mid \mathcal X) P(Y∣X)进行比较。
场景描述
仍然以二分类为例,数据集合
D
a
t
a
=
{
(
x
(
i
)
,
y
(
i
)
)
}
i
=
1
,
2
,
⋯
,
N
Data = \{(x^{(i)},y^{(i)})\}_{i=1,2,\cdots,N}
Data={(x(i),y(i))}i=1,2,⋯,N;其中任意
x
(
i
)
x^{(i)}
x(i)是
p
p
p维向量,对应
y
(
i
)
y^{(i)}
y(i)是一个表示分类标签的标量:
x
(
i
)
=
(
x
1
(
i
)
,
x
2
(
i
)
,
⋯
,
x
p
(
i
)
)
T
y
(
i
)
∈
{
0
,
1
}
x^{(i)} = (x_1^{(i)},x_2^{(i)},\cdots,x_p^{(i)})^{T} \\ y^{(i)} \in \{0,1\}
x(i)=(x1(i),x2(i),⋯,xp(i))Ty(i)∈{0,1}
策略构建
由于是二分类,我们不妨设分类标签的先验概率服从伯努利分布。即:
这个‘伯努利分布’仅因为我们假设的是二分类而设定的,如果是多分类,也可以设置为categorical分布。
Y
∼
B
e
r
n
o
u
l
l
i
(
ϕ
)
\mathcal Y \sim Bernoulli(\phi)
Y∼Bernoulli(ϕ)
其中
ϕ
\phi
ϕ表示选择各类标签的概率。任意分类标签
y
(
i
)
(
i
=
1
,
2
,
⋯
,
N
)
y^{(i)}(i=1,2,\cdots,N)
y(i)(i=1,2,⋯,N)的概率分布选择 表示如下:
y ( i ) y^{(i)} y(i) | 1 | 0 |
---|---|---|
P P P | ϕ \phi ϕ | 1 − ϕ 1 - \phi 1−ϕ |
因此,分类标签的先验概率
P
(
Y
)
P(\mathcal Y)
P(Y)的概率密度函数表示如下:
P
(
Y
)
=
ϕ
Y
(
1
−
ϕ
)
1
−
Y
P(\mathcal Y) = \phi^{\mathcal Y}(1- \phi)^{1- \mathcal Y}
P(Y)=ϕY(1−ϕ)1−Y
高斯判别分析的核心假设:
在分类标签的先验概率分布确定的条件下,我们设各标签对应的似然
P
(
X
∣
Y
=
0
)
,
P
(
X
∣
Y
=
1
)
P(\mathcal X \mid \mathcal Y = 0),P(\mathcal X \mid \mathcal Y = 1)
P(X∣Y=0),P(X∣Y=1)均 服从高斯分布,为了简化运算,假定两个高斯分布包含 相同的协方差信息。
该假设不同于‘先验分布假设’,该假设是’高斯判别分析‘的特有假设。
{
X
∣
Y
=
1
∼
N
(
μ
1
,
Σ
)
X
∣
Y
=
0
∼
N
(
μ
2
,
Σ
)
\begin{cases}\mathcal X \mid \mathcal Y=1 \sim \mathcal N(\mu_1,\Sigma) \\ \mathcal X \mid \mathcal Y =0 \sim \mathcal N(\mu_2,\Sigma)\end{cases}
{X∣Y=1∼N(μ1,Σ)X∣Y=0∼N(μ2,Σ)
将
P
(
X
∣
Y
)
P(\mathcal X \mid \mathcal Y)
P(X∣Y)的概率密度函数表示如下:
P
(
X
∣
Y
)
=
N
(
μ
1
,
Σ
)
Y
N
(
μ
2
,
Σ
)
1
−
Y
P(\mathcal X \mid \mathcal Y) = \mathcal N(\mu_1,\Sigma)^{\mathcal Y}\mathcal N(\mu_2,\Sigma)^{1- \mathcal Y}
P(X∣Y)=N(μ1,Σ)YN(μ2,Σ)1−Y
上述公式同逻辑回归中后验概率的处理方法,只是 合并上述两种似然情况的一种表达方式:
- 当 Y = 0 \mathcal Y = 0 Y=0时, P ( X ∣ Y ) = N ( μ 2 , Σ ) P(\mathcal X \mid \mathcal Y) = \mathcal N(\mu_2,\Sigma) P(X∣Y)=N(μ2,Σ);
- 当 Y = 1 \mathcal Y=1 Y=1时, P ( X ∣ Y ) = N ( μ 1 , Σ ) P(\mathcal X \mid \mathcal Y) = \mathcal N(\mu_1,\Sigma) P(X∣Y)=N(μ1,Σ);
至此,似然、先验概率分布均表达完毕。观察具体对哪些概率分布参数进行求解:
θ
=
{
μ
1
,
μ
2
,
Σ
,
ϕ
}
\theta = \left\{\mu_1,\mu_2,\Sigma,\phi\right\}
θ={μ1,μ2,Σ,ϕ}
对
P
(
X
,
Y
)
=
P
(
X
∣
Y
)
P
(
Y
)
P(\mathcal X,\mathcal Y) = P(\mathcal X \mid \mathcal Y)P(\mathcal Y)
P(X,Y)=P(X∣Y)P(Y)进行极大似然估计:
有人可能会问:既然已经引入了’先验概率‘
P ( Y ) P(\mathcal Y) P(Y),为什么依然是’极大似然估计‘(MLE),不应该是’最大后验概率估计‘(MAP)吗?
以下是个人理解:
在极大似然估计与最大后验概率估计中介绍过,最大后验概率估计可以理解为在极大似然估计的基础上,添加一个先验分布作为约束,但是该先验分布是 预先知道的,分布中没有任何未知量。
就像文中提到的投掷骰子的例子,我们让先验分布 P ( θ ) P(\theta) P(θ)服从一个高斯分布:
θ ∼ N ( μ = 0.5 , σ 2 = 0.01 ) \theta \sim \mathcal N(\mu=0.5,\sigma^2=0.01) θ∼N(μ=0.5,σ2=0.01)
但高斯判别分析的假设中,对于先验分布 P ( Y ) P(\mathcal Y) P(Y)中的 ϕ \phi ϕ同样是未知的,也是待求解的一部分。因此,与其说是极大似然估计,还不如说是极大联合概率分布估计。
极大似然估计表达如下:
为了方便计算,依然使用
log
\log
log似然
:
L
(
θ
)
=
log
∏
i
=
1
N
P
(
x
(
i
)
,
y
(
i
)
)
=
∑
i
=
1
N
log
[
P
(
x
(
i
)
∣
y
(
i
)
)
P
(
y
(
i
)
)
]
\begin{aligned}\mathcal L(\theta) & = \log \prod_{i=1}^N P(x^{(i)},y^{(i)}) \\ & = \sum_{i=1}^N \log\left[P(x^{(i)} \mid y^{(i)})P(y^{(i)})\right]\end{aligned}
L(θ)=logi=1∏NP(x(i),y(i))=i=1∑Nlog[P(x(i)∣y(i))P(y(i))]
其中
θ
=
{
μ
1
,
μ
2
,
Σ
,
ϕ
}
\theta =\{\mu_1,\mu_2,\Sigma,\phi\}
θ={μ1,μ2,Σ,ϕ},最优模型参数表示如下:
θ
^
=
arg
max
θ
L
(
θ
)
=
arg
max
θ
∑
i
=
1
N
log
[
P
(
x
(
i
)
∣
y
(
i
)
)
P
(
y
(
i
)
)
]
=
arg
max
θ
∑
i
=
1
N
[
log
P
(
x
(
i
)
∣
y
(
i
)
)
+
log
P
(
y
(
i
)
)
]
\begin{aligned}\hat {\theta} & = \mathop{\arg\max}\limits_{\theta} \mathcal L(\theta) \\ & = \mathop{\arg\max}\limits_{\theta} \sum_{i=1}^N \log\left[P(x^{(i)} \mid y^{(i)})P(y^{(i)})\right] \\ & = \mathop{\arg\max}\limits_{\theta} \sum_{i=1}^N \left[\log P(x^{(i)} \mid y^{(i)}) + \log P(y^{(i)})\right] \end{aligned}
θ^=θargmaxL(θ)=θargmaxi=1∑Nlog[P(x(i)∣y(i))P(y(i))]=θargmaxi=1∑N[logP(x(i)∣y(i))+logP(y(i))]
将对应概率密度函数代入上式:
θ
^
=
arg
max
θ
∑
i
=
1
N
{
log
[
N
(
μ
1
,
Σ
)
y
(
i
)
N
(
μ
2
,
Σ
)
1
−
y
(
i
)
]
+
log
[
ϕ
y
(
i
)
(
1
−
ϕ
)
1
−
y
(
i
)
]
}
\begin{aligned}\hat {\theta} & = \mathop{\arg\max}\limits_{\theta} \sum_{i=1}^N \left\{\log \left[\mathcal N(\mu_1,\Sigma)^{y^{(i)}} \mathcal N(\mu_2,\Sigma)^{1 - y^{(i)}}\right] + \log\left[\phi^{y^{(i)}}(1 - \phi)^{1 - y^{(i)}}\right]\right\} \\ \end{aligned}
θ^=θargmaxi=1∑N{log[N(μ1,Σ)y(i)N(μ2,Σ)1−y(i)]+log[ϕy(i)(1−ϕ)1−y(i)]}
为了方便对各参数求最优解,将
μ
1
,
μ
2
\mu_1,\mu_2
μ1,μ2参数分开,最终表示结果如下:
θ
^
=
arg
max
θ
∑
i
=
1
N
{
log
[
N
(
μ
1
,
Σ
)
y
(
i
)
]
+
log
[
N
(
μ
2
,
Σ
)
1
−
y
(
i
)
]
+
log
[
ϕ
y
(
i
)
(
1
−
ϕ
)
1
−
y
(
i
)
]
}
\hat {\theta} = \mathop{\arg\max}\limits_{\theta} \sum_{i=1}^N \left\{\log \left[\mathcal N(\mu_1,\Sigma)^{y^{(i)}}\right] + \log \left[\mathcal N(\mu_2,\Sigma)^{1 - y^{(i)}}\right] + \log\left[\phi^{y^{(i)}}(1 - \phi)^{1 - y^{(i)}}\right]\right\}
θ^=θargmaxi=1∑N{log[N(μ1,Σ)y(i)]+log[N(μ2,Σ)1−y(i)]+log[ϕy(i)(1−ϕ)1−y(i)]}
下一节将对 θ \theta θ中的各个参数求最优解。
相关参考:
机器学习-线性分类(6)-高斯判别分析(Gaussain Discriminant Analysis)-模型定义