其他算法-高斯混合模型

高斯模型

单高斯模型

当样本数据 x ∈ R x\in\mathbb{R} xR 是一维时,高斯分布服从以下概率密度函数:
P ( x ∣ θ ) = 1 2 π σ 2 e x p ( − ( x − μ ) 2 2 σ 2 ) P(x|\theta)=\frac{1}{\sqrt{2\pi\sigma^{2}}}exp(-\frac{(x-\mu)^{2}}{2\sigma^{2}}) P(xθ)=2πσ2 1exp(2σ2(xμ)2)
其中, μ \mu μ为数据均值(期望), σ \sigma σ为数据标准差;

当样本数据 x ∈ R D x\in\mathbb{R}^{D} xRD 是多维时,高斯分布服从以下概率密度函数:
P ( x ∣ θ ) = 1 ( 2 π ) D 2 ∣ ∑ ∣ 1 2 e x p ( − ( x − μ ) T ∑ − 1 ( x − μ ) 2 ) P(x|\theta)=\frac{1}{(2\pi)^{\frac{D}{2}}|\sum|^{\frac{1}{2}}}exp(-\frac{(x-\mu)^{T}\sum^{-1}(x-\mu)}{2}) P(xθ)=(2π)2D211exp(2(xμ)T1(xμ))
其中, μ ∈ R D \mu\in\mathbb{R}^{D} μRD为数据均值(期望), ∑ ∈ R D × D \sum\in\mathbb{R}^{D\times D} RD×D为数据的协方差矩阵(协方差矩阵回顾其他算法-卡尔曼滤波器), D D D为数据维度;

高斯混合模型GMM

高斯混合模型(Gaussian Mixture Model)可以看作是由多个单高斯模型集成的模型,理论上,混合模型可以使用任何的概率分布作为子模型,使用高斯模型是因为高斯分布具有更广泛的物理意义。

比如对以下二维数据:
fig1
如果仅通过单高斯模型,是不能很好拟合其分布的,但通过(多峰的)高斯混合模型,可以较容易拟合该数据的分布。

定义以下信息:

  • x j x_{j} xj表示第 j j j个观测数据, j = 1 , 2 , . . . , N j=1,2,...,N j=1,2,...,N
  • K K K是混合模型中子高斯模型的数量, k = 1 , 2 , . . . , K k=1,2,...,K k=1,2,...,K
  • α k \alpha_{k} αk是观测数据的混合系数,反映了第 k k k个子模型在决定数据分布时占有的权重,满足:
    ∑ k = 1 K α k = 1 \sum_{k=1}^{K}\alpha_{k}=1 k=1Kαk=1
  • ϕ ( x ∣ θ k ) \phi(x|\theta_{k}) ϕ(xθk)是第 k k k个子模型的高斯分布密度函数(单高斯模型), θ k = ( μ k , ∑ k ) \theta_{k}=(\mu_{k},\sum_{k}) θk=(μk,k)

因此,高斯混合模型的概率分布为:
P ( x ∣ θ ) = ∑ k = 1 K α k ϕ ( x ∣ θ k ) P(x|\theta)=\sum_{k=1}^{K}\alpha_{k}\phi(x|\theta_{k}) P(xθ)=k=1Kαkϕ(xθk)

参数估计

单高斯模型参数估计-极大似然

对于单高斯模型,可以用极大似然法估计参数 θ \theta θ的值:
θ = a r g m a x θ L ( θ ) \theta=argmax_{\theta}L(\theta) θ=argmaxθL(θ)
假设每个数据点相互独立,似然函数(Likelihood)可以通过各个数据点的概率密度连乘得到,为了便于计算,可以在似然函数上取对数(Log-Likelihood):
L ( θ ) = ∏ j = 1 N P ( x j ∣ θ ) → l o g ( L ( θ ) ) = ∑ j = 1 N l o g ( P ( x j ∣ θ ) ) L(\theta)=\prod_{j=1}^{N}P(x_{j}|\theta)\rightarrow log(L(\theta))=\sum_{j=1}^{N}log(P(x_{j}|\theta)) L(θ)=j=1NP(xjθ)log(L(θ))=j=1Nlog(P(xjθ))


极大似然估计参数的推导过程回顾非线性规划-三种常见参数估计算法及联系

极大似然包括两个步骤:

  • 1.找到似然函数
  • 2.对似然函数求导,令导数为零,直接得到解

对于高斯混合模型,可以发现,其对数似然函数为:
l o g ( L ( θ ) ) = ∑ j = 1 N l o g ( P ( x j ∣ θ ) ) = ∑ j = 1 N l o g ( ∑ k = 1 K α k ϕ ( x j ∣ θ k ) ) log(L(\theta))=\sum_{j=1}^{N}log(P(x_{j}|\theta))=\sum_{j=1}^{N}log(\sum_{k=1}^{K}\alpha_{k}\phi(x_{j}|\theta_{k})) log(L(θ))=j=1Nlog(P(xjθ))=j=1Nlog(k=1Kαkϕ(xjθk))
这里不能像单高斯模型一样使用极大似然法求导,以获得似然函数的最大参数,因为对一个数据点而言,存在 K K K组未知的参数[ α k , θ k \alpha_{k},\theta_{k} αk,θk],考虑通过迭代的方法求解;

