- 引言
- 回顾:软分类思想
- 概率判别模型
- 概率生成模型
- 高斯判别分析
- 场景描述
- 策略构建
上一节介绍了线性分类中概率判别模型的经典方法——逻辑回归(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)的概率分布选择 表示如下:
因此,分类标签的先验概率 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)-模型定义