文章目录
线性分类
线性回归模型不能直接用于分类任务,但仅需要加入一层非线性激活函数即可用于分类,分类方式大致可分为硬分类和软分类:
硬分类
直接输出对应类别,这类模型的代表为:
- 线性判别分析(Fisher 判别)
- 感知机
软分类
产生不同类别的概率,根据概率方法的不同分大致为两种:
- 生成式(根据贝叶斯定理先计算参数后验,再进行推断):高斯判别分析(GDA)和朴素贝叶斯(Naive Bayes)等为代表
- 判别式(直接对条件概率进行建模):Logistic 回归
感知机算法
激活函数
以二分类为例,将线性回归的结果映射到对应的二分类结果上,激活函数可表示为以下形式:
s
i
g
n
(
a
)
=
{
+
1
,
a
≥
0
−
1
,
a
<
0
sign(a)=\left\{\begin{matrix}+1,a\ge0\\ -1,a\lt0\end{matrix}\right.
sign(a)={+1,a≥0−1,a<0
损失函数
定义损失函数为错误分类的数目
I
{
y
i
w
T
x
i
<
0
}
\mathbf{I}\{y_iw^Tx_i<0\}
I{yiwTxi<0},比较直观的方式是使用指示函数,但是指示函数不可导,因此可以定义:
L
(
w
)
=
∑
x
i
∈
D
w
r
o
n
g
−
y
i
w
T
x
i
L(w)=\sum\limits_{x_i\in\mathcal{D}{wrong}}-y_iw^Tx_i
L(w)=xi∈Dwrong∑−yiwTxi
其中,
D
w
r
o
n
g
\mathcal{D}{wrong}
Dwrong是错误分类集合,采用梯度下降的算法训练,损失函数对
w
w
w 的偏导为:
∂
∂
w
L
(
w
)
=
∑
x
i
∈
D
w
r
o
n
g
−
y
i
x
i
\frac{\partial}{\partial w}L(w)=\sum\limits_{x_i\in\mathcal{D}{wrong}}-y_ix_i
∂w∂L(w)=xi∈Dwrong∑−yixi
所以更新策略为:
w
t
+
1
←
w
t
−
λ
∇
w
L
⟹
w
t
+
1
←
w
t
+
λ
y
i
x
i
\begin{aligned} &w^{t+1}\leftarrow w^t - \lambda\nabla_wL\\ \Longrightarrow &w^{t+1}\leftarrow w^t + \lambda y_ix_i \end{aligned}
⟹wt+1←wt−λ∇wLwt+1←wt+λyixi
注意:这里要求数据线性可分,而pocket算法可允许错分类点
线性判别分析 LDA
LDA(Linear Discriminant Analysis) 基本思想就是选定一个方向,将样本顺着该方向投影,投影后的数据需满足以下两个条件可较好地分类:
- 条件一:类内近。相同类内部的试验样本距离接近。
- 条件二:类间远。不同类别之间的距离较大。
假定原数据为向量 x x x,在 w w w 方向投影: z = w T ⋅ x = ∣ w ∣ ⋅ ∣ x ∣ cos θ z=w^T\cdot x=|w|\cdot|x|\cos\theta z=wT⋅x=∣w∣⋅∣x∣cosθ
条件一:类内近
同类样本内部应该更接近(更紧凑),假设有两类的试验样本,其数量分别是 N 1 N_1 N1和 N 2 N_2 N2,那么采用方差矩阵表示每类内总体分布,用 S S S 表示原数据的协方差: C 1 : V a r z [ C 1 ] = 1 N 1 ∑ i = 1 N 1 ( z i − z c 1 ‾ ) ( z i − z c 1 ‾ ) T = 1 N 1 ∑ i = 1 N 1 ( w T x i − 1 N 1 ∑ j = 1 N 1 w T x j ) ( w T x i − 1 N 1 ∑ j = 1 N 1 w T x j ) T = w T 1 N 1 ∑ i = 1 N 1 ( x i − x c 1 ‾ ) ( x i − x c 1 ‾ ) T w = w T S 1 w C 2 : V a r z [ C 2 ] = 1 N 2 ∑ i = 1 N 2 ( z i − z c 2 ‾ ) ( z i − z c 2 ‾ ) T = w T S 2 w \begin{aligned} C_1:Var_z[C_1]&=\frac{1}{N_1}\sum\limits_{i=1}^{N_1}(z_i-\overline{z_{c1}})(z_i-\overline{z_{c1}})^T\\ &=\frac{1}{N_1}\sum\limits_{i=1}^{N_1}(w^Tx_i-\frac{1}{N_1}\sum\limits_{j=1}^{N_1}w^Tx_j)(w^Tx_i-\frac{1}{N_1}\sum\limits_{j=1}^{N_1}w^Tx_j)^T\\ &=w^T\frac{1}{N_1}\sum\limits_{i=1}^{N_1}(x_i-\overline{x_{c1}})(x_i-\overline{x_{c1}})^Tw\\ &=w^TS_1w\\ C_2:Var_z[C_2] &=\frac{1}{N_2}\sum\limits_{i=1}^{N_2}(z_i-\overline{z_{c2}})(z_i-\overline{z_{c2}})^T\\ &=w^TS_2w \end{aligned} C1:Varz[C1]C2:Varz[C2]=N11i=1∑N1(zi−zc1)(zi−zc1)T=N11i=1∑N1(wTxi−N11j=1∑N1wTxj)(wTxi−N11j=1∑N1wTxj)T=wTN11i=1∑N1(xi−xc1)(xi−xc1)Tw=wTS1w=N21i=1∑N2(zi−zc2)(zi−zc2)T=wTS2w
所以类内距离可以记为:
V
a
r
z
[
C
1
]
+
V
a
r
z
[
C
2
]
=
w
T
(
S
1
+
S
2
)
w
\begin{aligned} Var_z[C_1]+Var_z[C_2]=w^T(S_1+S_2)w \end{aligned}
Varz[C1]+Varz[C2]=wT(S1+S2)w
条件二:类间远
不同类间隔越远越好,用均值差的平方(两个球距离的远近可用球心距离衡量)来表示:
(
z
c
1
‾
−
z
c
2
‾
)
2
=
(
1
N
1
∑
i
=
1
N
1
w
T
x
i
−
1
N
2
∑
i
=
1
N
2
w
T
x
i
)
2
=
(
w
T
(
x
c
1
‾
−
x
c
2
‾
)
)
2
=
w
T
(
x
c
1
‾
−
x
c
2
‾
)
(
x
c
1
‾
−
x
c
2
‾
)
T
w
\begin{aligned} (\overline{z_{c1}}-\overline{z_{c2}})^2&=(\frac{1}{N_1}\sum\limits_{i=1}^{N_1}w^Tx_i-\frac{1}{N_2}\sum\limits_{i=1}^{N_2}w^Tx_i)^2\\ &=(w^T(\overline{x_{c1}}-\overline{x_{c2}}))^2\\ &=w^T(\overline{x_{c1}}-\overline{x_{c2}})(\overline{x_{c1}}-\overline{x_{c2}})^Tw \end{aligned}
(zc1−zc2)2=(N11i=1∑N1wTxi−N21i=1∑N2wTxi)2=(wT(xc1−xc2))2=wT(xc1−xc2)(xc1−xc2)Tw
损失函数
综合两个条件,由于协方差是一个矩阵,将两者相除得到损失函数,并将其最大化:
w
^
=
a
r
g
m
a
x
w
J
(
w
)
=
a
r
g
m
a
x
w
(
z
c
1
‾
−
z
c
2
‾
)
2
V
a
r
z
[
C
1
]
+
V
a
r
z
[
C
2
]
=
a
r
g
m
a
x
w
w
T
(
x
c
1
‾
−
x
c
2
‾
)
(
x
c
1
‾
−
x
c
2
‾
)
T
⏞
S
b
类间方差
w
w
T
(
S
1
+
S
2
)
⏟
S
w
类内方差
w
=
a
r
g
m
a
x
w
w
T
S
b
w
w
T
S
w
w
\begin{aligned} \hat{w}=\mathop{argmax}\limits_wJ(w)&=\mathop{argmax}\limits_w\frac{(\overline{z_{c1}}-\overline{z_{c2}})^2}{Var_z[C_1]+Var_z[C_2]}\\ &=\mathop{argmax}\limits_w\frac{w^T\overbrace{(\overline{x_{c1}}-\overline{x_{c2}})(\overline{x_{c1}}-\overline{x_{c2}})^T}^{\color{blue}S_b\text{类间方差}}w}{w^T\underbrace{(S_1+S_2)}_{\color{blue}S_w\text{类内方差}}w}\\ &=\mathop{argmax}\limits_w\frac{w^TS_bw}{w^TS_ww} \end{aligned}
w^=wargmaxJ(w)=wargmaxVarz[C1]+Varz[C2](zc1−zc2)2=wargmaxwTSw类内方差
(S1+S2)wwT(xc1−xc2)(xc1−xc2)T
Sb类间方差w=wargmaxwTSwwwTSbw
w
w
w 只需要提供投影方向,
∣
∣
w
∣
∣
||w||
∣∣w∣∣ 具体大小并不重要(求得方向后可令
∣
∣
w
∣
∣
=
1
||w||=1
∣∣w∣∣=1求得具体的
w
w
w值),对其求偏导,:
∂
∂
w
J
(
w
)
=
2
S
b
w
(
w
T
S
w
w
)
−
1
−
2
w
T
S
b
w
(
w
T
S
w
w
)
−
2
S
w
w
=
0
⟹
S
b
w
(
w
T
S
w
w
)
⏟
一维实数
=
(
w
T
S
b
w
)
⏟
一维实数
S
w
w
⟹
w
∝
S
w
−
1
S
b
w
=
S
w
−
1
(
x
c
1
‾
−
x
c
2
‾
)
(
x
c
1
‾
−
x
c
2
‾
)
T
w
⏟
一维实数
∝
S
w
−
1
(
x
c
1
‾
−
x
c
2
‾
)
⏟
投影方向
\begin{aligned} &\frac{\partial}{\partial w}J(w)=2S_bw(w^TS_ww)^{-1}-2w^TS_bw(w^TS_ww)^{-2}S_ww=0\\ \Longrightarrow &S_bw\underbrace{(w^TS_ww)}_{\color{blue}\text{一维实数}}=\underbrace{(w^TS_bw)}_{\color{blue}\text{一维实数}}S_ww\\ \Longrightarrow &{\color{blue}w}\propto S_w^{-1}S_bw=S_w^{-1}(\overline{x_{c1}}-\overline{x_{c2}})\underbrace{(\overline{x_{c1}}-\overline{x_{c2}})^Tw}_{\color{blue}\text{一维实数}}\\ &\;\;\;\propto \underbrace{S_w^{-1}(\overline{x_{c1}}-\overline{x_{c2}}) }_{\color{blue}\text{投影方向}} \end{aligned}
⟹⟹∂w∂J(w)=2Sbw(wTSww)−1−2wTSbw(wTSww)−2Sww=0Sbw一维实数
(wTSww)=一维实数
(wTSbw)Swww∝Sw−1Sbw=Sw−1(xc1−xc2)一维实数
(xc1−xc2)Tw∝投影方向
Sw−1(xc1−xc2)
概率判别模型-Logistic 回归
很多时候需要得到某类别的概率(如:天气预报降水概率),那么输出应该是
[
0
,
1
]
[0,1]
[0,1] 区间内的值。对于二分类问题,对
p
(
C
∣
x
)
p(C|x)
p(C∣x) 建模,根据用贝叶斯定理:
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_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(C1∣x)=p(x∣C1)p(C1)+p(x∣C2)p(C2)p(x∣C1)p(C1)
取
a
=
ln
p
(
x
∣
C
1
)
p
(
C
1
)
p
(
x
∣
C
2
)
p
(
C
2
)
a=\ln\frac{p(x|C_1)p(C_1)}{p(x|C_2)p(C_2)}
a=lnp(x∣C2)p(C2)p(x∣C1)p(C1),于是:
p
(
C
1
∣
x
)
=
1
1
+
exp
(
−
a
)
p(C_1|x)=\frac{1}{1+\exp(-a)}
p(C1∣x)=1+exp(−a)1
上式即 Logistic Sigmoid 函数,其参数表示了两类联合概率比值的对数。因此可以令: a = w T x a = w^Tx a=wTx,找到最佳参数 w w w ,即可得到最佳Logistic 回归模型。
概率判别模型常用最大似然估计的方式来确定参数,对于一次观测,获得分类
y
y
y 的概率为(假定
C
1
=
1
,
C
2
=
0
C_1=1,C_2=0
C1=1,C2=0):
p
(
y
∣
x
)
=
p
1
y
p
0
1
−
y
p(y|x)=p_1^yp_0^{1-y}
p(y∣x)=p1yp01−y
那么对于
N
N
N 次独立全同观测 MLE为:
w
^
=
a
r
g
m
a
x
w
J
(
w
)
=
a
r
g
m
a
x
w
∑
i
=
1
N
(
y
i
log
p
1
+
(
1
−
y
i
)
log
p
0
)
=
a
r
g
m
i
n
w
∑
i
=
1
N
−
(
y
i
log
p
1
+
(
1
−
y
i
)
log
p
0
)
⏟
c
r
o
s
s
e
n
t
r
o
p
y
\begin{aligned} \hat{w}=\mathop{argmax}\limits_wJ(w)&=\mathop{argmax}\limits_w\sum\limits_{i=1}^N(y_i\log p_1+(1-y_i)\log p_0) \\ &=\mathop{argmin}\limits_w\underbrace{\sum\limits_{i=1}^N-(y_i\log p_1+(1-y_i)\log p_0)}_{\color{blue} cross\ entropy} \end{aligned}
w^=wargmaxJ(w)=wargmaxi=1∑N(yilogp1+(1−yi)logp0)=wargmincross entropy
i=1∑N−(yilogp1+(1−yi)logp0)
由于有:
p
1
′
=
(
1
1
+
exp
(
−
a
)
)
′
=
p
1
(
1
−
p
1
)
p_1'=(\frac{1}{1+\exp(-a)})'=p_1(1-p_1)
p1′=(1+exp(−a)1)′=p1(1−p1)
则对该表达式求导:
J
′
(
w
)
=
∑
i
=
1
N
y
i
(
1
−
p
1
)
x
i
−
p
1
x
i
+
y
i
p
1
x
i
=
∑
i
=
1
N
(
y
i
−
p
1
)
x
i
J'(w)=\sum\limits_{i=1}^Ny_i(1-p_1)x_i-p_1x_i+y_ip_1x_i=\sum\limits_{i=1}^N(y_i-p_1)x_i
J′(w)=i=1∑Nyi(1−p1)xi−p1xi+yip1xi=i=1∑N(yi−p1)xi
上式无法直接求解,和感知机类似,也可以使用不同大小的批量随机梯度上升(对于最小化就是梯度下降)来得到函数极大值。
概率生成模型-高斯判别分析 GDA
生成模型用于分类其实就是对联合概率分布进行建模 p ( Y ∣ X ) ∝ p ( X ∣ Y ) p ( Y ) = p ( X , Y ) p(Y|X)\propto p(X|Y)p(Y)=p(X,Y) p(Y∣X)∝p(X∣Y)p(Y)=p(X,Y),因为分类并不需要得到 p ( Y ∣ X ) p(Y|X) p(Y∣X)具体值,分类只要比较大小即可。然后采用 MAP 来获得最佳参数,针对二分类情况,假设:
- y ∼ B e r n o u l l i ( ϕ ) y\sim Bernoulli(\phi) y∼Bernoulli(ϕ)
- x ∣ y = 1 ∼ N ( μ 1 , Σ ) x|y=1\sim\mathcal{N}(\mu_1,\Sigma) x∣y=1∼N(μ1,Σ)
- x ∣ y = 0 ∼ N ( μ 0 , Σ ) x|y=0\sim\mathcal{N}(\mu_0,\Sigma) x∣y=0∼N(μ0,Σ)
l
o
g
−
l
i
k
e
l
i
h
o
o
d
log-likelihood
log−likelihood 可表示为:
L
(
θ
)
=
log
∏
i
=
1
N
p
(
x
i
,
y
i
)
=
∑
i
=
1
N
log
(
p
(
x
i
∣
y
i
)
⋅
p
(
y
i
)
)
=
∑
i
=
1
N
(
log
p
(
x
i
∣
y
i
)
+
log
p
(
y
i
)
)
=
∑
i
=
1
N
(
log
N
(
μ
0
,
Σ
)
1
−
y
i
+
log
N
(
μ
1
,
Σ
)
y
i
+
log
ϕ
y
i
(
1
−
ϕ
)
1
−
y
i
)
=
∑
i
=
1
N
log
N
(
μ
0
,
Σ
)
1
−
y
i
⏟
1
+
∑
i
=
1
N
log
N
(
μ
1
,
Σ
)
y
i
⏟
2
+
∑
i
=
1
N
log
ϕ
y
i
(
1
−
ϕ
)
1
−
y
i
⏟
3
⟹
a
r
g
m
a
x
ϕ
,
μ
0
,
μ
1
,
Σ
L
(
θ
)
=
a
r
g
m
a
x
ϕ
,
μ
0
,
μ
1
,
Σ
1
+
2
+
3
\begin{aligned} &\mathcal{L}(\theta)=\log \prod^N_{i=1}p(x_i,y_i)\\ &=\sum\limits_{i=1}^N\log(p(x_i|y_i)\cdot p(y_i))\\ &=\sum\limits_{i=1}^N (\log p(x_i|y_i)+\log p(y_i))\\ &=\sum\limits_{i=1}^N(\log\mathcal{N}(\mu_0,\Sigma)^{1-y_i}+\log \mathcal{N}(\mu_1,\Sigma)^{y_i}+\log\phi^{y_i}(1-\phi)^{1-y_i}) \\ &=\underbrace{\sum\limits_{i=1}^N\log\mathcal{N}(\mu_0,\Sigma)^{1-y_i}}_{\color{blue}1}+\underbrace{\sum\limits_{i=1}^N\log \mathcal{N}(\mu_1,\Sigma)^{y_i}}_{\color{blue}2}+\underbrace{\sum\limits_{i=1}^N\log\phi^{y_i}(1-\phi)^{1-y_i}}_{\color{blue}3}\\ \color{blue}\Longrightarrow &\mathop{argmax}\limits_{\phi,\mu_0,\mu_1,\Sigma} \mathcal{L}(\theta)=\mathop{argmax}\limits_{\phi,\mu_0,\mu_1,\Sigma}\color{blue}1+\color{blue}2+\color{blue}3 \end{aligned}
⟹L(θ)=logi=1∏Np(xi,yi)=i=1∑Nlog(p(xi∣yi)⋅p(yi))=i=1∑N(logp(xi∣yi)+logp(yi))=i=1∑N(logN(μ0,Σ)1−yi+logN(μ1,Σ)yi+logϕyi(1−ϕ)1−yi)=1
i=1∑NlogN(μ0,Σ)1−yi+2
i=1∑NlogN(μ1,Σ)yi+3
i=1∑Nlogϕyi(1−ϕ)1−yiϕ,μ0,μ1,ΣargmaxL(θ)=ϕ,μ0,μ1,Σargmax1+2+3
1、首先求解
ϕ
\color{blue}\boxed{\phi}
ϕ ,对其求偏导:
∑
i
=
1
N
y
i
ϕ
+
y
i
−
1
1
−
ϕ
=
0
⟹
ϕ
=
∑
i
=
1
N
y
i
N
=
N
1
N
\begin{aligned}&\sum\limits_{i=1}^N\frac{y_i}{\phi}+\frac{y_i-1}{1-\phi}=0\\ \Longrightarrow&{\color{blue}\phi}=\frac{\sum\limits_{i=1}^Ny_i}{N}=\frac{N_1}{N} \end{aligned}
⟹i=1∑Nϕyi+1−ϕyi−1=0ϕ=Ni=1∑Nyi=NN1
2、然后求解
μ
1
\color{blue}\boxed{\mu_1}
μ1:
μ
1
^
=
a
r
g
m
a
x
μ
1
∑
i
=
1
N
y
i
log
N
(
μ
1
,
Σ
)
=
a
r
g
m
i
n
μ
1
∑
i
=
1
N
y
i
(
x
i
−
μ
1
)
T
Σ
−
1
(
x
i
−
μ
1
)
\begin{aligned} \hat{\mu_1}&=\mathop{argmax}\limits_{\mu_1}\sum\limits_{i=1}^Ny_i\log\mathcal{N}(\mu_1,\Sigma)\\ &=\mathop{argmin}\limits_{\mu_1}\sum\limits_{i=1}^Ny_i(x_i-\mu_1)^T\Sigma^{-1}(x_i-\mu_1) \end{aligned}
μ1^=μ1argmaxi=1∑NyilogN(μ1,Σ)=μ1argmini=1∑Nyi(xi−μ1)TΣ−1(xi−μ1)
由于:
∑
i
=
1
N
y
i
(
x
i
−
μ
1
)
T
Σ
−
1
(
x
i
−
μ
1
)
=
∑
i
=
1
N
y
i
x
i
T
Σ
−
1
x
i
−
2
y
i
μ
1
T
Σ
−
1
x
i
+
y
i
μ
1
T
Σ
−
1
μ
1
\begin{aligned} & \sum\limits_{i=1}^Ny_i(x_i-\mu_1)^T\Sigma^{-1}(x_i-\mu_1) \\&=\sum\limits_{i=1}^Ny_ix_i^T\Sigma^{-1}x_i-2y_i\mu_1^T\Sigma^{-1}x_i+y_i\mu_1^T\Sigma^{-1}\mu_1 \end{aligned}
i=1∑Nyi(xi−μ1)TΣ−1(xi−μ1)=i=1∑NyixiTΣ−1xi−2yiμ1TΣ−1xi+yiμ1TΣ−1μ1
提取
μ
1
\mu_1
μ1相关项:
∑
i
=
1
N
−
2
y
i
Σ
−
1
x
i
+
2
y
i
Σ
−
1
μ
1
=
0
⟹
μ
1
=
∑
i
=
1
N
y
i
x
i
∑
i
=
1
N
y
i
=
∑
i
=
1
N
y
i
x
i
N
1
\begin{aligned} &\sum\limits_{i=1}^N-2y_i\Sigma^{-1}x_i+2y_i\Sigma^{-1}\mu_1=0\\ \Longrightarrow\color{blue}\mu_1&=\frac{\sum\limits_{i=1}^Ny_ix_i}{\sum\limits_{i=1}^Ny_i}=\frac{\sum\limits_{i=1}^Ny_ix_i}{N_1} \end{aligned}
⟹μ1i=1∑N−2yiΣ−1xi+2yiΣ−1μ1=0=i=1∑Nyii=1∑Nyixi=N1i=1∑Nyixi
3、求解 μ 0 \color{blue}\boxed{\mu_0} μ0,由于正反例是对称的,所以: μ 0 = ∑ i = 1 N ( 1 − y i ) x i N 0 {\color{blue}\mu_0} =\frac{\sum\limits_{i=1}^N(1-y_i)x_i}{N_0} μ0=N0i=1∑N(1−yi)xi
4、求解
Σ
\color{blue}\boxed{\Sigma}
Σ
模型假设正反例的协方差矩阵相同,由上面几个参数的解可知:即使协方差矩阵不同也不会影响前面三个参数的求解。
先验知识
t
r
(
A
B
)
=
t
r
(
B
A
)
t
r
(
A
B
C
)
=
t
r
(
C
A
B
)
=
t
r
(
B
C
A
)
∂
∂
A
(
∣
A
∣
)
=
∣
A
∣
A
−
1
∂
∂
A
T
r
a
c
e
(
A
B
)
=
B
T
{\color{blue}\text{先验知识}} \\ \boxed{\begin{aligned} &tr(AB)=tr(BA)\\ &tr(ABC)=tr(CAB)=tr(BCA)\\ &\frac{\partial}{\partial A}(|A|)=|A|A^{-1}\\ &\frac{\partial}{\partial A}Trace(AB)=B^T \end{aligned}}
先验知识tr(AB)=tr(BA)tr(ABC)=tr(CAB)=tr(BCA)∂A∂(∣A∣)=∣A∣A−1∂A∂Trace(AB)=BT
首先有:
∑
i
=
1
N
log
N
(
μ
,
Σ
)
=
∑
i
=
1
N
log
(
1
(
2
π
)
p
/
2
∣
Σ
∣
1
/
2
)
+
(
−
1
2
(
x
i
−
μ
)
T
Σ
−
1
(
x
i
−
μ
)
⏟
一维实数
)
=
C
o
n
s
t
−
1
2
N
log
∣
Σ
∣
−
1
2
T
r
a
c
e
(
(
x
i
−
μ
)
T
Σ
−
1
(
x
i
−
μ
)
)
=
C
o
n
s
t
−
1
2
N
log
∣
Σ
∣
−
1
2
T
r
a
c
e
(
(
x
i
−
μ
)
(
x
i
−
μ
)
T
⏟
S
Σ
−
1
)
=
C
o
n
s
t
−
1
2
N
log
∣
Σ
∣
−
1
2
N
T
r
a
c
e
(
S
Σ
−
1
)
\begin{aligned} \sum\limits_{i=1}^N\log\mathcal{N}(\mu,\Sigma) &=\sum\limits_{i=1}^N\log(\frac{1}{(2\pi)^{p/2}|\Sigma|^{1/2}})+(-\frac{1}{2}\underbrace{(x_i-\mu)^T\Sigma^{-1}(x_i-\mu)}_{\color{blue}\text{一维实数}})\\ &=Const-\frac{1}{2}N\log|\Sigma|-\frac{1}{2}Trace((x_i-\mu)^T\Sigma^{-1}(x_i-\mu))\\ &=Const-\frac{1}{2}N\log|\Sigma|-\frac{1}{2}Trace(\underbrace{(x_i-\mu)(x_i-\mu)^T}_{\color{blue}S}\Sigma^{-1})\\ &=Const-\frac{1}{2}N\log|\Sigma|-\frac{1}{2}NTrace(S\Sigma^{-1}) \end{aligned}
i=1∑NlogN(μ,Σ)=i=1∑Nlog((2π)p/2∣Σ∣1/21)+(−21一维实数
(xi−μ)TΣ−1(xi−μ))=Const−21Nlog∣Σ∣−21Trace((xi−μ)TΣ−1(xi−μ))=Const−21Nlog∣Σ∣−21Trace(S
(xi−μ)(xi−μ)TΣ−1)=Const−21Nlog∣Σ∣−21NTrace(SΣ−1)
因此:
1
+
2
=
C
o
n
s
t
−
1
2
N
log
∣
Σ
∣
−
1
2
N
1
T
r
a
c
e
(
S
1
Σ
−
1
)
−
1
2
N
2
T
r
a
c
e
(
S
2
Σ
−
1
)
\begin{aligned} {\color{blue}1}+{\color{blue}2}=Const-\frac{1}{2}N\log|\Sigma|-\frac{1}{2}N_1Trace(S_1\Sigma^{-1})-\frac{1}{2}N_2Trace(S_2\Sigma^{-1}) \end{aligned}
1+2=Const−21Nlog∣Σ∣−21N1Trace(S1Σ−1)−21N2Trace(S2Σ−1)
其中,
S
1
,
S
2
S_1,S_2
S1,S2 分别为两类数据内部的协方差矩阵,又因为只有
1
{\color{blue}1}
1 和
2
{\color{blue}2}
2 项与
Σ
\Sigma
Σ 有关,对
Σ
\Sigma
Σ 求偏导并令其为 0 :
∂
1
+
2
Σ
=
N
Σ
−
1
−
N
1
S
1
T
Σ
−
2
−
N
2
S
2
T
Σ
−
2
=
0
⟹
Σ
=
N
1
S
1
+
N
2
S
2
N
\begin{aligned} &\frac{\partial {\color{blue}1}+{\color{blue}2}}{\Sigma}=N\Sigma^{-1}-N_1S_1^T\Sigma^{-2}-N_2S_2^T\Sigma^{-2}=0\\ \Longrightarrow&{\color{blue}\Sigma}=\frac{N_1S_1+N_2S_2}{N} \end{aligned}
⟹Σ∂1+2=NΣ−1−N1S1TΣ−2−N2S2TΣ−2=0Σ=NN1S1+N2S2
上式利用了协方差矩阵的对称性。至此,模型所有参数都已得到。
概率生成模型-朴素贝叶斯
朴素贝叶斯假设=条件独立性假设
上面的高斯判别分析的是对数据集的分布作出了高斯分布的假设,同时引入伯努利分布作为类先验,从而利用最大后验求得这些假设中的参数。
要得到
p
(
x
∣
y
)
p(x|y)
p(x∣y) ,由于
x
x
x 为
p
p
p 维,因此需要对高维度的联合概率进行采样,但高维空间的采样需要非常大样本量才能获得较为准确的概率近似。为简化计算,朴素贝叶斯对数据的属性之间的关系作出了朴素贝叶斯假设(条件独立性假设):
p
(
x
∣
y
)
=
∏
i
=
1
p
p
(
x
i
∣
y
)
p(x|y)=\prod\limits_{i=1}^pp(x_i|y)
p(x∣y)=i=1∏pp(xi∣y)
也就是: x i ⊥ x j ∣ y , ∀ i ≠ j x_i\perp x_j|y,\forall\ i\ne j xi⊥xj∣y,∀ i=j
根据贝叶斯定理: p ( y ∣ x ) = p ( y , x ) p ( x ) = p ( x ∣ y ) p ( y ) p ( x ) ∝ p ( x ∣ y ) p ( y ) = ∏ i = 1 p p ( x i ∣ y ) p ( y ) p(y|x)= \frac{p(y,x)}{p(x)}=\frac{p(x|y)p(y)}{p(x)}\propto p(x|y)p(y)={\prod\limits_{i=1}^pp(x_i|y)p(y)} p(y∣x)=p(x)p(y,x)=p(x)p(x∣y)p(y)∝p(x∣y)p(y)=i=1∏pp(xi∣y)p(y)
假如还是二分类问题分布
y
^
=
arg max
y
p
(
y
∣
x
)
=
arg max
y
=
{
0
,
1
}
∏
i
=
1
p
p
(
x
i
∣
y
)
p
(
y
)
\hat y =\argmax_y p(y|x) =\argmax_{y=\{0,1\}} {\prod\limits_{i=1}^pp(x_i|y)p(y)}
y^=yargmaxp(y∣x)=y={0,1}argmaxi=1∏pp(xi∣y)p(y)
参考文献
【1】线性分类
【2】感知机原理小结
【3】逻辑回归原理小结
【4】scikit-learn 逻辑回归类库使用小结
【5】线性判别分析LDA原理总结