【机器学习算法】期望最大算法(EM)(一)

EM:Expectation-Maximization

一、极大似然估计

1. 举例

举个栗子: 假如你去赌场,但是不知道能不能赚钱,你就在门口堵着出来一个人就问一个赚了还是赔了,如果问了5个人都说赚了,那么你就会认为,赚钱的概率肯定是非常大的。

已知:(1)样本服从分布的模型(2)观测到的样本

求解:模型的参数

总的来说:极大似然估计就是用样本来估计模型参数的统计学方法

2. 极大似然数学问题

100名学生的身高问题

样本集 X = { x 1 , x 2 , . . . , x n } , n = 100 X=\{x_{1},x_{2},...,x_{n}\},n=100 X={x1,x2,...,xn},n=100

概率密度: p ( x i ∣ θ ) p(x_{i}|\theta) p(xiθ)抽到男生 i i i(的身高)的概率, θ \theta θ是服从分布的参数

独立同分布:同时抽到这100个男生的概率就是他们各自概率的乘积

极大似然函数

公式: l ( θ ) = ∑ i = 1 m l o g p ( x i ; θ ) l(\theta)=\sum_{i=1}^mlogp(x_{i};\theta) l(θ)=i=1mlogp(xi;θ) (对数是为了乘法转加法)

什么样的参数 θ \theta θ能够使得出现当前这批样本的概率最大

已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值。

加大问题的难度

现在这100个人中,不光有男生,还有女生(2个类别,2种参数)

男生和女生的身高都服从高斯分布,但是参数不同(均值,方差)

求解目标:男生和女生对应的身高的高斯分布的参数是多少

用数学的语言描述:抽取得到的每个样本都不知道是从哪个分布抽取的

加入隐变量

用Z=0或Z=1标记样本来自哪个分布,则Z就是隐变量。

极大似然函数: l ( θ ) = ∑ i = 1 m l o g p ( x i ; θ ) = ∑ i = 1 m l o g ∑ Z p ( x i , Z ; θ ) l(\theta)=\sum_{i=1}^mlogp(x_{i};\theta)=\sum_{i=1}^mlog\sum_{Z}p(x_{i},Z;\theta) l(θ)=i=1mlogp(xi;θ)=i=1mlogZp(xi,Z;θ)

求解:在给定初始值情况下进行迭代求解

二、EM算法

1. 经典案例

从A和B两枚硬币中每次选择1枚抛10次,分别进行5轮,得出下图中左边的正反面样本数据。A和B正面朝上的概率未知,请根据样本数据求解A和B正面朝上的概率。
在这里插入图片描述

  • 假设两枚硬币的初始假设的分布

A硬币:60%概率正面朝上

B硬币:50%概率正面朝上

  • E步骤:

(1)由第1条数据,根据初始硬币的概率分布,投掷出5正5反的概率:

p ( A ) = C 10 5 × 0. 6 5 × 0. 4 5 p(A)=C_{10}^5\times0.6^5\times0.4^5 p(A)=C105×0.65×0.45

p ( B ) = C 10 5 × 0. 5 5 × 0. 5 5 p(B)=C_{10}^5\times0.5^5\times0.5^5 p(B)=C105×0.55×0.55

(2)则观测结果来自硬币A的概率: p ( A ) p ( A ) + p ( B ) = 0.45 \frac{p(A)}{p(A)+p(B)}=0.45 p(A)+p(B)p(A)=0.45,观测结果来自硬币B的概率: 1 − p ( A ) = 0.55 1-p(A)=0.55 1p(A)=0.55

为什么通过 p ( A ) p(A) p(A) p ( B ) p(B) p(B)能算出来自A和B的概率?
答:在这里插入图片描述

同理,由第2-5条数据也可以计算出选择硬币A和B的概率。

  • M步骤:

(1)对每一条数据,根据E步骤求得的选择A和B的概率分别计算A和B抛出正反面的期望。

(2)将根据五条数据求得的A正反面的期望相加,则A正面朝上的概率: θ A ≈ 21.3 21.3 + 8.6 ≈ 0.71 \theta_{A}\approx\frac{21.3}{21.3+8.6}\approx0.71 θA21.3+8.621.30.71;同理,B正面朝上的概率: θ B ≈ 11.7 11.7 + 8.4 ≈ 0.58 \theta_{B}\approx\frac{11.7}{11.7+8.4}\approx0.58 θB11.7+8.411.70.58

  • 迭代

