本篇文章是在参考西瓜书、PPT课件、网络上相关博客等资料的基础上整理出的机器学习复习笔记,希望能给大家的机器学习复习提供帮助。这篇笔记只是复习的一个参考,大家一定要结合书本、PPT来进行复习,有些公式的推导最好能够自己演算一遍。由于作者水平有限,笔记中难免有些差错,欢迎大家评论留言。
完整版跳转
9. 聚类
9.1 距离
聚类的主要思想是将无标签的数据分为若干个组,其中类内聚集、类间分离。
想要衡量“相似度”,我们需要有对距离的定义。距离必须满足以下条件:
- D ( A , B ) = D ( B , A ) D(A,B)=D(B,A) D(A,B)=D(B,A)
- D ( A , A ) = 0 D(A,A)=0 D(A,A)=0
- D ( A , B ) = 0 ⟺ A = B D(A,B)=0 \iff A=B D(A,B)=0⟺A=B
-
D
(
A
,
B
)
≤
D
(
A
,
C
)
+
D
(
C
,
B
)
D(A,B) \leq D(A,C)+D(C,B)
D(A,B)≤D(A,C)+D(C,B)
闵可夫斯基距离定义了一系列距离, r r r阶闵可夫斯基距离是:
d ( x , y ) = ∑ i ∣ x i − y i ∣ r r d(x,y)=\sqrt[r]{\sum_i|x_i-y_i|^r} d(x,y)=ri∑∣xi−yi∣r
显然, r = 1 r=1 r=1时为曼哈顿距离, r = 2 r=2 r=2时为欧几里得距离(L2范数), r = + ∞ r=+ \infty r=+∞时是两个向量各个维度之差的绝对值的最大值。
还有各种其他的距离,例如汉明距离、最小编辑距离等。
注意:KL距离不满足以上4点。
9.2 K-Means
给定样本集
D
D
D和划分聚类的数量
k
k
k,聚类需要将样本划分为
k
k
k个不相交的簇
C
=
{
C
1
,
…
,
C
k
}
C=\{C_1,\dots,C_k\}
C={C1,…,Ck}.
算法:
- 随机初始化 k k k个簇中心 μ ( 0 ) = μ 1 ( 0 ) , … , μ k ( 0 ) \mu^{(0)}=\mu_1^{(0)},\dots,\mu_k^{(0)} μ(0)=μ1(0),…,μk(0)
- 将每个训练样本打上距离其最近的簇中心的标签
C ( t ) ( j ) ← arg min i ∣ ∣ μ i − x j ∣ ∣ 2 C^{(t)}(j) \leftarrow \arg\min_i||\mu_i-x_j||^2 C(t)(j)←argimin∣∣μi−xj∣∣2 - 根据新的
C
C
C重新计算各类的
μ
\mu
μ,回到第二步继续迭代求解。
μ i ( t + 1 ) ← arg min μ ∑ j : C ( j ) = i ∣ ∣ μ − x j ∣ ∣ 2 \mu_i^{(t+1)} \leftarrow \arg\min_{\mu}\sum_{j:C(j)=i}||\mu-x_j||^2 μi(t+1)←argμminj:C(j)=i∑∣∣μ−xj∣∣2
算法迭代终止的条件:当一轮迭代前后每个点所属的类别都不再变化,或者一轮迭代前后, μ \mu μ的变化很小,小于某个极小值,则停止迭代。
K-Means算法优化的实际上是样本中所有点到其所属的类别中心的距离之和
F ( μ , C ) = ∑ j = 1 m ∣ ∣ μ C ( j ) − x j ∣ ∣ 2 F(\mu , C) = \sum_{j = 1}^m||{\mu_{C(j)}-x_j}||^2 F(μ,C)=j=1∑m∣∣μC(j)−xj∣∣2
优化目标即
min μ min C F ( μ , C ) = min μ min C ∑ i = 1 k ∑ j : C ( j ) = i ∣ ∣ μ i − x j ∣ ∣ 2 \min_{\mu}\min_CF(\mu , C)=\min_{\mu}\min_C\sum_{i = 1}^k{\sum_{{j:C(j)=i}}{||{\mu_i-x_j}||^2}} μminCminF(μ,C)=μminCmini=1∑kj:C(j)=i∑∣∣μi−xj∣∣2
EM算法角度
- 固定
μ
\mu
μ,优化
C
C
C(Expectation step)
min C ( 1 ) , C ( 2 ) , … , C ( m ) ∑ j = 1 m ∣ ∣ μ C ( j ) − x j ∣ ∣ 2 = ∑ j = 1 m min C ( j ) ∣ ∣ μ C ( j ) − x j ∣ ∣ 2 \min_{C(1),C(2),\dots,C(m)}\sum_{j = 1}^m||{\mu_{C(j)}-x_j}||^2=\sum_{j = 1}^m\min_{C(j)}||{\mu_{C(j)}-x_j}||^2 C(1),C(2),…,C(m)minj=1∑m∣∣μC(j)−xj∣∣2=j=1∑mC(j)min∣∣μC(j)−xj∣∣2
即为每个样本分配一个距离最近的簇中心的类标签。 - 固定
C
C
C,优化
μ
\mu
μ(Maximization step)
min μ 1 . μ 2 , … , μ k ∑ i = 1 k ∑ j : C ( j ) = i ∣ ∣ μ i − x j ∣ ∣ 2 = ∑ i = 1 k min μ i ∑ j : C ( j ) = i ∣ ∣ μ i − x j ∣ ∣ 2 \min_{\mu_1.\mu_2,\dots,\mu_k}\sum_{i = 1}^k{\sum_{{j:C(j)=i}}{||{\mu_i-x_j}||^2}} =\sum_{i = 1}^k\min_{\mu_i}\sum_{{j:C(j)=i}}{||{\mu_i-x_j}||^2} μ1.μ2,…,μkmini=1∑kj:C(j)=i∑∣∣μi−xj∣∣2=i=1∑kμiminj:C(j)=i∑∣∣μi−xj∣∣2
即为每个类重新选取簇中心。
K-Means与EM算法的比较:
- K-means 算法其实是EM算法的一种特殊情况;
- K-Means算法对数据点进行了硬分配,即认为每个数据点只属于唯一的聚类;而EM算法则认为数据点是由多个分布共同生成的。
产生式模型角度
假设数据集来自于
k
k
k个方差相同的高斯分布的混合,不妨设第
i
i
i个分布的均值为
μ
i
\mu_i
μi,且每个分布的协方差阵均为
σ
2
I
\sigma^2I
σ2I。
每个训练样本产生步骤:
- 以 P ( y = i ) P(y=i) P(y=i)的概率随机选择第 i i i个高斯分布
- 以第
i
i
i个高斯分布产生样本
x
∼
N
(
μ
i
,
σ
2
I
)
x \sim N(\mu_i, \sigma^2I)
x∼N(μi,σ2I)
即
p ( x ∣ y = i ) ∼ N ( μ i , σ 2 I ) p ( x ) = ∑ i p ( x ∣ y = i ) p ( y = i ) p(x|y=i) \sim N(\mu_i,\sigma^2I)\\p(x)=\sum_ip(x|y=i)p(y=i) p(x∣y=i)∼N(μi,σ2I)p(x)=i∑p(x∣y=i)p(y=i)
高斯贝叶斯分类器
log P ( y = i ∣ x ) P ( y = j ∣ x ) = log P ( x ∣ y = i ) P ( y = i ) P ( x ∣ y = j ) P ( y = j ) = … = w T x + b \begin{aligned} \log\frac{P(y=i|x)}{P(y=j|x)}&=\log\frac{P(x|y=i)P(y=i)}{P(x|y=j)P(y=j)}\\ &=\dots\\&=w^Tx+b \end{aligned} logP(y=j∣x)P(y=i∣x)=logP(x∣y=j)P(y=j)P(x∣y=i)P(y=i)=…=wTx+b
可得这是一个线性决策面(具体推导可参照贝叶斯判别中的决策面推导)。
最大似然(MLE)
由于
y
i
y_i
yi未知(即无法获知
P
(
x
i
,
y
i
)
P(x_i,y_i)
P(xi,yi)),我们选择最大化边缘似然
arg
max
∏
j
P
(
x
j
)
=
arg
max
∏
j
∑
i
=
1
k
P
(
y
j
=
i
,
x
j
)
=
arg
max
∏
j
∑
i
=
1
k
P
(
y
j
=
i
)
P
(
x
j
∣
y
j
=
i
)
\begin{aligned} \arg \max \prod_jP(x_j)&=\arg\max\prod_j\sum_{i=1}^kP(y_j=i,x_j)\\ &=\arg\max\prod_j\sum_{i=1}^kP(y_j=i)P(x_j|y_j=i) \end{aligned}
argmaxj∏P(xj)=argmaxj∏i=1∑kP(yj=i,xj)=argmaxj∏i=1∑kP(yj=i)P(xj∣yj=i)
而每个
x
i
x_i
xi仅可以属于某一个类别(硬指派),即
P
(
y
j
=
i
)
=
1
or
0
,
1
if
i
=
C
(
j
)
P(y_j=i)=1\text{ or }0,1 \text{ if }i=C(j)
P(yj=i)=1 or 0,1 if i=C(j),则
arg
max
log
∏
j
∑
i
=
1
k
P
(
y
j
=
i
)
P
(
x
j
∣
y
j
=
i
)
=
arg
max
∑
j
log
∑
i
=
1
k
P
(
y
j
=
i
)
P
(
x
j
∣
y
j
=
i
)
∝
arg
max
∑
j
log
(
exp
{
−
1
2
(
x
j
−
μ
C
(
j
)
)
T
(
σ
2
I
)
−
1
(
x
j
−
μ
C
(
j
)
)
}
)
=
arg
max
∑
j
log
(
exp
(
−
1
2
σ
2
∣
∣
x
j
−
μ
C
(
j
)
∣
∣
2
)
)
=
arg
max
∑
j
−
1
2
σ
2
∣
∣
x
j
−
μ
C
(
j
)
∣
∣
2
∝
arg
max
∑
j
−
∣
∣
x
j
−
μ
C
(
j
)
∣
∣
2
=
arg
min
∑
j
∣
∣
x
j
−
μ
C
(
j
)
∣
∣
2
\begin{aligned} \arg\max\log\prod_j\sum_{i=1}^kP(y_j=i)P(x_j|y_j=i)&=\arg\max\sum_j\log\sum_{i=1}^kP(y_j=i)P(x_j|y_j=i)\\ & \propto\arg \max \sum_j \log(\exp\{-\frac12(x_j-\mu_{C(j)})^T(\sigma^2I)^{-1}(x_j-\mu_{C(j)})\})\\ & = \arg\max\sum_j\log( \exp (-\frac1{2\sigma^2}||x_j-\mu_{C(j)}||^2))\\ & = \arg\max \sum_j -\frac1{2\sigma^2}||x_j-\mu_{C(j)}||^2\\ & \propto \arg\max \sum_j -||x_j-\mu_{C(j)}||^2\\ & = \arg\min \sum_j ||x_j-\mu_{C(j)}||^2 \end{aligned}
argmaxlogj∏i=1∑kP(yj=i)P(xj∣yj=i)=argmaxj∑logi=1∑kP(yj=i)P(xj∣yj=i)∝argmaxj∑log(exp{−21(xj−μC(j))T(σ2I)−1(xj−μC(j))})=argmaxj∑log(exp(−2σ21∣∣xj−μC(j)∣∣2))=argmaxj∑−2σ21∣∣xj−μC(j)∣∣2∝argmaxj∑−∣∣xj−μC(j)∣∣2=argminj∑∣∣xj−μC(j)∣∣2
这与K-means的优化目标是相同的。
特点
- K-Means实际上假设数据呈现球形分布,与之相比,GMM假设数据为高斯分布
- K-Means假设各个簇的先验概率相同,但是各个簇的数量可能不均匀
- K-Means的迭代过程实际上等价于EM算法
- 优点:计算复杂度低( o ( N ⋅ k ⋅ q ) o(N\cdot k \cdot q) o(N⋅k⋅q),其中 q q q为迭代次数,通常 k k k和 q q q均小于 N N N);思想简单,容易实现。
- 缺点:需要确定聚类的数量 k k k;分类的结果严重依赖于簇中心的初始化;结果不一定是全局最优的,只能保证局部最优;对噪声敏感,无法解决不规则形状的聚类。
9.3 GMM
GMM中假设各类的分布为高斯分布,多元高斯分布生成的
d
d
d维随机变量
x
x
x的密度函数为:
p
(
x
∣
μ
,
Σ
)
=
1
(
2
π
)
d
2
∣
Σ
∣
1
2
exp
(
−
1
2
(
x
−
μ
)
T
Σ
−
1
(
x
−
μ
)
)
p(x|\mu, \Sigma)=\frac 1 {(2\pi)^\frac d 2 |\Sigma|^\frac 1 2}\exp(-\frac 1 2(x-\mu)^T\Sigma^{-1}(x-\mu))
p(x∣μ,Σ)=(2π)2d∣Σ∣211exp(−21(x−μ)TΣ−1(x−μ))
其中
μ
\mu
μ为均值向量,
Σ
\Sigma
Σ为协方差矩阵。
这里由于各分布的协方差矩阵不一定相同,所以决策面也不一定是线性的。
给定训练样本集
X
=
{
x
1
,
x
2
,
.
.
.
,
x
n
}
X=\{x_1, x_2, ..., x_n\}
X={x1,x2,...,xn},其中
n
n
n为样本数量。对于一个样本
x
i
x_i
xi,我们可以认为它是由多个对应维度的多元高斯分布所生成,可以由⾼斯分布的线性叠加来表征数据,假设数据由
k
k
k个高斯分布混合生成,则
p
(
x
i
)
=
∑
j
=
1
k
π
j
p
(
x
i
∣
u
j
,
Σ
j
)
p(x_i)=\sum^k_{j=1}\pi_jp(x_i|\,u_j, \Sigma_j)
p(xi)=j=1∑kπjp(xi∣uj,Σj)
其中
μ
j
\mu_j
μj和
Σ
j
\Sigma_j
Σj分别表示第
j
j
j个高斯分布的均值和协方差矩阵,
π
j
\pi_j
πj为相应的混合系数,满足
∑
j
=
1
k
π
j
=
1
\displaystyle\sum^k_{j=1}\pi_j=1
j=1∑kπj=1。令随机变量
z
j
∈
{
1
,
2
,
.
.
.
,
k
}
z_j \in \{1,2,...,k\}
zj∈{1,2,...,k}表示生成样本
x
j
x_j
xj的高斯混合成分,其取值未知。根据贝叶斯定理,
z
j
z_j
zj的后验分布对应于
γ
(
z
j
)
≡
p
(
z
j
=
i
∣
x
j
)
=
p
(
z
j
=
i
)
p
(
x
j
∣
z
j
=
i
)
p
(
x
j
)
=
π
i
p
(
x
j
∣
μ
i
,
Σ
i
)
∑
l
=
1
k
π
l
p
(
x
j
∣
μ
l
,
Σ
l
)
\gamma(z_j)\equiv p(z_j = i|x_j) = \frac{p(z_j = i)p(x_j|z_j = i)}{p(x_j)} = \frac{\pi_ip(x_j|\mu_i, \Sigma_i)}{\sum\limits_{l=1}^k\pi_lp({x_j}|{\mu_l}, \Sigma_l)}
γ(zj)≡p(zj=i∣xj)=p(xj)p(zj=i)p(xj∣zj=i)=l=1∑kπlp(xj∣μl,Σl)πip(xj∣μi,Σi)
当后验概率已知时,混合高斯模型将训练样本划分成了
k
k
k个簇
C
=
C
1
,
C
2
,
.
.
.
,
C
k
C = C_1, C_2, ... , C_k
C=C1,C2,...,Ck,对于每一个样本
x
j
x_j
xj,其类别为
i
i
i,满足
i
=
arg
max
i
γ
(
z
i
)
i=\arg\displaystyle\max_i \gamma(z_i)
i=argimaxγ(zi),即选择后验概率最大的类别作为其标签类别。与K-Means类似,由于
y
i
y_i
yi未知(即无法获知
P
(
x
i
,
y
i
)
P(x_i,y_i)
P(xi,yi)),我们选择最大化边缘似然,极大似然函数为
L
L
(
D
)
=
ln
p
(
X
∣
π
,
μ
,
Σ
)
=
ln
∏
j
=
1
n
p
(
x
j
)
=
∑
j
=
1
n
ln
∑
i
=
1
k
π
i
p
(
x
j
∣
μ
i
,
Σ
i
)
LL(D)=\ln p(X|\pi, \mu, \Sigma) = \ln \prod_{j=1}^n p(x_j)=\sum_{j=1}^n\ln \sum^k_{i=1}\pi_ip(x_j|\,\mu_i, \Sigma_i)
LL(D)=lnp(X∣π,μ,Σ)=lnj=1∏np(xj)=j=1∑nlni=1∑kπip(xj∣μi,Σi)
使上式最大化,对
μ
i
\mu_i
μi求偏导,并令导数为0,则
∂
ln
p
(
X
∣
π
,
μ
,
Σ
)
∂
μ
i
=
∑
j
=
1
n
π
i
p
(
x
j
∣
μ
i
,
Σ
i
)
∑
l
=
1
k
π
l
p
(
x
j
∣
μ
l
,
Σ
l
)
Σ
i
−
1
(
x
j
−
μ
i
)
=
0
\frac {\partial \ln p(X|\pi, \mu, \Sigma)} {\partial \mu_i} = \sum_{j=1}^n \frac{\pi_i p(x_j| \mu_i, \Sigma_i)}{\displaystyle\sum_{l=1}^k \pi_l p(x_j| \mu_l, \Sigma_l)} \Sigma_i^{-1}(x_j - \mu_i) = 0
∂μi∂lnp(X∣π,μ,Σ)=j=1∑nl=1∑kπlp(xj∣μl,Σl)πip(xj∣μi,Σi)Σi−1(xj−μi)=0
令
γ
j
i
=
p
(
z
j
=
i
∣
x
j
)
∑
j
=
1
k
p
(
z
j
=
i
∣
x
j
)
=
π
i
p
(
x
j
∣
μ
i
,
Σ
i
)
∑
l
=
1
k
π
l
p
(
x
j
∣
μ
l
,
Σ
l
)
\gamma_{ji} =\frac {p(z_j = i|x_j)}{\displaystyle\sum_{j=1}^k p(z_j = i|x_j)}=\frac{\pi_i p(x_j| \mu_i, \Sigma_i)}{\displaystyle\sum_{l=1}^k \pi_l p(x_j| \mu_l, \Sigma_l)}
γji=j=1∑kp(zj=i∣xj)p(zj=i∣xj)=l=1∑kπlp(xj∣μl,Σl)πip(xj∣μi,Σi)
可解得
n
i
=
∑
j
=
1
n
γ
j
i
μ
i
=
1
n
i
∑
j
=
1
n
γ
j
i
x
j
\begin{aligned} n_i &= \sum_{j=1}^n \gamma_{ji}\\ \mu_i &= \frac 1 {n_i}\sum_{j=1}^n\gamma_{ji}x_j \end{aligned}
niμi=j=1∑nγji=ni1j=1∑nγjixj
同理,对
Σ
i
\Sigma_i
Σi求导令导数为0:
∂
ln
p
(
X
∣
π
,
μ
,
Σ
)
∂
Σ
i
=
∑
j
=
1
n
π
i
p
(
x
j
∣
μ
i
,
Σ
i
)
∑
l
=
1
k
π
l
p
(
x
j
∣
μ
l
,
Σ
l
)
(
Σ
i
−
1
−
Σ
i
−
1
(
x
j
−
μ
i
)
(
x
j
−
μ
i
)
T
Σ
i
−
1
)
=
0
\frac {\partial \ln p(X|\pi, \mu, \Sigma)} {\partial \Sigma_i} = \sum_{j=1}^n \frac{\pi_i p(x_j| \mu_i, \Sigma_i)}{\displaystyle\sum_{l=1}^k \pi_l p(x_j| \mu_l, \Sigma_l)} (\Sigma_i^{-1} - \Sigma_i^{-1}(x_j -\mu_i)(x_j -\mu_i)^T\Sigma_i^{-1}) = 0
∂Σi∂lnp(X∣π,μ,Σ)=j=1∑nl=1∑kπlp(xj∣μl,Σl)πip(xj∣μi,Σi)(Σi−1−Σi−1(xj−μi)(xj−μi)TΣi−1)=0
解得
Σ
i
=
∑
j
=
1
n
γ
j
i
(
x
j
−
μ
i
)
(
x
j
−
μ
i
)
T
n
i
\Sigma_i = \frac {\displaystyle\sum_{j=1}^n\gamma_{ji}(x_j -\mu_i)(x_j -\mu_i)^T} {n_i}
Σi=nij=1∑nγji(xj−μi)(xj−μi)T
对于混合系数
π
i
\pi_i
πi,还需要满足约束条件
∑
i
=
1
k
π
i
=
1
\displaystyle\sum^k_{i=1}\pi_i=1
i=1∑kπi=1。构造拉格朗日多项式:
ln
p
(
X
∣
π
,
μ
,
Σ
)
+
λ
(
∑
i
=
1
k
π
i
−
1
)
\ln p(X|\pi, \mu, \Sigma) + \lambda(\sum_{i=1}^k \pi_i - 1)
lnp(X∣π,μ,Σ)+λ(i=1∑kπi−1)
对
π
i
\pi_i
πi求导,令导数为0:
∂
ln
p
(
X
∣
π
,
μ
,
Σ
)
+
λ
(
∑
i
=
1
k
π
i
−
1
)
∂
π
i
=
∑
j
=
1
n
p
(
x
j
∣
μ
i
,
Σ
i
)
∑
l
=
1
k
π
l
p
(
x
j
∣
μ
l
,
Σ
l
)
+
λ
=
0
\frac {\partial \ln p(X|\pi, \mu, \Sigma) + \lambda(\displaystyle\sum_{i=1}^k \pi_i - 1)} {\partial \pi_i} =\sum_{j=1}^n \frac{p(x_j| \mu_i, \Sigma_i)}{\displaystyle\sum_{l=1}^k \pi_l p(x_j| \mu_l, \Sigma_l)} + \lambda = 0
∂πi∂lnp(X∣π,μ,Σ)+λ(i=1∑kπi−1)=j=1∑nl=1∑kπlp(xj∣μl,Σl)p(xj∣μi,Σi)+λ=0
同乘
π
i
\pi_i
πi并将
i
∈
{
1
,
2
,
.
.
.
,
k
}
i \in \{1,2,...,k\}
i∈{1,2,...,k}代入相加得:
∑
i
=
1
k
π
i
∑
j
=
1
n
p
(
x
j
∣
μ
i
,
Σ
i
)
∑
l
=
1
k
π
l
p
(
x
i
j
∣
μ
l
,
Σ
l
)
+
λ
∑
i
=
1
k
π
i
=
0
\sum_{i=1}^k \pi_i \sum_{j=1}^n \frac{p(x_j| \mu_i, \Sigma_i)}{\displaystyle\sum_{l=1}^k \pi_l p(x_ij| \mu_l, \Sigma_l)} + \lambda\sum_{i=1}^k \pi_i = 0
i=1∑kπij=1∑nl=1∑kπlp(xij∣μl,Σl)p(xj∣μi,Σi)+λi=1∑kπi=0
将约束条件代入:
∑
j
=
1
n
(
∑
i
=
1
k
π
i
p
(
x
j
∣
μ
i
,
Σ
i
)
∑
l
=
1
k
π
l
p
(
x
j
∣
μ
l
,
Σ
l
)
)
+
λ
∑
i
=
1
k
π
i
=
n
+
λ
=
0
\sum_{j=1}^n (\frac{\displaystyle\sum_{i=1}^k \pi_i p(x_j| \mu_i, \Sigma_i)}{\displaystyle\sum_{l=1}^k \pi_l p(x_j| \mu_l, \Sigma_l)}) + \lambda\sum_{i=1}^k \pi_i = n + \lambda = 0
j=1∑n(l=1∑kπlp(xj∣μl,Σl)i=1∑kπip(xj∣μi,Σi))+λi=1∑kπi=n+λ=0
即
λ
=
−
n
\lambda = -n
λ=−n.
又由于
∑
j
=
1
n
p
(
x
j
∣
μ
i
,
Σ
i
)
∑
l
=
1
k
π
l
p
(
x
j
∣
μ
l
,
Σ
l
)
+
λ
=
0
\sum_{j=1}^n \frac{p(x_j| \mu_i, \Sigma_i)}{\displaystyle\sum_{l=1}^k \pi_l p(x_j| \mu_l, \Sigma_l)} + \lambda = 0
j=1∑nl=1∑kπlp(xj∣μl,Σl)p(xj∣μi,Σi)+λ=0
且
γ
j
i
=
π
i
p
(
x
j
∣
μ
i
,
Σ
i
)
∑
l
=
1
k
π
l
p
(
x
j
∣
μ
l
,
Σ
l
)
\gamma_{ji}= \frac{\pi_i p(x_j| \mu_i, \Sigma_i)}{\displaystyle\sum_{l=1}^k \pi_l p(x_j| \mu_l, \Sigma_l)}
γji=l=1∑kπlp(xj∣μl,Σl)πip(xj∣μi,Σi)
故上式可重写为
∑
j
=
1
n
γ
j
i
π
i
+
λ
=
0
\sum_{j=1}^n \frac{\gamma_{ji}}{\pi_i} + \lambda = 0
j=1∑nπiγji+λ=0
将
n
i
=
∑
j
=
1
n
γ
j
i
n_i = \sum_{j=1}^n \gamma_{ji}
ni=∑j=1nγji和
λ
=
−
n
\lambda = -n
λ=−n代入得
π
i
=
n
i
n
\pi_i = \frac {n_i}{n}
πi=nni
GMM算法过程如下:
- 随机初始化参数 π i , μ i , Σ i , i ∈ 1 , 2 , … , k \pi_i, \mu_i, \Sigma_i,\ \ i\in {1,2, … ,k} πi,μi,Σi, i∈1,2,…,k.
- E步:根据式 γ j i = π i p ( x j ∣ μ i , Σ i ) ∑ l = 1 k π l p ( x j ∣ μ l , Σ l ) \gamma_{ji}= \frac{\pi_i p(x_j| \mu_i, \Sigma_i)}{\displaystyle\sum_{l=1}^k \pi_l p(x_j| \mu_l, \Sigma_l)} γji=l=1∑kπlp(xj∣μl,Σl)πip(xj∣μi,Σi)计算每个样本由各个混合高斯成分生成的后验概率.
- M步:用下面的一系列公式更新参数
π
i
,
μ
i
,
Σ
i
,
i
∈
1
,
2
,
…
,
k
\pi_i, \mu_i, \Sigma_i,\ \ i\in {1,2, … ,k}
πi,μi,Σi, i∈1,2,…,k.
μ i = 1 n i ∑ j = 1 n γ j i x j Σ i = ∑ j = 1 n γ j i ( x j − μ i ) ( x j − μ i ) T n i π i = n i n \begin{aligned} \mu_i &= \frac 1 {n_i}\sum_{j=1}^n\gamma_{ji}x_j\\ \Sigma_i &= \frac {\displaystyle\sum_{j=1}^n\gamma_{ji}(x_j -\mu_i)(x_j -\mu_i)^T} {n_i}\\ \pi_i &= \frac {n_i}{n} \end{aligned} μiΣiπi=ni1j=1∑nγjixj=nij=1∑nγji(xj−μi)(xj−μi)T=nni
其中 n i = ∑ j = 1 n γ j i n_i = \sum_{j=1}^n \gamma_{ji} ni=∑j=1nγji. - 重复E步和M步直至收敛.
算法迭代结束条件:某一次迭代后参数的变化小于一个极小数。
与K-Means算法的对比
- GMM算法收敛前经历了更多次迭代,每次迭代需要更多计算量,通常运行K-Means找到GMM的一个合适的初始化值,接下来使用GMM算法进行微调;
- K-Means算法对数据点进行了硬分配,即每个数据点只属于唯一的聚类;而GMM算法基于后验概率对数据点进行了软分配;
- K-Means算法可以看成GMM算法的特殊形式(没有估计协方差,只估计了聚类的均值)。
10. PCA
10.1 最大方差形式
考虑一个数据集
{
x
1
,
…
,
x
N
}
,
x
n
∈
R
D
\{x_1,\dots,x_N\},x_n\in R^D
{x1,…,xN},xn∈RD,我们的目标是把这些数据投影到一个
M
(
M
<
D
)
M(M<D)
M(M<D)维的空间中。
假设降维至
M
M
M维空间,我们使用
M
M
M个
D
D
D维的单位向量
u
1
,
u
2
,
…
,
u
M
u_1,u_2,\dots,u_M
u1,u2,…,uM作为这个空间的基向量。由于是单位向量,需满足
u
k
T
u
k
=
1
,
k
=
1
,
2
,
…
,
M
u_k^Tu_k=1,k=1,2,\dots,M
ukTuk=1,k=1,2,…,M。
对于数据集中的任意一个样本
x
i
x_i
xi,投影至
u
k
u_k
uk方向后的数据变为
u
k
T
x
i
u_k^Tx_i
ukTxi,考虑投影后数据的方差(即在
u
k
u_k
uk方向的方差)
1
N
∑
n
=
1
N
{
u
k
T
x
n
−
u
k
T
x
ˉ
}
2
=
u
k
T
S
u
k
\frac1N\sum_{n=1}^N\{u_k^Tx_n-u_k^T \bar x\}^2=u_k^TSu_k
N1n=1∑N{ukTxn−ukTxˉ}2=ukTSuk
其中
x
ˉ
=
1
N
∑
n
=
1
N
x
n
S
=
1
N
∑
n
=
1
N
(
x
n
−
x
ˉ
)
(
x
n
−
x
ˉ
)
T
\begin{aligned} \bar x &=\frac1N\sum_{n=1}^Nx_n\\ S&=\frac1N\sum_{n=1}^N(x_n-\bar x)(x_n-\bar x)^T \end{aligned}
xˉS=N1n=1∑Nxn=N1n=1∑N(xn−xˉ)(xn−xˉ)T
优化函数为
arg
max
u
k
u
k
T
S
u
k
s
.
t
.
u
k
T
u
k
=
1
,
k
=
1
,
…
,
M
\begin{aligned} \arg \max_{u_k} &\quad u_k^TSu_k\\ s.t. & \quad u_k^Tu_k=1,k=1,\dots,M \end{aligned}
argukmaxs.t.ukTSukukTuk=1,k=1,…,M
对应的拉格朗日函数为
L
(
u
k
,
λ
k
)
=
u
k
T
S
u
k
+
λ
k
(
1
−
u
k
T
u
k
)
L(u_k,\lambda_k)=u_k^TSu_k+\lambda_k(1-u_k^Tu_k)
L(uk,λk)=ukTSuk+λk(1−ukTuk)
对
u
k
u_k
uk求偏导
∂
L
∂
u
k
=
2
S
u
k
−
2
λ
k
u
k
=
0
\frac{\partial L}{\partial u_k}=2Su_k-2\lambda_ku_k=0
∂uk∂L=2Suk−2λkuk=0
即
S
u
k
=
λ
k
u
k
Su_k=\lambda_ku_k
Suk=λkuk
则
u
k
u_k
uk是
S
S
S的特征向量,
λ
k
\lambda_k
λk是对应的特征值。
上式左乘
u
k
T
u_k^T
ukT可以得到
u
k
T
S
u
k
=
u
k
T
λ
k
u
k
=
λ
k
u_k^TSu_k=u_k^T\lambda_ku_k=\lambda_k
ukTSuk=ukTλkuk=λk
显然,该式对
∀
k
=
1
,
2
,
…
,
M
\forall k=1,2,\dots,M
∀k=1,2,…,M均成立。并且由该式可知,最大化方差其实就等价于最大化
λ
k
\lambda_k
λk。因而我们取
S
S
S最大的
M
M
M个特征值对应的特征向量作为基向量。
10.2 最小误差形式
引入
D
D
D维单位正交基集合
{
u
1
,
…
,
u
D
}
\{u_1,\dots,u_D\}
{u1,…,uD},且满足
u
i
T
u
j
=
δ
i
j
=
{
1
i
=
j
0
i
≠
j
u_i^Tu_j=\delta_{ij}=\begin{cases} 1 &i=j \\ 0 &i\neq j \end{cases}
uiTuj=δij={10i=ji=j
这时,每个数据点均可以被精确地表示为基向量的线性组合,即
x
n
=
∑
i
=
1
D
α
n
i
u
i
,
α
n
i
=
x
n
T
u
i
x_n=\sum_{i=1}^D \alpha_{ni}u_i,\quad \alpha_{ni}=x_n^Tu_i
xn=i=1∑Dαniui,αni=xnTui
我们的目标时是使用
M
(
M
<
D
)
M(M<D)
M(M<D)维的空间来近似表示原数据点,不失一般性,我们用前
M
M
M个基向量来表示
x
~
n
=
∑
i
=
1
M
z
n
i
u
i
+
∑
i
=
M
+
1
D
b
i
u
i
\tilde x_n =\sum_{i=1}^M z_{ni}u_i+\sum_{i=M+1}^Db_iu_i
x~n=i=1∑Mzniui+i=M+1∑Dbiui
其中
z
n
i
z_{ni}
zni依赖于数据点,
b
i
b_i
bi是常数。
我们的目标是最小化误差
J
=
1
N
∑
n
=
1
N
∣
∣
x
n
−
x
~
n
∣
∣
2
J=\frac1N\sum_{n=1}^N||x_n-\tilde x_n||^2
J=N1n=1∑N∣∣xn−x~n∣∣2
对上式展开得
J
=
1
N
∑
n
=
1
N
∣
∣
x
n
−
x
~
n
∣
∣
2
=
1
N
∑
n
=
1
N
(
x
n
−
x
~
n
)
T
(
x
n
−
x
~
n
)
=
1
N
∑
n
=
1
N
(
x
n
−
∑
i
=
1
M
z
n
i
u
i
−
∑
i
=
M
+
1
D
b
i
u
i
)
T
(
x
n
−
∑
i
=
1
M
z
n
i
u
i
−
∑
i
=
M
+
1
D
b
i
u
i
)
=
1
N
∑
n
=
1
N
(
x
n
T
−
∑
i
=
1
M
z
n
i
u
i
T
−
∑
i
=
M
+
1
D
b
i
u
i
T
)
(
x
n
−
∑
i
=
1
M
z
n
i
u
i
−
∑
i
=
M
+
1
D
b
i
u
i
)
=
1
N
∑
n
=
1
N
(
x
n
T
x
n
−
2
∑
i
=
1
M
z
n
i
x
n
T
u
i
−
2
∑
i
=
M
+
1
D
b
i
x
n
T
u
i
+
∑
i
=
1
M
z
n
i
2
+
∑
i
=
M
+
1
D
b
i
2
)
\begin{aligned} J&=\frac1N\sum_{n=1}^N||x_n-\tilde x_n||^2\\ &=\frac1N\sum_{n=1}^N(x_n-\tilde x_n)^T(x_n-\tilde x_n)\\ &=\frac1N\sum_{n=1}^N(x_n-\sum_{i=1}^Mz_{ni}u_i-\sum_{i=M+1}^Db_iu_i)^T(x_n-\sum_{i=1}^Mz_{ni}u_i-\sum_{i=M+1}^Db_iu_i)\\ &=\frac1N\sum_{n=1}^N(x_n^T-\sum_{i=1}^Mz_{ni}u_i^T-\sum_{i=M+1}^Db_iu_i^T)(x_n-\sum_{i=1}^Mz_{ni}u_i-\sum_{i=M+1}^Db_iu_i)\\ &=\frac1N\sum_{n=1}^N(x_n^Tx_n-2\sum_{i=1}^Mz_{ni}x_n^Tu_i-2\sum_{i=M+1}^Db_ix_n^Tu_i+\sum_{i=1}^Mz_{ni}^2+\sum_{i=M+1}^Db_i^2) \end{aligned}
J=N1n=1∑N∣∣xn−x~n∣∣2=N1n=1∑N(xn−x~n)T(xn−x~n)=N1n=1∑N(xn−i=1∑Mzniui−i=M+1∑Dbiui)T(xn−i=1∑Mzniui−i=M+1∑Dbiui)=N1n=1∑N(xnT−i=1∑MzniuiT−i=M+1∑DbiuiT)(xn−i=1∑Mzniui−i=M+1∑Dbiui)=N1n=1∑N(xnTxn−2i=1∑MznixnTui−2i=M+1∑DbixnTui+i=1∑Mzni2+i=M+1∑Dbi2)
J
J
J对
z
n
i
z_{ni}
zni和
b
i
b_i
bi分别求偏导得
∂
J
∂
z
n
i
=
1
N
(
−
2
x
n
T
u
i
+
2
z
n
i
)
=
0
∂
J
∂
b
i
=
1
N
∑
n
=
1
N
(
−
2
x
n
T
u
i
+
2
b
i
)
=
0
\begin{aligned} \frac{\partial J}{\partial z_{ni}}&=\frac1N(-2x_n^Tu_i+2z_{ni})=0\\ \frac{\partial J}{\partial b_i}&=\frac1N\sum_{n=1}^N(-2x_n^Tu_i+2b_{i})=0 \end{aligned}
∂zni∂J∂bi∂J=N1(−2xnTui+2zni)=0=N1n=1∑N(−2xnTui+2bi)=0
可得
z
n
i
=
x
n
T
u
i
b
i
=
x
ˉ
T
u
i
\begin{aligned} z_{ni}&=x_n^Tu_i\\ b_i&=\bar x^Tu_i \end{aligned}
znibi=xnTui=xˉTui
又由于
α
n
i
=
z
n
i
,
i
=
1
,
…
,
M
\alpha_{ni}=z_{ni},i=1,\dots,M
αni=zni,i=1,…,M,因此
x
n
−
x
~
n
=
∑
i
=
1
D
α
n
i
u
i
−
(
∑
i
=
1
M
z
n
i
u
i
+
∑
i
=
M
+
1
D
b
i
u
i
)
=
∑
i
=
M
+
1
D
(
α
n
i
−
b
i
)
u
i
\begin{aligned} x_n-\tilde{x}_n&=\sum_{i=1}^D \alpha_{ni}u_i-(\sum_{i=1}^M z_{ni}u_i+\sum_{i=M+1}^Db_iu_i)\\ &=\sum_{i=M+1}^D(\alpha_{ni}-b_i)u_i \end{aligned}
xn−x~n=i=1∑Dαniui−(i=1∑Mzniui+i=M+1∑Dbiui)=i=M+1∑D(αni−bi)ui
从而(注意到
u
i
T
u
j
=
1
⟺
i
=
j
u_i^Tu_j=1\iff i=j
uiTuj=1⟺i=j)
∣
∣
x
n
−
x
~
n
∣
∣
2
=
(
x
n
−
x
~
n
)
T
(
x
n
−
x
~
n
)
=
∑
i
=
M
+
1
D
(
α
n
i
−
b
i
)
u
i
T
⋅
∑
j
=
M
+
1
D
(
α
n
j
−
b
j
)
u
j
=
∑
i
=
M
+
1
D
(
α
n
i
−
b
i
)
2
=
∑
i
=
M
+
1
D
(
x
n
T
u
i
−
x
ˉ
T
u
i
)
2
\begin{aligned} ||x_n-\tilde{x}_n||^2&=(x_n-\tilde{x}_n)^T(x_n-\tilde{x}_n)\\ &=\sum_{i=M+1}^D(\alpha_{ni}-b_i)u_i^T \cdot \sum_{j=M+1}^D(\alpha_{nj}-b_j)u_j\\ &=\sum_{i=M+1}^D(\alpha_{ni}-b_i)^2\\ &=\sum_{i=M+1}^D(x_n^Tu_i-\bar x^Tu_i)^2 \end{aligned}
∣∣xn−x~n∣∣2=(xn−x~n)T(xn−x~n)=i=M+1∑D(αni−bi)uiT⋅j=M+1∑D(αnj−bj)uj=i=M+1∑D(αni−bi)2=i=M+1∑D(xnTui−xˉTui)2
代入得
J
=
1
N
∑
n
=
1
N
∣
∣
x
n
−
x
~
n
∣
∣
2
=
1
N
∑
n
=
1
N
∑
i
=
M
+
1
D
(
x
n
T
u
i
−
x
ˉ
T
u
i
)
2
=
∑
i
=
M
+
1
D
u
i
T
S
u
i
\begin{aligned} J&=\frac1N\sum_{n=1}^N||x_n-\tilde x_n||^2\\ &=\frac1N\sum_{n=1}^N\sum_{i=M+1}^D(x_n^Tu_i-\bar x^Tu_i)^2=\sum_{i=M+1}^Du_i^TSu_i\\ \end{aligned}
J=N1n=1∑N∣∣xn−x~n∣∣2=N1n=1∑Ni=M+1∑D(xnTui−xˉTui)2=i=M+1∑DuiTSui
而
S
u
i
=
λ
i
u
i
Su_i=\lambda_i u_i
Sui=λiui,故
J
=
∑
i
=
M
+
1
D
λ
i
J=\sum_{i=M+1}^D \lambda_i
J=i=M+1∑Dλi
最小化
J
J
J即选择
D
−
M
D-M
D−M个最小特征值对应的特征向量,这实则与最大化方差形式等价。
往年试题
分享了一些往年试题的博客链接,不保证试题的真实性,仅供参考。
哈工大2020秋机器学习期末试题
哈工大2019秋机器学习期末试题
哈工大机器学习复习笔记(一)
哈工大机器学习复习笔记(二)
哈工大机器学习复习笔记(三)
哈工大机器学习复习笔记(四)