自然语言处理--HMM.MEMM,CRF(二)

前言

博主跑来上海实习了,哇, 真的是一把辛酸泪。现在终于有时间看看自己最爱的理论知识, 倍感亲切!
过了一下前篇,最后结尾不好,匆匆给了一个EM 算法,不前不后的。我想了一下,这也是源自我本身就对EM 算法了解不太深,现在这一篇先来了解了解EM 算法。

EM(expectation maximization 期望最大)算法

本篇严重抄袭李航博士的《统计学习方法》,望周知
上篇我们说了朴素贝叶斯模型,说了用极大似然估计贝叶斯模型的参数,最后提了点EM算法,这样不好,搞的好像EM算法专为BN用的似的,其实不是。EM算法针对的跟什么模型没关系,它针对的是一类问题:训练数据标注缺失。
举子栗子,我们现在有一堆个身高数据,一半是男生,一半是女生,我们假设男生和女生的身高都服从高斯分布,只是参数不一样而已。我们可以分别男女生用极大似然估计两个高斯分布的参数。这样当新的样本进来之后,我们就可以知道Ta更可能是男生还是女生。
可是这些数据都没有标注怎么办呢? 我们需要知道 两个高斯分布的参数才能知道每个人是男生的可能性大还是女生的可能性大,可是不知道训练集里的每个人是男生女生,我们又不可能知道两个高斯分布的精确参数。
那么我们可以这么干,首先假装我们知道了高斯分布的参数(就是第一步,给参数赋初始值)。我们根据猜出来的参数去训练集挨个判断每个人是男生还是女生。再拿着这些标注数据再反过来估计参数。反复迭代,直到收敛。
听起来很牛逼是不是?!。但是这是基于什么样的道理呢? 博主在这里徘徊了很久,不光光是EM算法的问题,现在把我自己的一点体会,慢慢写下来,如果有大神批评指正,不胜感激。
如果一个模型本身s判别模型,那么我们求的是p(y|x) 的极大似然, 如果是生成模型,我们是求p(x,y) 的极大似然。可是如果标签丢失的话,不管原来模型如何我们只可以求如此的极大似然: p(x). 似然函数为:
l(θ)=ni=1logp(x;θ)=ni=1logkj=1p(x,z;θ)
我们一不知道p(y) ,二不知道 θ 为之奈何?继续往下关键的一步:
ni=1logkj=1p(x,y;θ)p(y)=ni=1logkj=1p(y)p(x,y;θP(y)>=ni=1ki=1p(y)logp(x,y;θP(y)
第一个等式好懂, 第二个不等式是怎么个意思?首先log函数是凸函数,第二是根据lazy statistician 规则,有kj=1p(y)p(x,y;θP(y)logp(x,y;θP(y) 的数学期望, 可以看做是jenson不等式中的f(E[x]), ki=1p(y)logp(x,y;θP(y) .可以看做是 E[f(x)]下面的理论补充时间


第一,Jenson 不等式,如果f是凸函数,x是随机变量,有:
f(E[x]) \ge E[f(x)]
反之,如果是凹函数的话,反过来就是了。(主要是我真的讨厌打公式)
第二, Lazy Statistician规则


这样,上面的不等式就讲的通了,这个不等式给了我们似然函数一个下限,直观的来说,只要我们尽可能的提高这个下限,就无限接近极大似然的目的。那么什么时候真的就是极大似然呢?jenson 不等式相等的时候,什么时候相等? x是常数的时候,对于我们这里就是,
\frac {p(x,y;\theta)}{P(y)} = c
将这个式子来回倒腾一下
\frac {p(x,y;\theta)}{P(y)} = c \Leftrightarrow p(x,y;\theta)=c p(y) \Leftrightarrow p(y) = \frac {p(x,y;\theta)}{c}
又因为我们刚才(可能是上篇?)说了\sum p(y)=1 所以我们有
\sum p(x,y;\theta)= \sum p(y) c = c
所以 p(y) = \frac {p(x,y;\theta)}{\sum p(x,y;\theta)} = \frac {p(x,y;\theta)}{ p(x;\theta)} = p(y|x;\theta)


上面的 p(y)统一换成 Q_i(y^i), x, y换成 x^i, y^i , 哈哈, 太随意了。


现在我们知道怎么在已经猜了\theta的基础上,猜 Q_i(y^i), 然后在已经得到 Q_i(y^i)的基础上,猜更好的 \theta. 这就是开头说的”首先假装我们知道了高斯分布的参数(就是第一步,给参数赋初始值)。我们根据猜出来的参数去训练集挨个判断每个人是男生还是女生。再拿着这些标注数据再反过来估计参数。反复迭代,直到收敛。”
收尾呼应,哈哈。终于写完了,算法的收敛性证明什么的,容我缓缓。

你可能感兴趣的:(自然语言处理)