重复E步骤和M步骤,直到 θ A \theta_{A} θA θ B \theta_{B} θB收敛,得到 θ A ≈ 0.80 \theta_{A}\approx0.80 θA0.80 θ B ≈ 0.52 \theta_{B}\approx0.52 θB0.52

2. EM算法推导

问题:样本集 { x 1 , … , x m } \{x_1,…,x_m\} {x1,,xm},包含m个独立的样本。

其中每个样本 i i i对应的类别 z i z_i zi是未知的,所以很难用最大似然求解。

l ( θ ) = ∑ i = 1 m l o g p ( x i ; θ ) = ∑ i = 1 m l o g ∑ Z p ( x i , Z ; θ ) l(\theta)=\sum_{i=1}^mlogp(x_{i};\theta)=\sum_{i=1}^mlog\sum_{Z}p(x_{i},Z;\theta) l(θ)=i=1mlogp(xi;θ)=i=1mlogZp(xi,Z;θ)

上式中,要考虑每个样本在各个分布中的情况。本来正常求偏导就可以了,但是现在log后面还有求和,这就难解了!

右式分子分母同时乘 Q ( z ) : Q(z): Q(z): l o g ∑ Z p ( x i , Z ; θ ) = l o g ∑ Z Q ( Z ) p ( x i , Z ; θ ) Q ( Z ) log\sum_Z p(x_i,Z;\theta)=log\sum_Z Q(Z)\frac{p(x_i,Z;\theta)}{Q(Z)} logZp(xi,Z;θ)=logZQ(Z)Q(Z)p(xi,Z;θ)

为何这么做?答:为了凑Jensen不等式( Q ( Z ) Q(Z) Q(Z)是Z的分布函数)

2.1 Jensen不等式

f f f是定义域为实数的函数,如果对于所有的实数 x x x f ( x ) f(x) f(x)的二次导数大于等于0,那么 f f f凸函数

如果 f f f是凸函数, X X X是随机变量,那么: E [ f ( X ) ] ≥ f ( E [ X ] ) E[f(X)]\ge f(E[X]) E[f(X)]f(E[X])

在这里插入图片描述

实线 f f f是凸函数, X X X有0.5的概率是a,有0.5的概率是b,那么 X X X的期望值就是a和b的中值了,则: f ( a ) + f ( b ) 2 ≥ f ( a + b 2 ) \frac{f(a)+f(b)}{2} \ge f (\frac{a+b}{2}) 2f(a)+f(b)f(2a+b)

Jensen不等式应用于凹函数时,不等号取反向。

2.2 推导过程

由于 Q ( Z ) p ( x i , Z ; θ ) Q ( Z ) Q(Z)\frac{p(x_i,Z;\theta)}{Q(Z)} Q(Z)Q(Z)p(xi,Z;θ) p ( x i , Z ; θ ) Q ( Z ) \frac{p(x_i,Z;\theta)}{Q(Z)} Q(Z)p(xi,Z;θ)的期望,假设 Y = p ( x i , Z ; θ ) Q ( Z ) Y=\frac{p(x_i,Z;\theta)}{Q(Z)} Y=Q(Z)p(xi,Z;θ),有 Q ( Z ) = P ( Y ) Q(Z)=P(Y) Q(Z)=P(Y),则:

l o g ∑ Z Q ( Z ) p ( x i , Z ; θ ) Q ( Z ) = l o g ∑ Y P ( Y ) Y = l o g E ( Y ) log\sum_Z Q(Z)\frac{p(x_i,Z;\theta)}{Q(Z)}=log\sum_YP(Y)Y=logE(Y) logZQ(Z)Q(Z)p(xi,Z;θ)=logYP(Y)Y=logE(Y)

由于Jensen不等式应用于凹函数时( l o g log log函数为凹函数),不等号取反向,可得:

l o g E ( Y ) ≥ E ( l o g Y ) = ∑ Y P ( l o g Y ) l o g Y = ∑ Y P ( Y ) l o g Y = ∑ Z Q ( Z ) l o g p ( x i , Z ; θ ) Q ( Z ) logE(Y)\ge E(logY)=\sum_Y P(logY)logY=\sum_Y P(Y)logY=\sum_Z Q(Z)log \frac{p(x_i,Z;\theta)}{Q(Z)} logE(Y)E(logY)=YP(logY)logY=YP(Y)logY=ZQ(Z)logQ(Z)p(xi,Z;θ)

( P(Y)和P(logY)是否相等? )答:相等

