机器学习:EM算法
2016-04-15 23:52
288 查看
潜在变量模型
σ2=1n∑i(xi−μ)2\sigma^2=\frac{1}{n}\sum_i(x_i-\mu)^2
设随机变量X由K个高斯分布混合而成,取各个高斯分布的概率是ϕ1,ϕ2,.....,ϕk\phi_1,\phi_2,.....,\phi_k;其中第k个高斯分布的均值是μi\mu_i, 方差是 ∑i\sum_i ; 若观测到随机变量的一系列样本,x1,x2,.....,xnx_1,x_2,.....,x_n; 估计参数ϕ\phi, μ \mu, ∑\sum
算法
建立对数似然函数
l(x)=∑Ni=1log(∑Nk=1πkN(xi|μk,∑k))l(x)=\sum_{i=1}^N log(\sum_{k=1}^N\pi_kN(x_i|\mu_k,\sum_k))
估算数据由每个组分生成的概率:对于数据xix_i, 由 第 k个组分生成的概率是
(πk=取得某个组分的概率,先验\pi_k=取得某个组分的概率,先验)
γ(i,k)=πkN(xi|μk,∑k)∑kj=1πjN(xi|μj,∑j)\gamma(i, k)=\frac{\pi_kN(x_i | \mu_k,\sum_k)}{\sum_{j=1}^k \pi_j N(x_i|\mu_j,\sum_j)}
xix_i中有γ(i,k)∗xi\gamma(i, k)*x_i 部分是由组分k 生成的
4 对比最大似然估计,对比所有数据点,可以认为组分k生成了γ(i,k)∗xi\gamma(i, k)*x_i这些点。组分K是一个标准的高斯分布。
μk=1Nk∑Ni=1γ(i,k)xi\mu_k=\frac{1}{N_k}\sum_{i=1}^N \gamma(i,k)x_i
∑k=1Nk∑Ni=1γ(i,k)(xi−μk)(xi−μk)T\sum_k=\frac{1}{N_k} \sum_{i=1}^N \gamma(i,k)(x_i-\mu_k)(x_i-\mu_k)^T
πk=、frac1N∑Ni=1γ(i,k)\pi_k=、frac{1}{N}\sum_{i=1}^N \gamma(i, k)
Nk=N∗πkN_k=N*\pi_k
其中:z 是隐变量
θ\theta 是隐随机变量,建立l(θ)l(\theta) 的下界,并求该下界的最大值;重复,直到收敛到最大
设QiQ_i 是 z 的某一个分布,Qi>=0Q_i >= 0, 有:
∑ilogp(x(i);θ)=∑mi=1log∑zp(x,z;θ)\sum_{i} logp(x^{(i)};\theta)=\sum_{i=1}^m log \sum_{z} p(x,z ; \theta)
=∑ilog∑z(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))=\sum_i log \sum_{z^{(i)}} Q_i(z^{(i)}) \frac{p(x^{(i)},z^{(i)}; \theta)}{Q_i(z^{(i)})}
>=∑i∑z(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))>= \sum_i\sum_{z^{(i)}}Q_i(z^{(i)})log \frac{p(x^{(i)},z^{(i)}; \theta)}{Q_i(z^{(i)})}
等号成立的条件, 下式是常数:
p(x(i),z(i);θ)Qi(z(i))=c\frac{p(x^{(i)},z^{(i)}; \theta)}{Q_i(z^{(i)})} = c
=>=>
Qi(z(i))∝p(x(i),z(i);θ)Q_i(z^{(i)})\propto p(x^{(i)},z^{(i)};\theta); \ \ \ ∑zQi(z(i))=1\sum_z Q_i(z^{(i)}) = 1
Qi(z(i))=p(x(i),z(i);θ)∑zp(x(i),z;θ)Q_i(z^{(i)}) = \frac{p(x^{(i)}, z^{(i)} ; \theta)}{\sum_z p(x^{(i)}, z ; \theta)}
=p(z(i)|x(i);θ)= p(z^{(i)}| x^{(i)} ; \theta) ……………… 条件概率
Qi(z(i)):=p(z(i)|x(i);θ)Q_i(z^{(i)}) := p(z^{(i)} | x^{(i)} ; \theta)
E-step (期望)
Q(θ,θi)=∑i∑z(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))Q(\theta, \theta_i) = \sum_i \sum_{z^{(i)}} Q_i(z^{(i)}) log \frac{p(x^{(i)},z^{(i)} ; \theta)}{Q_i (z^{(i)})}
M-step
θ:=argmaxθQ(θ,θi)\theta := arg max_{\theta} Q(\theta,\theta_i)
结论
μk=1Nk∑Ni=1γ(i,k)xi\mu_k=\frac{1}{N_k}\sum_{i=1}^N \gamma(i,k)x_i
∑k=1Nk∑Ni=1γ(i,k)(xi−μk)(xi−μk)T\sum_k=\frac{1}{N_k} \sum_{i=1}^N \gamma(i,k)(x_i-\mu_k)(x_i-\mu_k)^T
πk=、frac1N∑Ni=1γ(i,k)\pi_k=、frac{1}{N}\sum_{i=1}^N \gamma(i, k)
Nk=N∗πkN_k=N*\pi_k
k均值聚类
混合高斯模型
混合高斯模型=高斯分布的线性叠加高斯分布的MLE
μ=1n∑ixi\mu=\frac{1}{n}\sum_i x_iσ2=1n∑i(xi−μ)2\sigma^2=\frac{1}{n}\sum_i(x_i-\mu)^2
设随机变量X由K个高斯分布混合而成,取各个高斯分布的概率是ϕ1,ϕ2,.....,ϕk\phi_1,\phi_2,.....,\phi_k;其中第k个高斯分布的均值是μi\mu_i, 方差是 ∑i\sum_i ; 若观测到随机变量的一系列样本,x1,x2,.....,xnx_1,x_2,.....,x_n; 估计参数ϕ\phi, μ \mu, ∑\sum
算法
建立对数似然函数
l(x)=∑Ni=1log(∑Nk=1πkN(xi|μk,∑k))l(x)=\sum_{i=1}^N log(\sum_{k=1}^N\pi_kN(x_i|\mu_k,\sum_k))
估算数据由每个组分生成的概率:对于数据xix_i, 由 第 k个组分生成的概率是
(πk=取得某个组分的概率,先验\pi_k=取得某个组分的概率,先验)
γ(i,k)=πkN(xi|μk,∑k)∑kj=1πjN(xi|μj,∑j)\gamma(i, k)=\frac{\pi_kN(x_i | \mu_k,\sum_k)}{\sum_{j=1}^k \pi_j N(x_i|\mu_j,\sum_j)}
xix_i中有γ(i,k)∗xi\gamma(i, k)*x_i 部分是由组分k 生成的
4 对比最大似然估计,对比所有数据点,可以认为组分k生成了γ(i,k)∗xi\gamma(i, k)*x_i这些点。组分K是一个标准的高斯分布。
μk=1Nk∑Ni=1γ(i,k)xi\mu_k=\frac{1}{N_k}\sum_{i=1}^N \gamma(i,k)x_i
∑k=1Nk∑Ni=1γ(i,k)(xi−μk)(xi−μk)T\sum_k=\frac{1}{N_k} \sum_{i=1}^N \gamma(i,k)(x_i-\mu_k)(x_i-\mu_k)^T
πk=、frac1N∑Ni=1γ(i,k)\pi_k=、frac{1}{N}\sum_{i=1}^N \gamma(i, k)
Nk=N∗πkN_k=N*\pi_k
EM算法
设训练集:{x(1),......,x(m)}\{x^{(1)}, ......, x^{(m)}\}, 包含 m 个独立的样本,求解模型 p(x,z)p(x,z) 的参数其中:z 是隐变量
最大似然建立目标函数
l(θ)=∑mi=1logp(x;θ)=∑mi=1log∑zp(x,z;θ)l(\theta) = \sum_{i=1}^m log p(x; \theta)=\sum_{i=1}^m log \sum_{z} p(x,z ; \theta)θ\theta 是隐随机变量,建立l(θ)l(\theta) 的下界,并求该下界的最大值;重复,直到收敛到最大
设QiQ_i 是 z 的某一个分布,Qi>=0Q_i >= 0, 有:
∑ilogp(x(i);θ)=∑mi=1log∑zp(x,z;θ)\sum_{i} logp(x^{(i)};\theta)=\sum_{i=1}^m log \sum_{z} p(x,z ; \theta)
=∑ilog∑z(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))=\sum_i log \sum_{z^{(i)}} Q_i(z^{(i)}) \frac{p(x^{(i)},z^{(i)}; \theta)}{Q_i(z^{(i)})}
>=∑i∑z(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))>= \sum_i\sum_{z^{(i)}}Q_i(z^{(i)})log \frac{p(x^{(i)},z^{(i)}; \theta)}{Q_i(z^{(i)})}
等号成立的条件, 下式是常数:
p(x(i),z(i);θ)Qi(z(i))=c\frac{p(x^{(i)},z^{(i)}; \theta)}{Q_i(z^{(i)})} = c
=>=>
Qi(z(i))∝p(x(i),z(i);θ)Q_i(z^{(i)})\propto p(x^{(i)},z^{(i)};\theta); \ \ \ ∑zQi(z(i))=1\sum_z Q_i(z^{(i)}) = 1
Qi(z(i))=p(x(i),z(i);θ)∑zp(x(i),z;θ)Q_i(z^{(i)}) = \frac{p(x^{(i)}, z^{(i)} ; \theta)}{\sum_z p(x^{(i)}, z ; \theta)}
=p(z(i)|x(i);θ)= p(z^{(i)}| x^{(i)} ; \theta) ……………… 条件概率
EM算法
对于每个 ii 设置:Qi(z(i)):=p(z(i)|x(i);θ)Q_i(z^{(i)}) := p(z^{(i)} | x^{(i)} ; \theta)
E-step (期望)
Q(θ,θi)=∑i∑z(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i))Q(\theta, \theta_i) = \sum_i \sum_{z^{(i)}} Q_i(z^{(i)}) log \frac{p(x^{(i)},z^{(i)} ; \theta)}{Q_i (z^{(i)})}
M-step
θ:=argmaxθQ(θ,θi)\theta := arg max_{\theta} Q(\theta,\theta_i)
GMM的EM算法
拉格朗日乘子法,求极值结论
μk=1Nk∑Ni=1γ(i,k)xi\mu_k=\frac{1}{N_k}\sum_{i=1}^N \gamma(i,k)x_i
∑k=1Nk∑Ni=1γ(i,k)(xi−μk)(xi−μk)T\sum_k=\frac{1}{N_k} \sum_{i=1}^N \gamma(i,k)(x_i-\mu_k)(x_i-\mu_k)^T
πk=、frac1N∑Ni=1γ(i,k)\pi_k=、frac{1}{N}\sum_{i=1}^N \gamma(i, k)
Nk=N∗πkN_k=N*\pi_k
伯努利分布的混合算法
潜在类别分析相关文章推荐
- 大话HTML DOM与XML DOM的区别与联系【转】
- 小米路由器设置DMZ主机 并在外网访问
- JavaScript模板引擎
- 关于app集成支付宝应用内支付的问题总结
- CodeForces 505B Mr. Kitayuta's Colorful Graph
- Leetcode题解 231. Power of Two
- 福州大学第十二届程序设计竞赛-F - 检查站点
- 计算逆序对
- 单例模式
- Tyvj P1729 文艺平衡树 Splay
- Python实现简单的HTTP服务器(支持文件上传下载)
- 3的幂--leetcode326
- sql 连接
- 信号量
- HDU 1019 Least Common Multiple(求最小公倍数)
- Kafka - SQL 引擎
- # 20145327 《Java程序设计》第七周学习总结
- Android——监听事件总结
- HDU2585
- 福州大学第十二届程序设计竞赛-D - So Hard