统计机器学习-EM算法(期望极大算法)

EM算法用于含有隐变量的概率模型参数的极大似然估计。这里首先对隐变量解释,举下面的例子

(三硬币模型)假设有3枚硬币,分别记做,,,这些硬币正面出现的概率分别是,和。进行如下掷硬币试验:先掷硬币,根据其结果选出硬币或硬币,正面选硬币,反面选硬币;然后掷选出的硬币,掷硬币的结果,出现正面记做1,出现反面记做0;独立的重复次试验(这里,),观测结果如下:

假设能观测到掷硬币的结果,不能观测掷硬币的过程,问如何估计三硬币正面出现的概率,即三硬币模型的参数,和。

其中掷硬币的结果是未观测的,叫做隐变量,记做。将观测数据表示为,未观测数据表示为,则观测数据的似然函数为



对模型参数进行极大似然估计,即

因为掷硬币的结果未知,所以没有这个问题解析解,只能通过迭代的方式,逐步增加对数似然函数,找到一个解。EM算法解决的就是这样的一类问题。

接下来首先提出EM算法,然后对其进行解释。

EM算法

EM算法叫做Exception maximization算法,顾名思义,包含求期望(Exception )和极大化(maximization)两个步骤。

输入:观测变量数据,隐变量数据,联合分布,条件分布;

输出:模型参数。

(1)选择参数的初值,开始迭代;

(2)E步:记为第次迭代参数的估计值,在第次迭代的E步,计算

这里是在给定观测数据和当前参数估计下隐变量数据的条件概率分布;

(3)M步:求使极大化的,确定第次迭代的参数的估计值

(4)重复第(2)步和第(3)步,直到收敛。

第(2)步中是EM算法的核心,称为Q函数。

Q函数定义:完全数据的对数似然函数关于给定观测数据和当前参数下对未观测数据的条件概率分布的期望称为Q函数,即

因为,所以

其中,因为数据未包含隐变量的结果,所以称为不完全数据,称为不完全数据的对数似然函数,而数据则称为完全数据,称为完全数据的对数似然函数。
下面关于EM算法作几点说明:

  • 步骤(1)参数的初值可以任意选择,但需注意EM算法对初值是敏感的。
  • 步骤(2)E步求。Q函数式中是未观测数据,是观测数据,注意,的第1个变元表示要极大化的参数,第2个变元表示参数的当前估计值。每次迭代实际在求Q函数及其极大。
  • 步骤(3)M步求的极大化,得到,完成一次迭代。
  • 步骤(4)给出停止迭代的条件,一般是对较小的正数,,若满足

​ 则停止迭代。

下面给出这种做法为什么可以对观测数据(不完全数据)进行极大似然估计。

EM算法的导出

对于一个含有隐变量的模型,目标是极大化观测数据(不完全数据)关于参数的对数似然函数,即最大化

上面第一步用到边缘概率和联合概率的关系,第二步用到的是条件分布公式。对这一对数似然函数极大化的困难是因为上式中包含未观测数据。

但是如果通过第次迭代得到估计的参数,此时再找到一个参数,使得(和IIS算法思路有点类似),那么同样也可以起到极大似然估计的效果。为此,考虑两者的差

利用Jensen不等式,过程略,得到其下界:

于是得到对数似然函数的下界

定义



并且
\begin{align} B(\theta^{(i)},\theta^{(i)})&=L(\theta^{(i)})+\sum_ZP(Z|Y,\theta^{(i)})\log\frac{P(Y|Z,\theta^{(i)})P(Z|\theta^{(i)})}{P(Z|Y,\theta^{(i)})P(Y|\theta^{(i)})}\\ &=L(\theta^{(i)})+\sum_ZP(Z|Y,\theta^{(i)})\log\frac{P(Y,Z|\theta^{(i)})}{P(Y,Z|\theta^{(i)})}\\ &=L(\theta^{(i)}) \end{align}
即可以使可以增大的,也可以使增大,所以极大似然估计变成了使极大化的问题,即

所以

省去不包含变量的常数项,,得到
\begin{align} \theta^{(i+1)}&=\arg\max_\theta\bigg(\sum_ZP(Z|Y,\theta^{(i)})\log P(Y|Z,\theta)P(Z|\theta)\bigg)\\ &=\arg\max_\theta\bigg(\sum_ZP(Z|Y,\theta^{(i)})\log P(Y,Z|\theta)\bigg)\\ &=\arg\max_\theta Q(\theta,\theta^{(i)}) \end{align}
所以,在EM算法中最大化Q函数,就等同于最大对数似然函数的下界,从而进行极大似然估计。但是这种算法并不能保证找到全局最优值。

