首页 > 编程语言 > 详细

CS229 Machine Learning学习笔记:Note 7(K-means聚类、高斯混合模型、EM算法)

时间:2018-07-17 19:03:59      阅读:173      评论:0      收藏:0      [点我收藏+]

K-means聚类

ng在coursera的机器学习课上已经讲过K-means聚类,这里不再赘述

高斯混合模型

问题描述

聚类问题:给定训练集\(\{x^{(1)},\cdots,x^{(m)}\}\),每个数据没有任何标签。这是一个无监督学习问题

模型描述

首先,我们认为每个数据所属的类别满足一定的概率分布。定义隐含随机变量(latent random variable)\(z^{(1)},\cdots,z^{(m)}\),随机变量\(z^{(i)}\)代表了第i个数据\(x^{(i)}\)所属的类别。

每个\(z^{(i)}\in\{1,\cdots,k\}\)\(z^{(i)}\sim \mathrm{Multinomial}(\phi)\),即每个\(z^{(i)}\)服从由参数\(\phi_1,\cdots,\phi_k\)决定的多项式分布,\(p(z^{(i)}=j)=\phi_j\)\(\sum_{j=1}^k \phi_j=1\)

另外,我们认为对于k个不同的标签,相对应有k个不同的多元高斯分布。在已知\(x^{(i)}\)所属类别\(z^{(i)}=j\)后,\(x^{(i)}\)服从其类别\(j\)对应的多元高斯分布:\((x^{(i)}|z^{(i)}=j)\sim \mathcal N (\mu_j,\Sigma_j)\);进一步,我们可以得到\(x^{(i)},z^{(i)}\)的联合分布:
\[p(x^{(i)},z^{(i)})=p(x^{(i)}|z^{(i)})p(z^{(i)})\]

整个模型可以描述为:对于每个样本\(x^{(i)}\),首先根据多项式分布随机生成其标签\(z^{(i)}\)(隐含随机变量),然后根据标签\(z^{(i)}\)对应的多元高斯分布模型随机生成该样本\(x^{(i)}\)

该模型关于\(\phi,\mu,\Sigma\)的似然函数为:

\[\mathcal L(\phi,\mu,\Sigma)=\sum_{i=1}^m p(x^{(i)};\phi,\mu,\Sigma)\]

\[=\sum_{i=1}^m\sum_{j=1}^k p(x^{(i)}|z^{(i)}=j;\mu_j,\Sigma_j)p(z^{(i)}=j;\phi_j)\]

相应地,对数似然函数为:

\[l(\phi,\mu,\Sigma)=\sum_{i=1}^m \log p(x^{(i)};\phi,\mu,\Sigma)\]

\[=\sum_{i=1}^m\log[\sum_{j=1}^k p(x^{(i)}|z^{(i)}=j;\mu,\Sigma)p(z^{(i)}=j;\phi)]\]

这个式子不能通过令对数似然函数\(l\)对各个参数的偏导数=0来求得最优解。

但如果我们已知每个样本的标签\(z^{(i)}=j\)的话,即,\(p(z^{(i)}\neq j;\phi)=0\),此时对数似然函数可以简化为

\[l(\phi,\mu,\Sigma)=\sum_{i=1}^m\log[p(x^{(i)}|z^{(i)};\mu,\Sigma)p(z^{(i)};\phi)]\]

\[l(\phi,\mu,\Sigma)=\sum_{i=1}^m[\log p(x^{(i)}|z^{(i)};\mu,\Sigma)+\log p(z^{(i)};\phi)] \]

此时再对各参数求偏导,并令偏导函数=0,得到各参数取值:
技术分享图片

此时各参数的式子和高斯判别分析模型非常相似,但如果现在不知道每个样本的分类\(z^{(i)}\),就需要另一种算法:EM算法

EM(Expectation-Maximization)算法

Repeat until convergence{
____(E-step)
____For each i,j:
________令\(w_j^{(i)}:=p(z^{(i)}=j|x^{(i)};\phi,\mu,\Sigma)\)
____(M-step)更新各个参数
____\(\phi_j:=\frac 1 m \sum_{i=1}^m w_j^{(i)}\)
____\(\mu_j:=\frac{\sum_{i=1}^m w_j^{(i)}x^{(i)}}{\sum_{i=1}^m w_j^{(i)}}\)
____\(\Sigma_j:=\frac {\sum_{i=1}^m w_j^{(i)}(x^{(i)}-\mu_j)(x^{(i)}-\mu_j)^T}{\sum_{i=1}^m w_j^{(i)}}\)
}

可见,这里用更"软"的\(w_j^{(i)}\)替代了原有的\(1\{z^{(i)}=j\}\),其中:

\(p(z^{(i)}=j|x^{(i)};\phi,\mu,\Sigma)\)是在给定\(x^{(i)}\)的条件下\(z^{(i)}=j\)的后验概率,根据贝叶斯公式有:

\[p(z^{(i)}=j|x^{(i)};\phi,\mu,\Sigma)=\frac{p(x^{(i)}|z^{(i)}=j;\mu,\Sigma)p(z^{(i)}=j;\phi)}{p(x^{(i)})}\]

\[=\frac{p(x^{(i)}|z^{(i)}=j;\mu,\Sigma)p(z^{(i)}=j;\phi)}{\sum_{l=1}^k p(x^{(i)}|z^{(i)}=l;\mu,\Sigma)p(z^{(i)}=l;\phi)}\]

\(p(x^{(i)}|z^{(i)}=l;\mu,\Sigma)\)是在标签\(l\)对应的多元高斯分布模型中,\(x^{(i)}\)的概率

根据最开始的假设\(z^{(i)}\)服从多项式分布,\(p(z^{(i)}=l;\phi)=\phi_l\)

CS229 Machine Learning学习笔记:Note 7(K-means聚类、高斯混合模型、EM算法)

原文:https://www.cnblogs.com/qpswwww/p/9324820.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!