首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 23-09-05 19:04
  • 2807
  • 9726
blog.csdn.net

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

  • 引言
    • 回顾:高斯混合模型
    • 模型求解:极大似然估计
      • 场景描述
      • 模型参数整理
      • 求解过程

引言

上一节介绍了高斯混合模型(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=1∑K​pk​=1

  • 任意 z j ∈ Z z_j in mathcal Z zj​∈Z均唯一对应一个高斯分布 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(x∣Z=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(x∣zk​)∼N(μk​,Σk​)(k=1,2,⋯,K;x∈X)

  • 则任意样本 x ∈ X x in mathcal X x∈X的生成过程为:
    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)=Z∑​P(x∣Z)P(Z)=k=1∑K​N(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(X∣Z)P(Z) =∑k=1KP(X∣Z=zk)P(Z=zk)=∑k=1KN(X∣μk,Σk)⋅pk(∑k=1Kpk=1)" role="presentation" style="position: relative;">P(X) =∑ZP(X∣Z)P(Z)=∑k=1KP(X∣Z=zk)P(Z=zk)=∑k=1KN(X∣μk,Σk)⋅pk(∑k=1Kpk=1)P(X)=∑ZP(X∣Z)P(Z) =∑k=1KP(X∣Z=zk)P(Z=zk)=∑k=1KN(X∣μk,Σk)⋅pk(∑k=1Kpk=1)
    P(X) ​=Z∑​P(X∣Z)P(Z)=k=1∑K​P(X∣Z=zk​)P(Z=zk​)=k=1∑K​N(X∣μk​,Σk​)⋅pk​(k=1∑K​pk​=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{ ext{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 heta) P(X∣θ)的模型参数 θ heta θ。首先想到的方法自然是极大似然估计(Maximum Likelihood Estimate,MLE)。

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

  • 从隐变量 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=1∑K​pk​=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​)

因此,模型参数 θ heta θ可表示为一个参数集合:
θ = { p 1 , p 2 , ⋯   , p K , μ 1 , μ 2 , ⋯   , μ K , Σ 1 , Σ 2 , ⋯   , Σ K } heta = {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=arg⁡maxθ⁡log⁡P(X∣θ)=arg⁡maxθ⁡log⁡[∏i=1NP(x(i)∣θ)]=arg⁡maxθ⁡∑i=1Nlog⁡P(x(i)∣θ)" role="presentation" style="position: relative;">θ^MLE=argmaxθlogP(X∣θ)=argmaxθlog[∏i=1NP(x(i)∣θ)]=argmaxθ∑i=1NlogP(x(i)∣θ)θ^MLE=arg⁡maxθ⁡log⁡P(X∣θ)=arg⁡maxθ⁡log⁡[∏i=1NP(x(i)∣θ)]=arg⁡maxθ⁡∑i=1Nlog⁡P(x(i)∣θ)
θ^MLE​​=θargmax​logP(X∣θ)=θargmax​log[i=1∏N​P(x(i)∣θ)]=θargmax​i=1∑N​logP(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 heta_{MLE} = mathop{argmax}limits_{ heta} sum_{i=1}^N log left[sum_{k=1}^{mathcal K} mathcal N(x^{(i)}mid mu_k,Sigma_k) cdot p_k ight] θ^MLE​=θargmax​i=1∑N​log[k=1∑K​N(x(i)∣μk​,Σk​)⋅pk​]

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

  • 设似然函数为 L ( θ ) mathcal L( heta) L(θ), L ( θ ) mathcal L( heta) 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( heta) = sum_{i=1}^N log left[sum_{k=1}^{mathcal K} mathcal N(x^{(i)}mid mu_k,Sigma_k) cdot p_k ight] quad ( heta = {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=1∑N​log[k=1∑K​N(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} ight] \ = 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} ight] ight} + 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} ight] ight} L(p1​,⋯,pK​,μ1​,⋯,μK​,Σ1​,⋯,ΣK​)=i=1∑N​log[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( heta) 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)⋅pK⋅∂∂p1[N(x(1)∣μ1,Σ1)⋅p1+⋯+N(x(1)∣μK,ΣK)⋅pK]" role="presentation" style="position: relative;">∂∂p1log{[N(x(1)∣μ1,Σ1)⋅p1+⋯+N(x(1)∣μK,ΣK)⋅pK]}=1N(x(1)∣μ1,Σ1)⋅p1+⋯+N(x(1)∣μK,ΣK)⋅pK⋅∂∂p1[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]}=1N(x(1)∣μ1,Σ1)⋅p1+⋯+N(x(1)∣μK,ΣK)⋅pK⋅∂∂p1[N(x(1)∣μ1,Σ1)⋅p1+⋯+N(x(1)∣μK,ΣK)⋅pK]
    ​∂p1​∂​log{[N(x(1)∣μ1​,Σ1​)⋅p1​+⋯+N(x(1)∣μK​,ΣK​)⋅pK​]}=N(x(1)∣μ1​,Σ1​)⋅p1​+⋯+N(x(1)∣μK​,ΣK​)⋅pK​1​⋅∂p1​∂​[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)" role="presentation" style="position: relative;">∂∂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)
    ​∂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( heta) 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​)⋅pK​N(x(1)∣μ1​,Σ1​)​
    同理, L ( θ ) mathcal L( heta) 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( heta)}{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} ∂p1​∂L(θ)​=i=1∑N​∑k=1K​N(x(i)∣μk​,Σk​)⋅pk​N(x(i)∣μk​,Σk​)​
    令 ∂ L ( θ ) ∂ p 1 ≜ 0 frac{partial mathcal L( heta)}{partial p_1} riangleq 0 ∂p1​∂L(θ)​≜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​的解析解。
    同理,其他模型参数同样无法求出解析解。

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

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

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

注:本文转载自blog.csdn.net的静静的喝酒的文章"https://blog.csdn.net/qq_34758157/article/details/126776239"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top