EM算法可以用于无监督学习,略。EM算法的收敛性证明略。

EM算法在高斯混合模型学习中的应用

高斯混合模型定义

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

其中,是系数,,;是高斯分布密度,,

称为第个模型。

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

可以设想观测数据,,是这样产生的:首先,依概率选择第 个高斯分布分模型;然后依第个分模型的概率分布生成观测数据,这是观测数据,,是已知的;反应观测数据来自第个分模型的数据是未知的,,以隐变量表示,其定义如下:

是0,1随机变量。

有了观测数据及未观测数据,那么完全数据是

于是可以写出完全数据的似然函数:
\begin{align} P(y,\gamma|\theta)&=\prod_{j=1}^NP(y_j,\gamma_{j1},\gamma_{j2},\cdots,\gamma_{jK}|\theta)\\ &=\prod_{k=1}^K\prod_{j=1}^N[\alpha_k\phi(y_j|\theta_k)]^{\gamma_{jk}}\\ &=\prod_{k=1}^K\alpha_k^{n_k}\prod_{j=1}^N[\phi(y_j|\theta_k)]^{\gamma_{jk}}\\ &=\prod_{k=1}^K\alpha_k^{n_k}\prod_{j=1}^N\bigg[\frac{1}{\sqrt{2\pi}\sigma_k}\exp\bigg(-\frac{(y-\mu_k)^2}{2\sigma_k^2}\bigg)\bigg]^{\gamma_{jk}} \end{align}
其中,(依赖第个分类器的样本数),。

那么完全数据的对数似然函数为

确定Q函数
\begin{align} Q(\theta,\theta^{(i)})&=E_{P(\gamma|y,\theta^{(i)})}[\log P(y,\gamma|\theta)]\\ &=E_{P(\gamma|y,\theta^{(i)})}\sum_{k=1}^K\bigg\{n_k\log\alpha_k+\sum_{j=1}^N\gamma_{jk}\bigg[\log(\frac1{\sqrt{2\pi}})-\log\sigma_k-\frac1{2\sigma_k^2}(y_j-\mu_k^2)\bigg]\bigg\}\\ &=\sum_{k=1}^K\bigg\{\sum_{j=1}^N(E\gamma_{jk})\log\alpha_k+\sum_{j=1}^N(E\gamma_{jk})\bigg[\log(\frac1{\sqrt{2\pi}})-\log\sigma_k-\frac1{2\sigma_k^2}(y_j-\mu_k^2)\bigg]\bigg\}\\ \end{align}\tag{10}
其中
\begin{align} E\gamma_{jk}&=\hat\gamma_{jk}=E(\gamma_{jk}|y,\theta)=P(\gamma_{jk}=1|y,\theta)\\ &=\frac{P(\gamma_{jk}=1,y_j|\theta)}{\sum_{k=1}^KP(\gamma_{jk}=1,y_j|\theta)}\\ &=\frac{P(y_j|\gamma_{jk}=1,\theta)P(\gamma_{jk}=1|\theta)}{\sum_{k=1}^KP(y_j|\gamma_{jk}=1,\theta)P(\gamma_{jk}=1|\theta)} \end{align}

是在当前模型参数下第个观测数据来自第个分模型的概率,称为分模型对观测数据的响应度。

根据开头的描述,,,所以

将及(此处的实际为,)代入公式(10)得到

接下来需要求Q函数的极大化(极大化观测数据对数似然函数的下界),即

其中,,将公式(12)对和求偏导等于0,得到第次的更新值和,同样将公式(12)对求偏导等于0,加上条件,求得更新值。计算更新值时,用到的参数是第次更新得到的值,所以可以通过迭代的方式不断更新参数直到收敛。求得的,和为

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

输入:观测数据,高斯混合模型;

输出:高斯混合模型参数。

(1)取参数的初始值开始迭代(初值敏感)

(2)E步:依据当前模型参数,计算分模型对观测数据的响应度

(3)M步:计算新一轮迭代的模型参数

(4)重复第(2)步和第(3)步,直到收敛。

你可能感兴趣的:(统计机器学习-EM算法(期望极大算法))