• 机器学习笔记之高斯混合模型(二)模型求解——尝试使用极大似然估计求解模型参数


    引言

    上一节介绍了高斯混合模型(Gaussian Mixture Model,GMM),本节将对高斯混合模型的模型参数进行求解。

    回顾:高斯混合模型

    概率生成模型的角度观察,概率模型 P ( X ) P(\mathcal X) P(X)的生成过程表示如下:

    • 引入一个隐变量 Z \mathcal Z Z Z \mathcal Z Z是一个基于参数的离散分布,假设该离散分布的数量为 K \mathcal K K个,该离散分布的 标签及对应概率分布 P ( Z ) P(\mathcal Z) P(Z) 表示如下:

      Z \mathcal Z Z z 1 z_1 z1 z 2 z_2 z2 ⋯ \cdots z K z_{\mathcal K} zK
      P ( Z ) P(\mathcal Z) P(Z) p 1 p_1 p1 p 2 p_2 p2 ⋯ \cdots p K p_{\mathcal K} pK

      并满足:
      ∑ k = 1 K p k = 1 \sum_{k=1}^{\mathcal K} p_{k} = 1 k=1Kpk=1

    • 任意 z j ∈ Z z_j \in \mathcal Z zjZ唯一对应一个高斯分布 N ( μ j , Σ j ) \mathcal N(\mu_j,\Sigma_j) N(μj,Σj),因而共包含 K \mathcal K K个高斯分布:

      Z \mathcal Z Z z 1 z_1 z1 z 2 z_2 z2 ⋯ \cdots z K z_{\mathcal K} zK
      P ( x ∣ Z = z k ) P(x \mid \mathcal Z = z_k) P(xZ=zk) N ( μ 1 , Σ 1 ) \mathcal N(\mu_1,\Sigma_1) N(μ1,Σ1) N ( μ 2 , Σ 2 ) \mathcal N(\mu_2,\Sigma_2) N(μ2,Σ2) ⋯ \cdots N ( μ K , Σ K ) \mathcal N(\mu_{\mathcal K},\Sigma_{\mathcal K}) N(μK,ΣK)

      数学符号表达即:
      P ( x ∣ z k ) ∼ N ( μ k , Σ k ) ( k = 1 , 2 , ⋯   , K ; x ∈ X ) P(x \mid z_k) \sim \mathcal N(\mu_k,\Sigma_k) \quad (k=1,2,\cdots,\mathcal K ; x \in \mathcal X) P(xzk)N(μk,Σk)(k=1,2,,K;xX)

    • 任意样本 x ∈ X x \in \mathcal X xX的生成过程为:
      N ( x ∣ μ k , Σ k ) \mathcal N(x \mid \mu_k,\Sigma_k) N(xμk,Σk)表示在高斯分布 N ( μ k , Σ k ) \mathcal N(\mu_k,\Sigma_k) N(μk,Σk)中随机生成一个样本点 x x x;
      P ( x ) = ∑ Z P ( x ∣ Z ) P ( Z ) = ∑ k = 1 K N ( x ∣ μ k , Σ k ) ⋅ p k P(x) = \sum_{\mathcal Z}P(x \mid \mathcal Z)P(\mathcal Z) = \sum_{k=1}^{\mathcal K}\mathcal N(x \mid \mu_k,\Sigma_k)\cdot p_k P(x)=ZP(xZ)P(Z)=k=1KN(xμk,Σk)pk

    • 从而整个样本集合 X \mathcal X X的生成过程(即概率模型):
      P ( X ) = ∑ Z P ( X ∣ Z ) P ( Z )   = ∑ k = 1 K P ( X ∣ Z = z k ) P ( Z = z k ) = ∑ k = 1 K N ( X ∣ μ k , Σ k ) ⋅ p k ( ∑ k = 1 K p k = 1 ) P(X)=ZP(XZ)P(Z) =Kk=1P(XZ=zk)P(Z=zk)=Kk=1N(Xμk,Σk)pk(Kk=1pk=1)

      P(X) =ZP(XZ)P(Z)=k=1KP(XZ=zk)P(Z=zk)=k=1KN(Xμk,Σk)pk(k=1Kpk=1)
      其中 N ( X ∣ μ k , Σ k ) \mathcal N(\mathcal X \mid \mu_k,\Sigma_k) N(Xμk,Σk)表示从高斯分布 N ( μ k , Σ k ) \mathcal N(\mu_k,\Sigma_k) N(μk,Σk)中生成的样本 X \mathcal X X

    模型求解:极大似然估计

    场景描述

    不同于高斯判别分析(Gaussain Discriminant Analysis,GDA)这样的监督学习的分类模型,高斯混合模型所处理的样本不包含标签信息
    因此,从数据集合的角度观察,它只包含样本信息。假设数据集合内共包含 N N N个样本,并假设数据集合中任意两个样本之间均属于 独立同分布(Independent and Identically Distributed,i.i.d.)关系。
    X = { x ( 1 ) , x ( 2 ) , ⋯   , x ( N ) } x ( i ) ∼ i.i.d. x ( j ) ( x ( i ) , x ( j ) ∈ X ) \mathcal X = \{x^{(1)},x^{(2)},\cdots,x^{(N)}\} \\ x^{(i)} \overset{\text{i.i.d.}}{\sim} x^{(j)} \quad (x^{(i)},x^{(j)} \in \mathcal X) X={x(1),x(2),,x(N)}x(i)i.i.d.x(j)(x(i),x(j)X)
    基于样本集合的生成过程,每一个样本 x ( i ) x^{(i)} x(i)均对应一个隐变量 z ( i ) z^{(i)} z(i)。因而,从隐变量数量角度出发,隐变量 Z \mathcal Z Z表达如下:
    Z = { z ( 1 ) , z ( 2 ) , ⋯   , z ( N ) } \mathcal Z = \{z^{(1)},z^{(2)},\cdots,z^{(N)}\} Z={z(1),z(2),,z(N)}
    从隐变量的 维度角度出发,任意一个隐变量 z ( i ) ( i = 1 , 2 , ⋯   , N ) z^{(i)}(i=1,2,\cdots,N) z(i)(i=1,2,,N)都存在 K \mathcal K K种选择。即:
    z ( i ) ∈ { z 1 , z 2 , ⋯   , z K } ( i = 1 , 2 , ⋯   , N ) z^{(i)} \in \{z_1,z_2,\cdots,z_{\mathcal K}\} \quad (i=1,2,\cdots,N) z(i){z1,z2,,zK}(i=1,2,,N)
    ( X , Z ) (\mathcal X,\mathcal Z) (X,Z)完整数据(Complete Data)。

    模型参数整理

    高斯混合模型求解本质上依然是求解概率模型 P ( X ∣ θ ) P(\mathcal X \mid \theta) P(Xθ)的模型参数 θ \theta θ。首先想到的方法自然是极大似然估计(Maximum Likelihood Estimate,MLE)。

    首先观察模型参数 θ \theta θ是什么?
    从样本的生成过程来看,样本的生成一共经过两次随机

    • 隐变量 Z \mathcal Z Z中随机选择一个 离散分布标签
    • 离散分布标签确定的条件下,从离散分布标签对应的高斯分布 随机生成一个样本;

    上述过程中,共存在两类参数

    • 选择离散分布标签的概率
      p 1 , p 2 , ⋯   , p K ( ∑ k = 1 K p k = 1 ) p_1,p_2,\cdots,p_{\mathcal K} \quad (\sum_{k=1}^{\mathcal K} p_k = 1) p1,p2,,pK(k=1Kpk=1)
    • 各标签对应高斯分布的模型参数
      ( μ 1 , Σ 1 ) , ( μ 2 , Σ 2 ) , ⋯   , ( μ K , Σ K ) (\mu_1,\Sigma_1),(\mu_2,\Sigma_2),\cdots,(\mu_{\mathcal K},\Sigma_{\mathcal K}) (μ1,Σ1),(μ2,Σ2),,(μK,ΣK)

    因此,模型参数 θ \theta θ可表示为一个参数集合
    θ = { p 1 , p 2 , ⋯   , p K , μ 1 , μ 2 , ⋯   , μ K , Σ 1 , Σ 2 , ⋯   , Σ K } \theta = \{p_1,p_2,\cdots,p_{\mathcal K},\mu_1,\mu_2,\cdots,\mu_{\mathcal K},\Sigma_1,\Sigma_2,\cdots,\Sigma_{\mathcal K}\} θ={p1,p2,,pK,μ1,μ2,,μK,Σ1,Σ2,,ΣK}

    求解过程

    极大似然估计表示如下:
    基于样本间‘独立同分布’,可进行如下展开:
    θ ^ M L E = arg ⁡ max ⁡ θ log ⁡ P ( X ∣ θ ) = arg ⁡ max ⁡ θ log ⁡ [ ∏ i = 1 N P ( x ( i ) ∣ θ ) ] = arg ⁡ max ⁡ θ ∑ i = 1 N log ⁡ P ( x ( i ) ∣ θ ) ˆθMLE=argmaxθlogP(Xθ)=argmaxθlog[Ni=1P(x(i)θ)]=argmaxθNi=1logP(x(i)θ)

    θ^MLE=θargmaxlogP(Xθ)=θargmaxlog[i=1NP(x(i)θ)]=θargmaxi=1NlogP(x(i)θ)

    P ( x ( i ) ) P(x^{(i)}) P(x(i))看作样本 x ( i ) x^{(i)} x(i)在高斯混合模型中的生成过程,因此上式可转化为:
    θ ^ M L E = arg ⁡ max ⁡ θ ∑ i = 1 N log ⁡ [ ∑ k = 1 K N ( x ( i ) ∣ μ k , Σ k ) ⋅ p k ] \hat \theta_{MLE} = \mathop{\arg\max}\limits_{\theta} \sum_{i=1}^N \log \left[\sum_{k=1}^{\mathcal K} \mathcal N(x^{(i)}\mid \mu_k,\Sigma_k) \cdot p_k\right] θ^MLE=θargmaxi=1Nlog[k=1KN(x(i)μk,Σk)pk]

    这种 log ⁡ \log log中包含连加号 的形式是无法化简的,实际上,如果继续对 θ \theta θ求解,会发现参数 θ \theta θ无法求出解析解
    我们对参数集合 θ \theta θ中的第一个元素: p 1 p_1 p1求解析解进行示例

    • 似然函数 L ( θ ) \mathcal L(\theta) L(θ) L ( θ ) \mathcal L(\theta) L(θ)表示如下:
      L ( θ ) = ∑ i = 1 N log ⁡ [ ∑ k = 1 K N ( x ( i ) ∣ μ k , Σ k ) ⋅ p k ] ( θ = { p 1 , p 2 , ⋯   , p K , μ 1 , μ 2 , ⋯   , μ K , Σ 1 , Σ 2 , ⋯   , Σ K } ) \mathcal L(\theta) = \sum_{i=1}^N \log \left[\sum_{k=1}^{\mathcal K} \mathcal N(x^{(i)}\mid \mu_k,\Sigma_k) \cdot p_k\right] \quad (\theta = \{p_1,p_2,\cdots,p_{\mathcal K},\mu_1,\mu_2,\cdots,\mu_{\mathcal K},\Sigma_1,\Sigma_2,\cdots,\Sigma_{\mathcal K}\}) L(θ)=i=1Nlog[k=1KN(x(i)μk,Σk)pk](θ={p1,p2,,pK,μ1,μ2,,μK,Σ1,Σ2,,ΣK})
    • 将上述公式展开,结果如下:
      L ( p 1 , ⋯   , p K , μ 1 , ⋯   , μ K , Σ 1 , ⋯   , Σ K ) = ∑ i = 1 N log ⁡ [ N ( x ( i ) ∣ μ 1 , Σ 1 ) ⋅ p 1 + ⋯ + N ( x ( i ) ∣ μ K , Σ K ) ⋅ p K ] = { log ⁡ [ N ( x ( 1 ) ∣ μ 1 , Σ 1 ) ⋅ p 1 + ⋯ + N ( x ( 1 ) ∣ μ K , Σ K ) ⋅ p K ] } + ⋯ + { log ⁡ [ N ( x ( N ) ∣ μ 1 , Σ 1 ) ⋅ p 1 + ⋯ + N ( x ( N ) ∣ μ K , Σ K ) ⋅ p K ] } \mathcal L(p_1,\cdots,p_{\mathcal K},\mu_1,\cdots,\mu_{\mathcal K},\Sigma_1,\cdots,\Sigma_{\mathcal K}) = \sum_{i=1}^{N} \log \left[\mathcal N(x^{(i)} \mid \mu_1,\Sigma_1) \cdot p_1 + \cdots + \mathcal N(x^{(i)} \mid \mu_{\mathcal K},\Sigma_{\mathcal K}) \cdot p_{\mathcal K}\right] \\ = \left\{\log \left[\mathcal N(x^{(1)} \mid \mu_1,\Sigma_1) \cdot p_1 + \cdots + \mathcal N(x^{(1)} \mid \mu_{\mathcal K},\Sigma_{\mathcal K}) \cdot p_{\mathcal K}\right]\right\} + \cdots + \left\{\log \left[\mathcal N(x^{(N)} \mid \mu_1,\Sigma_1) \cdot p_1 + \cdots + \mathcal N(x^{(N)} \mid \mu_{\mathcal K},\Sigma_{\mathcal K}) \cdot p_{\mathcal K}\right]\right\} L(p1,,pK,μ1,,μK,Σ1,,ΣK)=i=1Nlog[N(x(i)μ1,Σ1)p1++N(x(i)μK,ΣK)pK]={log[N(x(1)μ1,Σ1)p1++N(x(1)μK,ΣK)pK]}++{log[N(x(N)μ1,Σ1)p1++N(x(N)μK,ΣK)pK]}
    • 上述公式中共包含 N N N项连加,并且每一项均包含 p 1 p_1 p1。令 L ( θ ) \mathcal L(\theta) L(θ) p 1 p_1 p1求偏导。因而 p 2 , ⋯   , p K , μ 1 , ⋯   , μ K , Σ 1 , ⋯   , Σ K p_2,\cdots,p_{\mathcal K},\mu_1,\cdots,\mu_{\mathcal K},\Sigma_1,\cdots,\Sigma_{\mathcal K} p2,,pK,μ1,,μK,Σ1,,ΣK均视作常数。为简化步骤,以第一项为例:
      ∂ ∂ p 1 log ⁡ { [ N ( x ( 1 ) ∣ μ 1 , Σ 1 ) ⋅ p 1 + ⋯ + N ( x ( 1 ) ∣ μ K , Σ K ) ⋅ p K ] } = 1 N ( x ( 1 ) ∣ μ 1 , Σ 1 ) ⋅ p 1 + ⋯ + N ( x ( 1 ) ∣ μ K , Σ K ) ⋅ p K ⋅ ∂ ∂ p 1 [ N ( x ( 1 ) ∣ μ 1 , Σ 1 ) ⋅ p 1 + ⋯ + N ( x ( 1 ) ∣ μ K , Σ K ) ⋅ p K ] p1log{[N(x(1)μ1,Σ1)p1++N(x(1)μK,ΣK)pK]}=1N(x(1)μ1,Σ1)p1++N(x(1)μK,ΣK)pKp1[N(x(1)μ1,Σ1)p1++N(x(1)μK,ΣK)pK]
      p1log{[N(x(1)μ1,Σ1)p1++N(x(1)μK,ΣK)pK]}=N(x(1)μ1,Σ1)p1++N(x(1)μK,ΣK)pK1p1[N(x(1)μ1,Σ1)p1++N(x(1)μK,ΣK)pK]

      观察方括号中的项只有第一项包含 p 1 p_1 p1,其余项均不含 p 1 p_1 p1。因此:
      ∂ ∂ p 1 [ N ( x ( 1 ) ∣ μ 1 , Σ 1 ) ⋅ p 1 + ⋯ + N ( x ( 1 ) ∣ μ K , Σ K ) ⋅ p K ] = ∂ ∂ p 1 [ N ( x ( 1 ) ∣ μ 1 , Σ 1 ) ⋅ p 1 ] = N ( x ( 1 ) ∣ μ 1 , Σ 1 ) p1[N(x(1)μ1,Σ1)p1++N(x(1)μK,ΣK)pK]=p1[N(x(1)μ1,Σ1)p1]=N(x(1)μ1,Σ1)
      p1[N(x(1)μ1,Σ1)p1++N(x(1)μK,ΣK)pK]=p1[N(x(1)μ1,Σ1)p1]=N(x(1)μ1,Σ1)

      因此, L ( θ ) \mathcal L(\theta) L(θ)第一项对 p 1 p_1 p1的偏导结果为
      N ( x ( 1 ) ∣ μ 1 , Σ 1 ) N ( x ( 1 ) ∣ μ 1 , Σ 1 ) ⋅ p 1 + ⋯ + N ( x ( 1 ) ∣ μ K , Σ K ) ⋅ p K \frac{\mathcal N(x^{(1)} \mid \mu_1,\Sigma_1)}{\mathcal N(x^{(1)} \mid \mu_1,\Sigma_1) \cdot p_1 + \cdots + \mathcal N(x^{(1)} \mid \mu_{\mathcal K},\Sigma_{\mathcal K}) \cdot p_{\mathcal K}} N(x(1)μ1,Σ1)p1++N(x(1)μK,ΣK)pKN(x(1)μ1,Σ1)
      同理, L ( θ ) \mathcal L(\theta) L(θ)全部 N N N项对 p 1 p_1 p1的求导结果为
      ∂ L ( θ ) ∂ p 1 = ∑ i = 1 N N ( x ( i ) ∣ μ k , Σ k ) ∑ k = 1 K N ( x ( i ) ∣ μ k , Σ k ) ⋅ p k \frac{\partial \mathcal L(\theta)}{\partial p_1} = \sum_{i=1}^N \frac{\mathcal N(x^{(i)} \mid \mu_k,\Sigma_k)}{\sum_{k=1}^{\mathcal K} \mathcal N(x^{(i)} \mid \mu_k,\Sigma_k)\cdot p_k} p1L(θ)=i=1Nk=1KN(x(i)μk,Σk)pkN(x(i)μk,Σk)
      ∂ L ( θ ) ∂ p 1 ≜ 0 \frac{\partial \mathcal L(\theta)}{\partial p_1} \triangleq 0 p1L(θ)0,则有:
      N ( x ( 1 ) ∣ μ 1 , Σ 1 ) = N ( x ( 2 ) ∣ μ 1 , Σ 1 ) = ⋯ = N ( x ( N ) ∣ μ 1 , Σ 1 ) = 0 \mathcal N(x^{(1)} \mid \mu_1,\Sigma_1) = \mathcal N(x^{(2)} \mid \mu_1,\Sigma_1) = \cdots = \mathcal N(x^{(N)} \mid \mu_1,\Sigma_1) = 0 N(x(1)μ1,Σ1)=N(x(2)μ1,Σ1)==N(x(N)μ1,Σ1)=0
      因而没有求得 p 1 p_1 p1的解析解
      同理,其他模型参数同样无法求出解析解

    使用极大似然估计求解高斯混合模型的参数 θ \theta θ宣告失败。

    下一解将介绍使用EM算法求解高斯混合模型的模型参数

    相关参考:
    机器学习-高斯混合模型(2) -极大似然

  • 相关阅读:
    windows下git提交修改文件名大小写提交无效问题
    扑克牌顺子题
    Oracle的基本使用
    Spire.XLS for Java 12.11.8 Excel to PDF bug Fix
    exec()和eval()
    Java 多线程(五):锁(三)
    (JavaSE) 数组
    【C进阶】——预处理详解
    HarmonyOS服务卡片开发指导(Stage模型)概述
    【学生管理系统】权限管理
  • 原文地址:https://blog.csdn.net/qq_34758157/article/details/126776239