从贝叶斯分类到logistic regression
笔者注:本文是台湾李宏毅教授机器学习第四章的学习笔记,其中大部分为数学推导。
第四章主要讲分类问题。给定一个输入 x x x,目的是寻找一个function,使得当该function作用于 x x x 时,能够输出x所属的类别。
问题描述
我们首先考虑一个二分类问题,即
x
x
x 要么属于 class
C
1
C_1
C1,要么属于class
C
2
C_2
C2,设
P
P
P 表示概率,那么一个理所应当的分类效果为,把
x
x
x 分类到所属概率最大的那一类。用数学公式表示为:
if
P
(
C
1
∣
x
)
>
P
(
C
2
∣
x
)
,
then
x
→
C
1
else
P
(
C
1
∣
x
)
<
P
(
C
2
∣
x
)
,
then
x
→
C
2
\text{if} \quad P(C_1|x) > P(C_2|x) , \text{then} \quad x\rightarrow C_1 \\ \text{else} \quad P(C_1|x) < P(C_2|x) , \text{then} \quad x\rightarrow C_2
ifP(C1∣x)>P(C2∣x),thenx→C1elseP(C1∣x)<P(C2∣x),thenx→C2
当 P ( C 1 ∣ x ) = P ( C 2 ∣ x ) P(C_1|x) = P(C_2|x) P(C1∣x)=P(C2∣x) 时,可以分成任何一个类别。当然,这并不是一个好的分类器。
然而,在实际应用中,
P
(
C
1
∣
x
)
P(C_1|x)
P(C1∣x) 和
P
(
C
2
∣
x
)
P(C_2|x)
P(C2∣x) 通常是未知的,需要通过一定的数学运算求解,这里应用Bayes Rule和全概率公式,有
P
(
C
i
∣
x
)
=
P
(
x
∣
C
i
)
P
(
C
i
)
P
(
x
)
=
P
(
x
∣
C
i
)
P
(
C
i
)
∑
i
P
(
x
∣
C
i
)
P
(
C
i
)
P(C_i|x) = \frac{P(x|C_i)P(C_i)}{P(x)} = \frac{P(x|C_i)P(C_i)}{\sum_{i}P(x|C_i)P(C_i)}
P(Ci∣x)=P(x)P(x∣Ci)P(Ci)=∑iP(x∣Ci)P(Ci)P(x∣Ci)P(Ci)
对于二分类任务,有
P
(
C
1
∣
x
)
=
P
(
x
∣
C
1
)
P
(
C
1
)
P
(
x
∣
C
1
)
P
(
C
1
)
+
P
(
x
∣
C
2
)
P
(
C
2
)
P
(
C
2
∣
x
)
=
P
(
x
∣
C
2
)
P
(
C
2
)
P
(
x
∣
C
1
)
P
(
C
1
)
+
P
(
x
∣
C
2
)
P
(
C
2
)
P(C_1|x) = \frac{P(x|C_1)P(C_1)}{P(x|C_1)P(C_1)+P(x|C_2)P(C_2)} \\ P(C_2|x) = \frac{P(x|C_2)P(C_2)}{P(x|C_1)P(C_1)+P(x|C_2)P(C_2)}
P(C1∣x)=P(x∣C1)P(C1)+P(x∣C2)P(C2)P(x∣C1)P(C1)P(C2∣x)=P(x∣C1)P(C1)+P(x∣C2)P(C2)P(x∣C2)P(C2)
因此,只要知道
P
(
C
1
)
、
P
(
C
2
)
、
P
(
x
∣
C
1
)
、
P
(
x
∣
C
2
)
P(C_1)、P(C_2)、P(x|C_1)、P(x|C_2)
P(C1)、P(C2)、P(x∣C1)、P(x∣C2)这四个概率值即可实现分类。
先验概率
上式中,
P
(
C
1
)
、
P
(
C
2
)
P(C_1)、P(C_2)
P(C1)、P(C2) 称为先验概率,即可以根据以往经验和分析,在实验前就可以得到的概率。例如,对于猫和狗的图片二分类问题,
C
1
、
C
2
C_1、C_2
C1、C2 分别代表图片集中分类成猫和狗的概率,那么,可以通过计算训练集中猫和狗的数量来近似得到先验概率:
P
(
C
1
)
=
N
1
N
t
o
t
a
l
P
(
C
2
)
=
N
2
N
t
o
t
a
l
P(C_1) = \frac{N_{1}}{N_{total}} \\ P(C_2) = \frac{N_{2}}{N_{total}}
P(C1)=NtotalN1P(C2)=NtotalN2
条件概率
P
(
x
∣
C
1
)
、
P
(
x
∣
C
2
)
P(x|C_1)、P(x|C_2)
P(x∣C1)、P(x∣C2) 为条件概率,表述为,已知输入特征
x
x
x,给定分类集合
C
1
、
C
2
C_1 、C_2
C1、C2,
x
x
x 在某种分类种出现的可能性(概率)为多少。因此我们首先需要知道分类
C
1
、
C
2
C_1、C_2
C1、C2 的概率分布函数,然后将 特征
x
x
x 带入即可得到概率值。
假设该分布函数符合高斯分布。属于类别
C
1
C_1
C1 中的特征都是从
C
1
C_1
C1 的高斯分布中采样而得到的,属于类别
C
2
C_2
C2 中的特征都是从
C
2
C_2
C2 的高斯分布中采样而得到的。要得到一个未知向量
x
x
x 输入时的条件概率,首先就要求出分类
C
1
、
C
2
C_1、C_2
C1、C2 所服从的概率分布。假设多维高斯分布表达如下:
f
μ
,
Σ
(
x
)
=
1
(
2
π
)
D
/
2
1
∣
Σ
∣
1
/
2
exp
{
−
1
2
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
}
f_{\mu, \Sigma}(x)=\frac{1}{(2 \pi)^{D / 2}} \frac{1}{|\Sigma|^{1 / 2}} \exp \left\{-\frac{1}{2}(x-\mu)^{T} \Sigma^{-1}(x-\mu)\right\}
fμ,Σ(x)=(2π)D/21∣Σ∣1/21exp{−21(x−μ)TΣ−1(x−μ)}
至于为什么使用高斯分布,如果我用其他的分布你也会问同样的问题。You can always use the distribution you like.
其中,
μ
\mu
μ 和
Σ
\Sigma
Σ 分别代表均值向量和协方差矩阵。要求出对应于每类
C
i
C_i
Ci 的概率分布,也就是求出
μ
i
\mu_i
μi 和
Σ
i
\Sigma_i
Σi,此时问题变成参数估计:已知数据集
X
X
X,求该集合背后最佳的高斯分布的均值和协方差。
最大似然法通常被用来求解相关问题,通过使得似然函数最大的参数被认为是最好的参数,似然函数定义如下:
L
(
μ
,
Σ
)
=
f
μ
,
Σ
(
x
1
)
f
μ
,
Σ
(
x
2
)
f
μ
,
Σ
(
x
3
)
…
…
f
μ
,
Σ
(
x
N
i
)
L(\mu, \Sigma)=f_{\mu, \Sigma}\left(x^{1}\right) f_{\mu, \Sigma}\left(x^{2}\right) f_{\mu, \Sigma}\left(x^{3}\right) \ldots \ldots f_{\mu, \Sigma}\left(x^{N_i}\right)
L(μ,Σ)=fμ,Σ(x1)fμ,Σ(x2)fμ,Σ(x3)……fμ,Σ(xNi)
其中,
f
(
)
f()
f() 为分布函数,
N
i
N_i
Ni 为属于 class
C
i
C_i
Ci的训练样本个数。因此最佳的
μ
\mu
μ 和
Σ
\Sigma
Σ 为:
μ
∗
,
Σ
∗
=
arg
max
μ
,
Σ
L
(
μ
,
Σ
)
\mu^{*}, \Sigma^{*}=\arg \max _{\mu, \Sigma} L(\mu, \Sigma)
μ∗,Σ∗=argμ,ΣmaxL(μ,Σ)
求解得到,
μ
i
∗
=
1
N
i
∑
n
=
1
N
1
x
n
Σ
i
∗
=
1
N
i
∑
n
=
1
N
i
(
x
n
−
μ
∗
)
(
x
n
−
μ
∗
)
T
\mu^{*}_i=\frac{1}{N_i} \sum_{n=1}^{N_1} x^{n} \\ \Sigma^{*}_i=\frac{1}{N_i} \sum_{n=1}^{N_i}\left(x^{n}-\mu^{*}\right)\left(x^{n}-\mu^{*}\right)^{T}
μi∗=Ni1n=1∑N1xnΣi∗=Ni1n=1∑Ni(xn−μ∗)(xn−μ∗)T
其中,
μ
i
∗
、
Σ
i
∗
\mu^{*}_i、\Sigma^{*}_i
μi∗、Σi∗ 为第
C
i
C_i
Ci 类的均值和协方差,
x
n
x ^n
xn 代表第
n
n
n 个输入样本。
通过以上公式求出各种分类的分布函数
f
i
(
μ
f_i(\mu
fi(μ ,
Σ
)
\Sigma)
Σ) 后,带入未知向量
x
x
x,求出
P
(
x
∣
C
1
)
、
P
(
x
∣
C
2
)
P(x|C_1)、P(x|C_2)
P(x∣C1)、P(x∣C2) ,最终即可得到
P
(
C
1
∣
x
)
,
P
(
C
2
∣
x
)
P(C_1|x) , P(C_2|x)
P(C1∣x),P(C2∣x),判断大小之后完成分类。
如果为每个类别都使用完全不同的高斯分布,所得到的分类结果并不尽人意。通常可以修改此模型,使得每个类别的高斯分布的协方差矩阵相同,改变的只是均值。这么做的好处是,一方面减少了参数的个数,一方面提高了分类准确率。
由于是通过生成分布进行分类,该方法被称为 Generative Model.
logistic regression
回到贝叶斯分类,根据以下公式,有:
P
(
C
1
∣
x
)
=
P
(
x
∣
C
1
)
P
(
C
1
)
P
(
x
∣
C
1
)
P
(
C
1
)
+
P
(
x
∣
C
2
)
P
(
C
2
)
=
1
1
+
P
(
x
∣
C
2
)
P
(
C
2
)
P
(
x
∣
C
1
)
P
(
C
1
)
=
1
1
+
exp
(
−
z
)
=
σ
(
z
)
\begin{aligned} &P\left(C_{1} \mid x\right)=\frac{P\left(x \mid C_{1}\right) P\left(C_{1}\right)}{P\left(x \mid C_{1}\right) P\left(C_{1}\right)+P\left(x \mid C_{2}\right) P\left(C_{2}\right)} \\ &=\frac{1}{1+\frac{P\left(x \mid C_{2}\right) P\left(C_{2}\right)}{P\left(x \mid C_{1}\right) P\left(C_{1}\right)}}=\frac{1}{1+\exp (-z)}=\sigma(z) \end{aligned}
P(C1∣x)=P(x∣C1)P(C1)+P(x∣C2)P(C2)P(x∣C1)P(C1)=1+P(x∣C1)P(C1)P(x∣C2)P(C2)1=1+exp(−z)1=σ(z)
其中,
z
=
ln
P
(
x
∣
C
1
)
P
(
C
1
)
P
(
x
∣
C
2
)
P
(
C
2
)
z=\ln \frac{P\left(x \mid C_{1}\right) P\left(C_{1}\right)}{P\left(x \mid C_{2}\right) P\left(C_{2}\right)}
z=lnP(x∣C2)P(C2)P(x∣C1)P(C1)
σ
(
)
\sigma()
σ() 为 sigmoid 函数。对
z
z
z 进行化简,
z
=
ln
P
(
x
∣
C
1
)
P
(
x
∣
C
2
)
+
ln
P
(
C
1
)
P
(
C
2
)
z=\ln \frac{P\left(x \mid C_{1}\right)}{P\left(x \mid C_{2}\right)}+\ln \frac{P\left(C_{1}\right)}{P\left(C_{2}\right)}
z=lnP(x∣C2)P(x∣C1)+lnP(C2)P(C1)
其中,
ln
P
(
C
1
)
P
(
C
2
)
=
N
1
N
1
+
N
2
N
2
N
1
+
N
2
=
N
1
N
2
\ln \frac{P\left(C_{1}\right)}{P\left(C_{2}\right)} = \frac{\frac{N_{1}}{N_{1}+N_{2}}}{\frac{N_{2}}{N_{1}+N_{2}}}=\frac{N_{1}}{N_{2}}
lnP(C2)P(C1)=N1+N2N2N1+N2N1=N2N1 ,
P
(
x
∣
C
1
)
、
P
(
x
∣
C
2
)
P\left(x \mid C_{1}\right)、P\left(x \mid C_{2}\right)
P(x∣C1)、P(x∣C2) 分别为高斯分布,
P
(
x
∣
C
1
)
=
1
(
2
π
)
D
/
2
1
∣
Σ
1
∣
1
/
2
exp
{
−
1
2
(
x
−
μ
1
)
T
(
Σ
1
)
−
1
(
x
−
μ
1
)
}
P
(
x
∣
C
2
)
=
1
(
2
π
)
D
/
2
1
∣
Σ
2
∣
1
/
2
exp
{
−
1
2
(
x
−
μ
2
)
T
(
Σ
2
)
−
1
(
x
−
μ
2
)
}
\begin{aligned} &P\left(x \mid C_{1}\right)=\frac{1}{(2 \pi)^{D / 2}} \frac{1}{\left|\Sigma^{1}\right|^{1 / 2}} \exp \left\{-\frac{1}{2}\left(x-\mu^{1}\right)^{T}\left(\Sigma^{1}\right)^{-1}\left(x-\mu^{1}\right)\right\} \\ &P\left(x \mid C_{2}\right)=\frac{1}{(2 \pi)^{D / 2}} \frac{1}{\left|\Sigma^{2}\right|^{1 / 2}} \exp \left\{-\frac{1}{2}\left(x-\mu^{2}\right)^{T}\left(\Sigma^{2}\right)^{-1}\left(x-\mu^{2}\right)\right\} \end{aligned}
P(x∣C1)=(2π)D/21∣Σ1∣1/21exp{−21(x−μ1)T(Σ1)−1(x−μ1)}P(x∣C2)=(2π)D/21∣Σ2∣1/21exp{−21(x−μ2)T(Σ2)−1(x−μ2)}
带入化简,有
z
=
ln
P
(
x
∣
C
1
)
P
(
x
∣
C
2
)
+
ln
P
(
C
1
)
P
(
C
2
)
=
∣
Σ
2
∣
1
/
2
∣
Σ
1
∣
1
/
2
−
1
2
[
(
x
−
μ
1
)
T
(
Σ
1
)
−
1
(
x
−
μ
1
)
−
(
x
−
μ
2
)
T
(
Σ
2
)
−
1
(
x
−
μ
2
)
]
+
ln
N
1
N
2
=
ln
∣
Σ
2
∣
1
/
2
∣
Σ
1
∣
1
/
2
−
1
2
x
T
(
Σ
1
)
−
1
x
+
(
μ
1
)
T
(
Σ
1
)
−
1
x
−
1
2
(
μ
1
)
T
(
Σ
1
)
−
1
μ
1
+
1
2
x
T
(
Σ
2
)
−
1
x
−
(
μ
2
)
T
(
Σ
2
)
−
1
x
+
1
2
(
μ
2
)
T
(
Σ
2
)
−
1
μ
2
+
ln
N
1
N
2
\begin{aligned} z &= \ln \frac{P\left(x \mid C_{1}\right)}{P\left(x \mid C_{2}\right)}+\ln \frac{P\left(C_{1}\right)}{P\left(C_{2}\right)} \\ & = \frac{\left|\Sigma^{2}\right|^{1 / 2}}{\left|\Sigma^{1}\right|^{1 / 2}}-\frac{1}{2}\left[\left(x-\mu^{1}\right)^{T}\left(\Sigma^{1}\right)^{-1}\left(x-\mu^{1}\right)-\left(x-\mu^{2}\right)^{T}\left(\Sigma^{2}\right)^{-1}\left(x-\mu^{2}\right)\right] + \ln \frac{N_{1}}{N_{2}} \\ & = \begin{aligned} &\ln \frac{\left|\Sigma^{2}\right|^{1 / 2}}{\left|\Sigma^{1}\right|^{1 / 2}}-\frac{1}{2} x^{T}\left(\Sigma^{1}\right)^{-1} x+\left(\mu^{1}\right)^{T}\left(\Sigma^{1}\right)^{-1} x-\frac{1}{2}\left(\mu^{1}\right)^{T}\left(\Sigma^{1}\right)^{-1} \mu^{1} \\ &+\frac{1}{2} x^{T}\left(\Sigma^{2}\right)^{-1} x-\left(\mu^{2}\right)^{T}\left(\Sigma^{2}\right)^{-1} x+\frac{1}{2}\left(\mu^{2}\right)^{T}\left(\Sigma^{2}\right)^{-1} \mu^{2}+\ln \frac{N_{1}}{N_{2}} \end{aligned} \end{aligned}
z=lnP(x∣C2)P(x∣C1)+lnP(C2)P(C1)=∣Σ1∣1/2∣∣Σ2∣∣1/2−21[(x−μ1)T(Σ1)−1(x−μ1)−(x−μ2)T(Σ2)−1(x−μ2)]+lnN2N1=ln∣Σ1∣1/2∣∣Σ2∣∣1/2−21xT(Σ1)−1x+(μ1)T(Σ1)−1x−21(μ1)T(Σ1)−1μ1+21xT(Σ2)−1x−(μ2)T(Σ2)−1x+21(μ2)T(Σ2)−1μ2+lnN2N1
不妨假设
Σ
1
=
Σ
2
=
Σ
\Sigma_{1}=\Sigma_{2}=\Sigma
Σ1=Σ2=Σ ,则,
z
=
(
μ
1
−
μ
2
)
T
Σ
−
1
x
−
1
2
(
μ
1
)
T
Σ
−
1
μ
1
+
1
2
(
μ
2
)
T
Σ
−
1
μ
2
+
ln
N
1
N
2
z=\left(\mu^{1}-\mu^{2}\right)^{T} \Sigma^{-1} x-\frac{1}{2}\left(\mu^{1}\right)^{T} \Sigma^{-1} \mu^{1}+\frac{1}{2}\left(\mu^{2}\right)^{T} \Sigma^{-1} \mu^{2}+\ln \frac{N_{1}}{N_{2}}
z=(μ1−μ2)TΣ−1x−21(μ1)TΣ−1μ1+21(μ2)TΣ−1μ2+lnN2N1
其中,令
w
T
=
(
μ
1
−
μ
2
)
T
Σ
−
1
b
=
−
1
2
(
μ
1
)
T
Σ
−
1
μ
1
+
1
2
(
μ
2
)
T
Σ
−
1
μ
2
+
ln
N
1
N
2
w^T = \left(\mu^{1}-\mu^{2}\right)^{T} \Sigma^{-1} \\ b = -\frac{1}{2}\left(\mu^{1}\right)^{T} \Sigma^{-1} \mu^{1}+\frac{1}{2}\left(\mu^{2}\right)^{T} \Sigma^{-1} \mu^{2}+\ln \frac{N_{1}}{N_{2}}
wT=(μ1−μ2)TΣ−1b=−21(μ1)TΣ−1μ1+21(μ2)TΣ−1μ2+lnN2N1
z
z
z 可以重新写成
z
=
w
T
x
+
b
z = w^T x + b
z=wTx+b。即:
P
(
C
1
∣
x
)
=
σ
(
w
⋅
x
+
b
)
P\left(C_{1} \mid x\right)=\sigma(w \cdot x+b)
P(C1∣x)=σ(w⋅x+b)
此时可以通过使用 gradient descent 方法,直接找到
w
w
w 和
b
b
b 。
以上方法被称为 Discriminative Model.