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

news2024/11/18 9:35:48

本篇文章是在参考西瓜书、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 Σ为协方差矩阵。
这里由于各分布的协方差矩阵不一定相同,所以决策面也不一定是线性的。

给定训练样本集 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(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=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(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=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秋机器学习期末试题

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/195238.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Scala 简单实现数据库连接池

在使用JDBC的时候&#xff0c;连接池是非常宝贵的资源。为了复用这些资源&#xff0c;可以将连接保存在一个队列中。当需要的时候可以从队列中取出未使用的连接。如果没有可用连接&#xff0c;则可以在一定时间内等待&#xff0c;直到队列中有可用的连接&#xff0c;否则将抛出…

浅谈估值模型:PB指标与剩余收益估值

摘要及声明 1&#xff1a;本文简单介绍PB指标的推导以及剩余收益的估值方式&#xff1b; 2&#xff1a;本文主要为理念的讲解&#xff0c;模型也是笔者自建&#xff0c;文中假设与观点是基于笔者对模型及数据的一孔之见&#xff0c;若有不同见解欢迎随时留言交流&#xff1b…

【HTML】HTML 标签 ① ( 骨架标签 | 双标签和单标签 | 嵌套关系和并列关系 | 文档类型 | 页面语言 | 编码字符集 )

文章目录一、HTML 标签简介二、HTML 骨架标签三、双标签和单标签四、嵌套关系和并列关系五、文档类型六、页面语言七、编码字符集一、HTML 标签简介 HTML 英文全称 " HyperText Mark-up Language " , 中文名称是 " 超文本标记语言 " ; 多媒体 : 超文本 指…

小 C 爱观察(observe)

小 C 爱观察&#xff08;observe&#xff09;题目描述输入格式输出格式样例输入数据#1输出数据#1解释#1输入数据#2输出数据#2输入数据#3输出数据#3题目描述 小 C 非常喜欢树。上次后院的蚂蚁看腻了&#xff0c;这次准备来观察树。 小 C 每天起得早早的&#xff0c;给小树浇水…

shell 流程控制之条件判断及案例

目录 流程控制之条件判断 一&#xff0c;if条件语句的语法及案例 1&#xff0c;单分支结构 2&#xff0c;双分支结构 3&#xff0c;多分支结构 二&#xff0c;复合指令 三&#xff0c; exit退出程序 四&#xff0c; 多条件判断语句case 流程控制之条件判断 条件判断语句…

【SpringCloud】Sentinel 之隔离与降级

一、上集回顾上级文章地址&#xff1a;【SpringCloud】Sentinel 之流量控制_面向架构编程的博客-CSDN博客上一篇文章我们讲解了Sentinel 流量控制、流控效果、热点参数限流的用法&#xff0c;统称为限流&#xff0c;它是一种预防措施&#xff0c;可以尽量避免因高并发而引起的服…

根据官方文档详细说明 Kubernetes 网络流量走向,包含详细的图文说明和介绍

根据官方文档详细说明 Kubernetes 网络流量走向&#xff0c;包含详细的图文说明和介绍。 阅读本文&#xff0c;你可以了解在 Kubernetes 内外&#xff0c;数据包是如何转发的&#xff0c;从原始的 Web 请求开始&#xff0c;到托管应用程序的容器。 Kubernetes 网络要求 在深入…

【three.js】本地搭建Threejs官方文档网站 解决threejs官方文档打开过慢得到问题

本文主要为了解决three.js 官方文档 打开过慢的问题 因为Three.js官网是国外的服务器&#xff0c;所以为了方便学习和快速的查阅文档&#xff0c;我们可以自己搭建Three.js官网和文档&#xff0c;方便随时查看案例和文档内容进行学习。 1、首先进入threejs库GitHub地址&#xf…

如何成为一名FPGA工程师?需要掌握哪些知识?

我国每年对于FPGA设计人才的需求缺口很大。在需求缺口巨大的情形下&#xff0c;发展前景相对可观。那么如何成为一名FPGA工程师&#xff1f; 什么是FPGA&#xff1f; FPGA&#xff08;FieldProgrammable Gate Array&#xff09;&#xff0c;即现场可编程门阵列&#xff0c;它…

新手入门Pinia

什么是Pinia Pinia 是 Vue 的专属状态管理库&#xff0c;它允许你跨组件或页面共享状态。它和Vuex作用类似(发音为 /piːnjʌ/),官网 为什么要使用Pinia 与 Vuex 相比&#xff0c;Pinia 不仅提供了一个更简单的 API&#xff0c;也提供了符合组合式 API 风格的 API&#xff0…

vue项目创建

前提&#xff1a;node安装&#xff1a;02node安装_哔哩哔哩_bilibili 1. 查看node版本 查看node版本 node -v 查看npm 版本 npm -v 2. 输入cmd 用管理员打开控制台 3. 设置淘宝镜像 npm config set registry https://registry.npm.taobao.org 4. 安装vue脚手架 npm install -g …

北大青鸟昌平校区:2023年云计算发展趋势!

云计算的大规模应用一直是许多最具变革性技术——如人工智能、物联网等的关键驱动力&#xff0c;未来也将进一步推动虚拟现实和增强现实(VR/AR)、元宇宙、甚至量子计算等技术的发展。近日&#xff0c;在美国《福布斯》网站报道中&#xff0c;列出了2023年云计算领域的五大主要趋…

56.Isaac教程--ROS

ROS ISAAC教程合集地址文章目录ROS安装ROS创建和使用自定义 ROS 包创建 ROS BridgeRos节点时间同步器消息转换器基地姿势同步自定义小码示例&#xff1a;将 ROS 导航堆栈与 Isaac 结合使用在此示例上构建将 Isaac 映射转换为 ROS 映射Isaac 和机器人操作系统 (ROS) 都使用消息传…

other-chatGPT记录

title: other-chatGPT记录 categories: Others tags: [人工智能, ai, 机器人, chatGPT] date: 2023-02-02 10:04:33 comments: false mathjax: true toc: true other-chatGPT记录 前篇 官网 https://openai.com/api - https://openai.com/api/测试 - https://platform.openai.…

DSP_CCS7实现变量的导出与MatLAB读取

前言 最近在做基于dsp平台的无通信接口系统辨识&#xff0c;因此需要直接利用CCS将数据导出&#xff0c;然后再利用MatLAB解析读取后的数据。MatLAB的代码参考了以下这篇链接: -/导出CCS3.3数据及使用matlab处理的方法.md at master dailai/- GitHub 高版本的CCS&#xff…

GitHub访问问题与 Steam++下载及使用(适合小白)

前言 &#x1f4dc; “ 作者 久绊A ” 专注记录自己所整理的Java、web、sql等&#xff0c;IT技术干货、学习经验、面试资料、刷题记录&#xff0c;以及遇到的问题和解决方案&#xff0c;记录自己成长的点滴 ​ 目录 前言 一、Steam的介绍 1、大概介绍 2、详细介绍 二、Ste…

Unity与Android交互(双端通信)

前言 最近小编开始做关于手部康复的项目&#xff0c;需要Android集成Unity&#xff0c;以Android为主&#xff0c;Unity为辅的开发&#xff1b;上一篇给大家分享了Unity嵌入Android的操作过程&#xff0c;所以今天想给大家分享一下双端通信的知识&#xff1b; 一. Android与Un…

安装OpenResty

安装OpenResty 1.安装 首先你的Linux虚拟机必须联网 1&#xff09;安装开发库 首先要安装OpenResty的依赖开发库&#xff0c;执行命令&#xff1a; yum install -y pcre-devel openssl-devel gcc --skip-broken2&#xff09;安装OpenResty仓库 你可以在你的 CentOS 系统中…

物联网平台+业务平台基本架构设计与优化想法

前言 目前的交付底座有点老&#xff0c;而且集成的有点杂&#xff0c;计划是要升级下&#xff0c;先说想法&#xff0c;看领导做不做。 1 业务平台定位 我们的愿景&#xff1a;通过物联平台赋能&#xff0c;让数据产生价值。 为客户提供可视化的平台&#xff08;数据价值…

【王道数据结构】第二章 | 线性表

目录 2.1线性表的定义 2.2线性表的基础操作 2.3顺序表的定义 2.4顺序表的基本操作 2.5 线性表的链式表示 2.1线性表的定义 线性表是具有相同数据类型的n(n>0)个数据元素的有限序列&#xff0c;其中n为表长&#xff0c;当n0时线性表是一个空表。若用L命名线性表&#xf…