统计机器学习:EM算法和GMM算法

一、EM算法

1.从似然函数说起

        极大似然法(Maximum Likelihood Estimation,简称MLE)是一种统计推断方法,用于估计参数的值,使得观测数据在给定参数下的概率达到最大,其目标如下:

\theta = arg {max} L(\theta) = argmax \prod_{i=1}^{n}P(X|\theta)

        但是极大似然法的前提是可以观察到所有的变量X,对于含有无法观察的变量,极大似然法失效,我们称这种变量为隐变量Z。

        请看下面的例题:假设你有三枚硬币A、B、C,它们投掷为正面的概率为\pi\alpha\gamma,定义一次实验为:投掷A,A为正面投掷B,否则投掷C,记录B或者C的投掷结果为最后结果。结果为1,0,1,0,1,1,0

X =\{0,1\}\theta = \{\pi,\alpha,\gamma\}

        我们无法得知选择了B还是C,因此我们无法写出似然函数,除非我们设隐变量Z表示

z = \left\{\begin{matrix} 1 & ,B& \\ 0 & ,C& \end{matrix}\right.

        这样我们就可以表示出包含隐变量的似然函数

\theta = argmax P(X,Z|\theta)= argmax \prod_{i=1}^{n}\sum_{j=0}^{j =1} P(x_i | z_j,\theta)P(z_j|\theta)

P(z|{\theta}^t) = {\pi}^z+(1-\pi)^{1-z}

\sum_{j=0}^{j =k} P(x_i | z_j,{\theta}^{t+1})P(z_j|{\theta}^{t}) =

(1-\pi) ({\gamma}^{x_i}+(1-\gamma)^{1-x_i}) + \pi ({\alpha}^{x_i}+(1-\alpha)^{1-x_i})

2.EM迭代求解

        首先我们已知的只有观察结果X,不知道隐变量Z和参数\theta,有了一个似然函数的表示方式,但是仍然无法得到闭式解,因此我们可以随机初始化一份参数{\theta}^{0},采用两个步骤迭代求解参数。

        (1)E(Exception)步骤:我们根据上次的参数{\theta}^t,可以得到隐变量的分布Z,根据隐变量的分布我可以写出似然函数的具体形式:

        如果隐变量Z为离散的分布,取值的可能性有k种

L(\theta |X,Z) =\prod_{i=1}^{n}\sum_{j=0}^{j =k} P(x_i ,z_j|\theta)= \prod_{i=1}^{n}\sum_{j=0}^{j =k} P(x_i | z_j,\theta)P(z_j|{\theta}^{t})

        如果隐变量Z为连续的分布,具有概率密度函数

L(\theta|X,Z) =\prod_{i=1}^{n}\int_z P(x_i ,z_j|\theta)= \prod_{i=1}^{n}\int_{z} P(x_i | z_j,\theta)f(z_j|{\theta}^t)dz

        上面的操作就是在求似然函数,接下来我们求似然函数的期望

Q(\theta|\theta ^ t) = E_{Z|X,\theta} log L(\theta|X,Z)

        (2)M(Max)步骤:

        我们要求的下一次迭代的{\theta}^{t+1}则是本次优化的目标

{\theta}^{t+1}=argmaxQ(\theta|\theta ^ t)

3.EM求解实例

        我们接下来演示求解1.从似然函数说起 的例题,将似然函数优化转化为点估计的方法,结果是B硬币的结果的概率是,即为选B得到这样结果的可能/选C得到这样结果的可能性

E\mu_{j}^{(i+1)} = \frac { \pi^{ (i)}( p^{(i)} ) ^{y_{i}} (1- p^{(i)} )^{1- y_{j}} }{ {\pi}^{(i)(p(i)) y_{j} +(1- {\pi}^ {(i)}) (q^ {(i)})^{y_{i}} (1-q^ {(i)})^{1-y_{j}}}}

因此更新参数如下

\pi ^ {(i+1)} = \frac{1}{n}\sum\limits_{j=1}^{n}\mu _{j}^{(i+1)},\alpha^{i+1} = \frac{\sum\limits_{j=1}^{n}\mu _j^{(i+1)}y^i}{\sum\limits_{j=1}^{n}\mu _j^{(i+1)}},\gamma^{i+1} = \frac{\sum\limits_{j=1}^{n}(1-\mu _j^{(i+1)})y^i}{\sum\limits_{j=1}^{n}(1-\mu _j^{(i+1)})}

4.EM算法的导出(略)

5.EM算法的收敛性(略)

二、GMM算法

        假设某份数据是K个高斯模型\phi _k的混合生成结果,其权重分别为\alpha _k

P(y|\theta)=\sum\limits_{k=1}^{K}\alpha _k \phi _k(y|\theta),\sum\limits_{k=1}^{K}\alpha _k=1

\phi (y|\theta) = \frac{1}{\sqrt{2\pi}\delta _k}e^{-\frac{(y-\mu _k)^2}{2\delta _k^2}}

        1.建立模型:初始化参数\theta _k= \{\alpha _k,\mu _k,\delta _k\},假设隐变量\gamma _{ij}表示第i个样本是否属于第j个高斯模型生成

        2.E步骤:根据上一步的参数写出隐变量的期望(即为概率分布)

P(\gamma _{ij} =1)=E(\gamma _{ij}|y,\theta ^t) = \frac{\alpha _k \phi _k(y_i|\theta ^t)}{\sum\limits_{1}^{K}\alpha _k \phi _k(y_i|\theta ^t)}

        写出根据下一步要求解的未知参数表示的似然函数

L(\theta ^{t+1}|X,Z) = \prod_{i=1}^{n} P(y_i,\gamma_{i1},\gamma_{i2},...|\theta)

L(\theta ^{t+1}|X,Z) = \prod_{k=1}^{n} \prod_{i=1}^{n} [\alpha _k\phi(y_i|\theta_k)]^{\gamma _{ik}}

Q(\theta|\theta ^ t) = E_{Z|X,\theta} log L(\theta^{t+1}|X,Z)

        3.M步骤:

{\theta}^{t+1}=argmaxQ(\theta|\theta ^ t)

        Q(\theta|\theta ^ t)恰好为凸函数集合,对Q(\theta|\theta ^ t)各个参数求偏导,令偏导为0,得出极值点

        (事实上该结果恰好也为点估计的结果)

\mu _k^{t+1} = \frac{\sum\limits_{j=1}^{N}\gamma _{ik}y_j}{\sum\limits_{j=1}^{N}\gamma _{ik}},(\delta _k^{t+1})^2 = \frac{\sum\limits_{j=1}^{N}\gamma _{ik}(y_j-u_k^t)^2}{\sum\limits_{j=1}^{N}\gamma _{ik}},\alpha _k^{t+1} = \frac{\sum\limits_{j=1}^{N}\gamma _{ik}}{N}

三、EM算法推广

1.F函数

2.GEM算法

        

参考文献

[1]统计机器学习-李航

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值