高斯混合模型参数估计-EM算法

EM算法回顾 非线性规划-三种常见参数估计算法及联系,对于GMM,隐变量来自 K K K 个子模型;假设样本数据为{ x 1 , x 2 , . . . , x N x_{1},x_{2},...,x_{N} x1,x2,...,xN},EM算法过程如下:

  • 1.根据jensen不等式定义对数似然函数的下界
    ∑ j = 1 N l o g ( ∑ k = 1 K α k ϕ ( x j ∣ θ k ) ) ⇒ ∑ j = 1 N ∑ k = 1 K γ j k l o g ( α k ϕ ( x j ∣ θ k ) γ j k ) \sum_{j=1}^{N}log(\sum_{k=1}^{K}\alpha_{k}\phi(x_{j}|\theta_{k}))\Rightarrow \sum_{j=1}^{N}\sum_{k=1}^{K}\gamma_{jk}log(\frac{\alpha_{k}\phi(x_{j}|\theta_{k})}{\gamma_{jk}}) j=1Nlog(k=1Kαkϕ(xjθk))j=1Nk=1Kγjklog(γjkαkϕ(xjθk))
  • 2.E步:根据当前参数,计算期望
    γ j k = α k ϕ ( x j ∣ θ k ) ∑ k = 1 K α k ϕ ( x j ∣ θ k ) \gamma_{jk}=\frac{\alpha_{k}\phi(x_{j}|\theta_{k})}{\sum_{k=1}^{K}\alpha_{k}\phi(x_{j}|\theta_{k})} γjk=k=1Kαkϕ(xjθk)αkϕ(xjθk)
    代入下界函数作为新的似然函数:
    L ( θ ) = ∑ j = 1 N ∑ k = 1 K γ j k l o g ( α k ϕ ( x j ∣ θ k ) γ j k ) L(\theta)=\sum_{j=1}^{N}\sum_{k=1}^{K}\gamma_{jk}log(\frac{\alpha_{k}\phi(x_{j}|\theta_{k})}{\gamma_{jk}}) L(θ)=j=1Nk=1Kγjklog(γjkαkϕ(xjθk))
  • 3.M步:极大似然
    θ = a r g m a x θ ( L ( θ ) ) \theta=argmax_{\theta}(L(\theta)) θ=argmaxθ(L(θ))
    通过解导数为零的根,可以更新参数 θ = α k , μ k , ∑ k , k = { 1 , 2 , . . . , K } \theta=\alpha_{k},\mu_{k},\sum_{k},k=\left\{1,2,...,K\right\} θ=αk,μk,k,k={1,2,...,K}
    μ k = ∑ j = 1 N γ j k x j ∑ j = 1 N γ j k , ∑ k = ∑ j = 1 N γ j k ( x j − μ k ) ( x j − μ k ) T ∑ j = 1 N γ j k , α k = ∑ j = 1 N γ j k N , k = 1 , 2 , . . , K \mu_{k}=\frac{\sum_{j=1}^{N}\gamma_{jk}x_{j}}{\sum_{j=1}^{N}\gamma_{jk}},\sum_{k}=\frac{\sum_{j=1}^{N}\gamma_{jk}(x_{j}-\mu_{k})(x_{j}-\mu_{k})^{T}}{\sum_{j=1}^{N}\gamma_{jk}},\alpha_{k}=\frac{\sum_{j=1}^{N}\gamma_{jk}}{N},k=1,2,..,K μk=j=1Nγjkj=1Nγjkxj,k=j=1Nγjkj=1Nγjk(xjμk)(xjμk)T,αk=Nj=1Nγjk,k=1,2,..,K
  • 4.检验模型是否收敛,如果不收敛,则回到第2步

使用EM算法迭代多次后,可以得到高斯混合模型的参数,注意:EM 算法具备收敛性,但并不保证找到全局最大值,有可能找到局部最大值。解决方法是初始化几次不同的参数进行迭代,取结果最好的那次;

GMM与k-means

k-means回顾 机器学习笔记本-K均值算法,GMM与k-means都常用作聚类算法,两者都使用EM算法进行参数估计(学习),两者的比较如下:

相同点:

  • 都是迭代执行的算法,且迭代的策略也相同:算法开始执行时先对需要计算的参数赋初值,然后交替执行两个步骤,一个步骤是对数据的估计(k-means是估计每个点所属簇;GMM是计算隐含变量的期望);第二步是用上一步算出的估计值重新计算参数值,更新目标参数(k-means是计算簇心位置;GMM是计算各个高斯分布的均值和协方差矩阵以及混合系数);
  • k-means可以看成是一种特殊的GMM

不同点:

  • 1.需要计算的参数不同:k-means是簇心位置;GMM是各个高斯分布的参数;
  • 2.计算目标参数的方法不同:k-means是计算当前簇中所有元素的位置的均值;GMM是基于概率的算法,通过计算似然函数的最大值实现分布参数的求解的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值