1. 线性分类介绍
线性分类通常分为两种
- 硬分类,我们直接输出预测观测值的类别,模型代表:
- 线性判别分析
- 感知机
-
软分类,生成不同类别的概率,这类算法分为两种
a. 生成式:- 高斯判别分析
- 朴素Bayes
b.判别式:
- Logistic 回归
这里解释一下什么是判别式,什么是生成式。现在假设我们要计算
p
(
y
∣
x
)
p(y|x)
p(y∣x)
生成式:根据贝叶斯定理先计算参数后验概率,再进行推断。需要计算
p
(
x
,
y
)
,
p
(
x
)
p(x,y),p(x)
p(x,y),p(x)然后由
p
(
y
∣
x
)
=
p
(
x
,
y
)
p
(
y
)
p(y|x)=\frac{p(x,y)}{p(y)}
p(y∣x)=p(y)p(x,y)计算得到
判别式:直接根据条件概率进行求解,也就是说,直接对
p
(
y
∣
x
)
p(y|x)
p(y∣x)进行建模,直接求解。
2 两类硬分类
2.1 感知机算法
我们选取激活函数为:
s
i
g
n
(
a
)
=
{
+
1
,
a
≥
0
−
1
,
a
<
0
.
sign(a)=\begin{cases}+1,a\ge0\\-1,a\lt0\end{cases}.
sign(a)={+1,a≥0−1,a<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
但是如果样本非常多的情况下,计算复杂度较高,但是,实际上我们并不需要绝对的损失函数下降的方向,我们只需要损失函数的期望值下降,但是计算期望需要知道真实的概率分布,我们实际只能根据训练数据抽样来估算这个概率分布(经验风险)
E
D
[
E
p
^
[
∇
w
L
(
w
)
]
]
=
E
D
[
1
N
∑
i
=
1
N
∇
w
L
(
w
)
]
\mathbb{E}{\mathcal D}[\mathbb{E}\hat{p}[\nabla_wL(w)]]=\mathbb{E}{\mathcal D}[\frac{1}{N}\sum\limits_{i=1}^N\nabla_wL(w)]
ED[Ep^[∇wL(w)]]=ED[N1i=1∑N∇wL(w)]
我们知道,
N
N
N 越大,样本近似真实分布越准确,但是对于一个标准差为
σ
\sigma
σ 的数据,可以确定的标准差仅和
N
\sqrt{N}
N 成反比,而计算速度却和
N
N
N 成正比。因此可以每次使用较少样本,则在数学期望的意义上损失降低的同时,有可以提高计算速度,如果每次只使用一个错误样本,我们有下面的更新策略(根据泰勒公式,在负方向):
w
t
+
1
←
w
t
+
λ
y
i
x
i
w^{t+1}\leftarrow w^{t}+\lambda y_ix_i
wt+1←wt+λyixi 是可以收敛的,同时使用单个观测更新也可以在一定程度上增加不确定度,从而减轻陷入局部最小的可能。在更大规模的数据上,常用的是小批量随机梯度下降法。
2.2 线性判别分析LDA
这个LDA是用来进行分类的,并不是常说的话题模型lda
在 LDA 中,我们的基本想法是选定一个方向,将试验样本顺着这个方向投影,投影后的数据需要满足两个条件,从而可以更好地分类:
- 相同类内部的试验样本距离接近。
- 不同类别之间的距离较大。
强调一下,我们要找的是一个方向向量,和大小并没有关系
首先是投影,我们假定原来的数据是向量
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 和 C 2 C_1和C_2 C1和C2,那么投影之后两类数据各自的协方差:
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 w w T ( S 1 + S 2 ) 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(\overline{x_{c1}}-\overline{x_{c2}})(\overline{x_{c1}}-\overline{x_{c2}})^Tw}{w^T(S_1+S_2)w}\\ &=\mathop{argmax}\limits_w\frac{w^TS_bw}{w^TS_ww} \end{aligned} w^=wargmaxJ(w)=wargmaxVarz[C1]+Varz[C2](zc1−zc2)2=wargmaxwT(S1+S2)wwT(xc1−xc2)(xc1−xc2)Tw=wargmaxwTSwwwTSbw
这样,我们就把损失函数和原数据集以及参数结合起来了。下面对这个损失函数求偏导,注意我们其实对 w w w 的绝对值没有任何要求,只对方向有要求。还要注意 w T S b w w^TS_bw wTSbw和 w T S w w 都 是 常 数 w^TS_ww都是常数 wTSww都是常数因此只要一个方程就可以求解了:
∂ ∂ 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(w^TS_ww)=(w^TS_bw)S_ww\\ &\Longrightarrow w\propto S_w^{-1}S_bw=S_w^{-1}(\overline{x_{c1}}-\overline{x_{c2}})(\overline{x_{c1}}-\overline{x_{c2}})^Tw\propto S_w^{-1}(\overline{x_{c1}}-\overline{x_{c2}}) \end{aligned} ∂w∂J(w)=2Sbw(wTSww)−1−2wTSbw(wTSww)−2Sww=0⟹Sbw(wTSww)=(wTSbw)Sww⟹w∝Sw−1Sbw=Sw−1(xc1−xc2)(xc1−xc2)Tw∝Sw−1(xc1−xc2)
最后这一步是因为 ( x c 1 ‾ − x c 2 ‾ ) T w (\overline{x_{c1}}-\overline{x_{c2}})^Tw (xc1−xc2)Tw,这也是一个常数,因此可以省略,于是 S w − 1 ( x c 1 ‾ − x c 2 ‾ ) S_w^{-1}(\overline{x_{c1}}-\overline{x_{c2}}) Sw−1(xc1−xc2)就是我们需要寻找的方向。最后可以归一化求得单位的 w w w 值。
3. 两类软分类
3.1 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
a
a 进行。
Logistic 回归的模型假设是:
a
=
w
T
x
a=w^Tx
a=wTx 于是,通过寻找
w
w
w 的最佳值可以得到在这个模型假设下的最佳模型。概率判别模型常用最大似然估计的方式来确定参数。
对于一次观测,获得分类
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
)
\hat{w}=\mathop{argmax}_wJ(w)=\mathop{argmax}w\sum\limits{i=1}^N(y_i\log p_1+(1-y_i)\log p_0)
w^=argmaxwJ(w)=argmaxw∑i=1N(yilogp1+(1−yi)logp0) 注意到,这个表达式是交叉熵表达式的相反数乘
N
N
N,MLE 中的对数也保证了可以和指数函数相匹配,从而在大的区间汇总获取稳定的梯度。
对这个函数求导数,注意到:
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 由于概率值的非线性,包含指数函数,放在求和符号中时,这个式子无法直接求解。于是在实际训练的时候,和感知机类似,也可以使用不同大小的批量随机梯度上升(对于最小化就是梯度下降)来获得这个函数的极大值。
w
t
+
1
=
w
t
−
β
J
′
(
w
t
)
w^{t+1} = w^{t} - \beta J'(w^{t})
wt+1=wt−βJ′(wt)
3.2 高斯判别分析 GDA
生成模型中,我们对联合概率分布进行建模,然后采用 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,Σ)
y
∼
B
e
r
n
o
u
l
l
i
(
ϕ
)
=
{
ϕ
y=1
1
−
ϕ
y=0
y\sim Bernoulli(\phi) = \begin{cases} \phi &\text{y=1} \\ 1-\phi &\text{y=0} \end{cases}
y∼Bernoulli(ϕ)={ϕ1−ϕy=1y=0
那么独立全同的数据集最大后验概率可以表示为:
a
r
g
m
a
x
ϕ
,
μ
0
,
μ
1
,
Σ
log
p
(
X
∣
Y
)
p
(
Y
)
=
a
r
g
m
a
x
ϕ
,
μ
0
,
μ
1
,
Σ
∑
i
=
1
N
(
log
p
(
x
i
∣
y
i
)
+
log
p
(
y
i
)
)
=
a
r
g
m
a
x
ϕ
,
μ
0
,
μ
1
,
Σ
∑
i
=
1
N
(
(
1
−
y
i
)
log
N
(
μ
0
,
Σ
)
+
y
i
log
N
(
μ
1
,
Σ
)
+
y
i
log
ϕ
+
(
1
−
y
i
)
log
(
1
−
ϕ
)
)
\begin{aligned}&\mathop{argmax}{\phi,\mu_0,\mu_1,\Sigma}\log p(X|Y)p(Y)=\mathop{argmax}{\phi,\mu_0,\mu_1,\Sigma}\sum\limits_{i=1}^N (\log p(x_i|y_i)+\log p(y_i)) \\& =\mathop{argmax}{\phi,\mu_0,\mu_1,\Sigma}\sum\limits{i=1}^N((1-y_i)\log\mathcal{N}(\mu_0,\Sigma)+y_i\log \mathcal{N}(\mu_1,\Sigma)+y_i\log\phi+(1-y_i)\log(1-\phi)) \end{aligned}
argmaxϕ,μ0,μ1,Σlogp(X∣Y)p(Y)=argmaxϕ,μ0,μ1,Σi=1∑N(logp(xi∣yi)+logp(yi))=argmaxϕ,μ0,μ1,Σ∑i=1N((1−yi)logN(μ0,Σ)+yilogN(μ1,Σ)+yilogϕ+(1−yi)log(1−ϕ))
- 首先对 ϕ \phi ϕ 进行求解,将式子对 ϕ \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\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
- 然后求解
μ
1
\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}{\mu_1}\sum\limits{i=1}^Ny_i\log\mathcal{N}(\mu_1,\Sigma)\\ &=\mathop{argmin}{\mu_1}\sum\limits{i=1}^Ny_i(x_i-\mu_1)^T\Sigma^{-1}(x_i-\mu_1) \end{aligned} μ1^=argmaxμ1∑i=1NyilogN(μ1,Σ)=argminμ1∑i=1Nyi(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 \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 i=1∑Nyi(xi−μ1)TΣ−1(xi−μ1)=i=1∑NyixiTΣ−1xi−2yiμ1TΣ−1xi+yiμ1TΣ−1μ1
求微分左边乘以 Σ \Sigma Σ 可以得到: ∑ 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\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} i=1∑N−2yiΣ−1xi+2yiΣ−1μ1=0⟹μ1=i=1∑Nyii=1∑Nyixi=N1i=1∑Nyixi
-
求解 μ 0 \mu_0 μ0,由于正反例是对称的,所以: μ 0 = ∑ i = 1 N ( 1 − y i ) x i N 0 \mu_0=\frac{\sum\limits_{i=1}^N(1-y_i)x_i}{N_0} μ0=N0i=1∑N(1−yi)xi
-
最为困难的是求解 Σ \Sigma Σ,我们的模型假设对正反例采用相同的协方差矩阵,当然从上面的求解中我们可以看到,即使采用不同的矩阵也不会影响之前的三个参数。首先我们有:
∑ 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 Σ − 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}(x_i-\mu)^T\Sigma^{-1}(x_i-\mu))\\ &=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((x_i-\mu)(x_i-\mu)^T\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((xi−μ)(xi−μ)TΣ−1)=Const−21Nlog∣Σ∣−21NTrace(SΣ−1)
在这个表达式中,我们在标量上加入迹从而可以交换矩阵的顺序,对于包含绝对值和迹的表达式的导数,我们有:
∂ ∂ A ( ∣ A ∣ ) = ∣ A ∣ A − 1 ∂ ∂ A T r a c e ( A B ) = B T \begin{aligned} \frac{\partial}{\partial A}(|A|)&=|A|A^{-1}\ \frac{\partial}{\partial A}Trace(AB)&=B^T \end{aligned} ∂A∂(∣A∣)=∣A∣A−1 ∂A∂Trace(AB)=BT
因此:
[ ∑ i = 1 N ( ( 1 − y i ) log N ( μ 0 , Σ ) + y i log N ( μ 1 , Σ ) ] ′ = 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}[\sum\limits_{i=1}^N((1-y_i)\log\mathcal{N}(\mu_0,\Sigma)+y_i\log \mathcal{N}(\mu_1,\Sigma)]' \\=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} [i=1∑N((1−yi)logN(μ0,Σ)+yilogN(μ1,Σ)]′=Const−21Nlog∣Σ∣−21N1Trace(S1Σ−1)−21N2Trace(S2Σ−1)
其中, S 1 , S 2 S_1,S_2 S1,S2 分别为两个类数据内部的协方差矩阵,于是:
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}N\Sigma^{-1}-N_1S_1^T\Sigma^{-2}-N_2S_2^T\Sigma^{-2}=0\\ \Longrightarrow\Sigma=\frac{N_1S_1+N_2S_2}{N} \end{aligned} NΣ−1−N1S1TΣ−2−N2S2TΣ−2=0⟹Σ=NN1S1+N2S2 这里应用了类协方差矩阵的对称性。