高斯混合模型详细推导

一、高斯混合模型定义

  高斯混合模型具有如下概率分布形式:

P(y|θ)=k=1Kαkϕ(y|θk)    (9.24)

其中,α是系数,αk0k=1Kαk=1ϕ(y|θk)是高斯分布,θk=(μk,σk2)

ϕ(y|θk)=12πσkexp((yμk)22σk2)    (9.25)

为第k个高斯分布。

 

二、确定模型的对数似然函数

  设想观测数据yjj=1,2,,N是这样产生的:首先依概率αk选择第k个高斯分布模型ϕ(y|θk);然后依第k个分模型的概率分布ϕ(y|θk)生成观测数据yj。反映观测数据yj来自第k个分模型的数据是未知的,k=1,2,,K,以隐变量γjk表示,其定义如下:

γjk=1, if yj from ϕkγjk=0, else    (9.27)

γjk是0-1随机变量。

  模型的对数似然函数为

logP(y|θ)=logj=1N[k=1Kαkϕ(yj|θk)]=j=1Nlogk=1Kαkϕ(yj|θk)    (9.28)

   由于该式子包含累和的对数的形式,直接用极大似然法处理很困难,在这里采用EM算法进行参数求解。

 

三、EM算法的E步:确定Q函数

Q(θ,θ(i))=ZP(Z|Y,θ(i))logP(Y,Z|θ)=k=1Kj=1NP(γjk|yj,θ(i))logαkϕ(yj|θk)

  由于P(γjk|yj,θ(i))表示在观测数据和该次迭代参数的条件下,数据yj来自高斯分布k的概率,因此易得

P(γjk|yj,θ(i))=αk(i)ϕ(yj|θk(i))k=1Kαk(i)ϕ(yj|θk(i))=γjk^

γjk^表示分模型k对观测数据j的响应度, 所以

Q(θ,θ(i))=k=1K{j=1Nγjk^logαk+j=1Nγjk^[log(1(2π))logσk12σk2(yjμk)2]}=k=1Knklogαk+k=1Kj=1Nγjk^[log(12π)logσk12σk2(yjμk)2]    (9.29)

其中nk=j=1Nγjk^

 

四、EM算法的M步

  迭代的M步是求函数Q(θ,θ(i))θ的极大值,即求新一轮迭代的模型参数:

θ(i+1)=argmaxQ(θ,θ(i))

  用μk^σk2^αk^k=1,2,,K,表示θ(i+1)的各参数。求μk^σk2^只需将式(9.29)分别对μk^σk2^求偏导数并令其为0,即可得到;求αk^是在k=1Kαk=1条件下求偏导数并令其为0得到的。结果如下:

μk^=j=1Nγjk^yjj=1Nγjk^    (9.30)

σk2^=j=1Nγjk^(yjμk)2j=1Nγjk^    (9.31)

αk^=j=1Nγjk^N    (9.32)

重复以上计算,直到对数似然函数值不再有明显的变化为止。

实际计算中M步只需计算γjk^,E步计算出相应参数即可。

posted @   ~宁静致远~  阅读(2405)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示