哈工大机器学习复习笔记(四)

本篇文章是在参考西瓜书、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)=0A=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)=rixiyir
    显然, 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}.
算法:

  1. 随机初始化 k k k个簇中心 μ ( 0 ) = μ 1 ( 0 ) , … , μ k ( 0 ) \mu^{(0)}=\mu_1^{(0)},\dots,\mu_k^{(0)} μ(0)=μ1(0),,μk(0)
  2. 将每个训练样本打上距离其最近的簇中心的标签
    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∣∣μixj2
  3. 根据新的 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∣∣μxj2
    算法迭代终止的条件:当一轮迭代前后每个点所属的类别都不再变化,或者一轮迭代前后, μ \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=1m∣∣μC(j)xj2
    优化目标即
    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=1kj:C(j)=i∣∣μixj2

EM算法角度

  1. 固定 μ \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=1m∣∣μC(j)xj2=j=1mC(j)min∣∣μC(j)xj2
    即为每个样本分配一个距离最近的簇中心的类标签。
  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=1kj:C(j)=i∣∣μixj2=i=1kμiminj:C(j)=i∣∣μixj2
    即为每个类重新选取簇中心。

K-Means与EM算法的比较:

  • K-means 算法其实是EM算法的一种特殊情况;
  • K-Means算法对数据点进行了硬分配,即认为每个数据点只属于唯一的聚类;而EM算法则认为数据点是由多个分布共同生成的。

产生式模型角度

假设数据集来自于 k k k个方差相同的高斯分布的混合,不妨设第 i i i个分布的均值为 μ i \mu_i μi,且每个分布的协方差阵均为 σ 2 I \sigma^2I σ2I
每个训练样本产生步骤:

  1. P ( y = i ) P(y=i) P(y=i)的概率随机选择第 i i i个高斯分布
  2. 以第 i i i个高斯分布产生样本 x ∼ N ( μ i , σ 2 I ) x \sim N(\mu_i, \sigma^2I) xN(μ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(xy=i)N(μi,σ2I)p(x)=ip(xy=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=jx)P(y=ix)=logP(xy=j)P(y=j)P(xy=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} argmaxjP(xj)=argmaxji=1kP(yj=i,xj)=argmaxji=1kP(yj=i)P(xjyj=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} argmaxlogji=1kP(yj=i)P(xjyj=i)=argmaxjlogi=1kP(yj=i)P(xjyj=i)argmaxjlog(exp{21(xjμC(j))T(σ2I)1(xjμC(j))})=argmaxjlog(exp(2σ21∣∣xjμC(j)2))=argmaxj2σ21∣∣xjμC(j)2argmaxj∣∣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(Nkq),其中 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 Σ为协方差矩阵。
这里由于各分布的协方差矩阵不一定相同,所以决策面也不一定是线性的。

哈工大机器学习复习笔记(四)_第1张图片

给定训练样本集 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=1kπjp(xiuj,Σ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=1kπ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=ixj)=p(xj)p(zj=i)p(xjzj=i)=l=1kπ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=1np(xj)=j=1nlni=1kπ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 μilnp(Xπ,μ,Σ)=j=1nl=1kπlp(xjμl,Σl)πip(xjμi,Σi)Σi1(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=1kp(zj=ixj)p(zj=ixj)=l=1kπ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=1nγji=ni1j=1nγ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 Σilnp(Xπ,μ,Σ)=j=1nl=1kπlp(xjμl,Σl)πip(xjμi,Σi)(Σi1Σi1(xjμi)(xjμi)TΣi1)=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=1nγji(xjμi)(xjμi)T
对于混合系数 π i \pi_i πi,还需要满足约束条件 ∑ i = 1 k π i = 1 \displaystyle\sum^k_{i=1}\pi_i=1 i=1kπ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=1kπi1)
π 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 πilnp(Xπ,μ,Σ)+λ(i=1kπi1)=j=1nl=1kπ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=1kπij=1nl=1kπlp(xijμl,Σl)p(xjμi,Σi)+λi=1kπ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=1n(l=1kπlp(xjμl,Σl)i=1kπip(xjμi,Σi))+λi=1kπ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=1nl=1kπ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=1kπ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=1nπ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算法过程如下:

  1. 随机初始化参数 π i , μ i , Σ i ,    i ∈ 1 , 2 , … , k \pi_i, \mu_i, \Sigma_i,\ \ i\in {1,2, … ,k} πi,μi,Σi,  i1,2,,k.
  2. 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=1kπlp(xjμl,Σl)πip(xjμi,Σi)计算每个样本由各个混合高斯成分生成的后验概率.
  3. M步:用下面的一系列公式更新参数 π i , μ i , Σ i ,    i ∈ 1 , 2 , … , k \pi_i, \mu_i, \Sigma_i,\ \ i\in {1,2, … ,k} πi,μi,Σi,  i1,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=1nγjixj=nij=1nγ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.
  4. 重复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},xnRD,我们的目标是把这些数据投影到一个 M ( M < D ) M(MM(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=1N{ukTxnukTxˉ}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=1Nxn=N1n=1N(xnxˉ)(xnxˉ)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(1ukTuk)
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 ukL=2Suk2λ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=1Dαniui,αni=xnTui
我们的目标时是使用 M ( M < D ) M(MM(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=1Mzniui+i=M+1Dbiui
其中 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=1N∣∣xnx~n2
对上式展开得
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=1N∣∣xnx~n2=N1n=1N(xnx~n)T(xnx~n)=N1n=1N(xni=1Mzniuii=M+1Dbiui)T(xni=1Mzniuii=M+1Dbiui)=N1n=1N(xnTi=1MzniuiTi=M+1DbiuiT)(xni=1Mzniuii=M+1Dbiui)=N1n=1N(xnTxn2i=1MznixnTui2i=M+1DbixnTui+i=1Mzni2+i=M+1Dbi2)
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} zniJbiJ=N1(2xnTui+2zni)=0=N1n=1N(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} xnx~n=i=1Dαniui(i=1Mzniui+i=M+1Dbiui)=i=M+1D(αnibi)ui
从而(注意到 u i T u j = 1    ⟺    i = j u_i^Tu_j=1\iff i=j uiTuj=1i=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} ∣∣xnx~n2=(xnx~n)T(xnx~n)=i=M+1D(αnibi)uiTj=M+1D(αnjbj)uj=i=M+1D(αnibi)2=i=M+1D(xnTuixˉ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=1N∣∣xnx~n2=N1n=1Ni=M+1D(xnTuixˉTui)2=i=M+1DuiTSui
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+1Dλi
最小化 J J J即选择 D − M D-M DM个最小特征值对应的特征向量,这实则与最大化方差形式等价。

往年试题

分享了一些往年试题的博客链接,不保证试题的真实性,仅供参考。
哈工大2020秋机器学习期末试题
哈工大2019秋机器学习期末试题

哈工大机器学习复习笔记(一)
哈工大机器学习复习笔记(二)
哈工大机器学习复习笔记(三)
哈工大机器学习复习笔记(四)

你可能感兴趣的:(机器学习,人工智能,哈工大)