即: l o g ∑ Z Q ( Z ) p ( x i , Z ; θ ) Q ( Z ) ≥ ∑ Z Q ( Z ) l o g p ( x i , Z ; θ ) Q ( Z ) log\sum_Z Q(Z)\frac{p(x_i,Z;\theta)}{Q(Z)}\ge\sum_Z Q(Z)log \frac{p(x_i,Z;\theta)}{Q(Z)} logZQ(Z)Q(Z)p(xi,Z;θ)ZQ(Z)logQ(Z)p(xi,Z;θ)

由于 l o g ∑ Z Q ( Z ) p ( x i , Z ; θ ) Q ( Z ) = l o g ∑ Z p ( x i , Z ; θ ) = l o g p ( x i ; θ ) log\sum_Z Q(Z)\frac{p(x_i,Z;\theta)}{Q(Z)}=log\sum_{Z}p(x_{i},Z;\theta)=logp(x_{i};\theta) logZQ(Z)Q(Z)p(xi,Z;θ)=logZp(xi,Z;θ)=logp(xi;θ),可得:

l ( θ ) = ∑ i = 1 m l o g p ( x i ; θ ) ≥ ∑ i = 1 m ∑ Z Q ( Z ) l o g p ( x i , Z ; θ ) Q ( Z ) l(\theta)=\sum_{i=1}^mlogp(x_{i};\theta)\ge \sum_{i=1}^m \sum_Z Q(Z)log \frac{p(x_i,Z;\theta)}{Q(Z)} l(θ)=i=1mlogp(xi;θ)i=1mZQ(Z)logQ(Z)p(xi,Z;θ)

下界比较好求,所以我们要优化这个下界来使得似然函数最大。

优化下界

迭代到收敛
在这里插入图片描述
如何能使得等式成立呢?(取等号)

Jensen中等式成立的条件是随机变量是常数: Y = p ( x i , Z ; θ ) Q ( Z ) = C Y=\frac{p(x_i,Z;\theta)}{Q(Z)}=C Y=Q(Z)p(xi,Z;θ)=C

Q ( Z ) Q(Z) Q(Z) Z Z Z的分布函数: ∑ Z Q ( Z ) = ∑ Z p ( x i , Z ; θ ) C = 1 \sum_ZQ(Z)=\sum_Z \frac{p(x_i,Z;\theta)}{C}=1 ZQ(Z)=ZCp(xi,Z;θ)=1

所有的分子之和等于常数C(分母相同)

Q ( Z ) Q(Z) Q(Z)求解

∑ Z Q ( Z ) = ∑ Z p ( x i , Z ; θ ) C = 1 \sum_ZQ(Z)=\sum_Z \frac{p(x_i,Z;\theta)}{C}=1 ZQ(Z)=ZCp(xi,Z;θ)=1 得: C = ∑ Z p ( x i , Z ; θ ) C=\sum_Z p(x_i,Z;\theta) C=Zp(xi,Z;θ),则:

Q ( Z ) = p ( x i , Z ; θ ) C = p ( x i , Z ; θ ) ∑ Z p ( x i , Z ; θ ) = p ( x i , Z ; θ ) p ( x i ) = p ( Z ∣ x i ; θ ) Q(Z)=\frac{p(x_i,Z;\theta)}{C}=\frac{p(x_i,Z;\theta)}{\sum_Z p(x_i,Z;\theta)}=\frac{p(x_i,Z;\theta)}{p(x_i)}=p(Z|x_i;\theta) Q(Z)=Cp(xi,Z;θ)=Zp(xi,Z;θ)p(xi,Z;θ)=p(xi)p(xi,Z;θ)=p(Zxi;θ)

其中, p ( x i , Z ; θ ) p(x_i,Z;\theta) p(xi,Z;θ)为取某一个Z值时的概率, ∑ Z p ( x i , Z ; θ ) \sum_Z p(x_i,Z;\theta) Zp(xi,Z;θ)为所有的可能性。

Q ( Z ) Q(Z) Q(Z)代表第 i i i个数据来自某个 Z Z Z的概率。

2.3 EM算法流程

(1)初始化分布参数 θ \theta θ

(2)E-step:根据参数 θ θ θ计算每个样本属于 Z i Z_i Zi的概率(也就是 Q Q Q)

(3)M-Step:根据 Q Q Q,求出含有 θ \theta θ的似然函数的下界并最大化它,得到新的参数 θ \theta θ

(4)不断的迭代更新,直至收敛。

三、高斯混合模型(GMM)

  • 数据可以看作是从数个Gaussian Distribution 中生成出来的

  • GMM 由K 个Gaussian 分布组成,每个Gaussian 称为一个“Component”

  • 类似k-means方法,求解方式跟EM一样

  • 不断的迭代更新,直至收敛。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值