机器学习--聚类算法(无监督)--高斯混合模型算法理论

目录

一 算法概述

1 算法概念

2 算法概念的公式化表达

二 算法原理

1 构建对数似然函数

2 使用EM算法

1)初始化参数

2)E-step:设隐变量的概念分布期望函数

3)M-stpe:由期望函数,最大化似然函数,估计参数

4)判断参数时候收敛,不收敛进行下一轮迭代(E-step与M-step)


一 算法概述

1 算法概念

高斯混合模型(GMM)是指由多个n元高斯模型线性叠加,描述了数据本身的一种分布情况,其中每个高斯模型称为一个component(类别)

注意:高斯混合模型一般使用在聚类算法中

2 算法概念的公式化表达

p(x)=\sum _{k=1}^{K}\pi _{k}p(x|\mu _{k},\Sigma _{k})=\sum _{k=1}^{K}p(x|\mu _{k},\Sigma _{k},\pi _{k})

  • \pi _{k}:是指每个类别发生的概率大小,其中\sum _{k=1}^{K}\pi _{k}=1
  • \mu _{k}:是指每个类别中的特征的均值向量
  • \Sigma _{k}:是指每个类型中的特征的协方差矩阵(c_{ij}=E((X_{i}-EX_{i})(X_{j}-EX_{j})),对称矩阵)
  • p(x|\mu _{k},\Sigma _{k}):表示n元高斯概率密度函数

二 算法原理

1 构建对数似然函数

p(x^{(1)},x^{(2)},...,x^{(m)})=\prod_{i=1}^{m}p(x^{(i)})=\prod_{i=1}^{m}\sum_{j=1}^{K}p(x^{(i)}|\mu _{j},\Sigma _{j},\pi _{j})

L(\pi,\mu ,\Sigma )=\prod_{i=1}^{m}\sum_{j=1}^{K}p(x^{(i)}|\mu _{j},\Sigma _{j},\pi _{j})

l(\pi,\mu ,\Sigma )=log\left \{ \prod_{i=1}^{m}\sum_{j=1}^{K}p(x^{(i)}|\mu _{j},\Sigma _{j},\pi _{j}) \right \}

2 使用EM算法

1)初始化参数\mu ,\Sigma ,\pi

2)E-step:设隐变量z=\pi的概念分布期望函数

Q(z^{(i)}=j|\mu_{j} ,\Sigma_{j} ,\pi_{j} )=\frac{p(x^{(i)},z^{(i)}_{j}|\mu_{j} ,\Sigma_{j} ,\pi_{j} )}{\sum_{z}p(x^{(i)},z^{(i)}_{j}|\mu_{j} ,\Sigma_{j} ,\pi_{j} )}=\frac{p(x^{(i)}|\mu_{j} ,\Sigma_{j} ,\pi_{j} )}{\sum_{j}^{K}p(x^{(i)}|\mu_{j} ,\Sigma_{j} ,\pi_{j} )}

令:w^{(i)}_{j}=Q(z^{(i)}=j|\mu_{j} ,\Sigma_{j} ,\pi_{j} )

3)M-stpe:由期望函数,最大化似然函数,估计参数

  • 第一点:使用Jesson不等式特性,似然函数进行变形

l(\pi,\mu ,\Sigma )=\sum_{i=1}^{m}log\left \{ \sum_{j=1}^{K}p(x^{(i)}|\mu _{j},\Sigma _{j},\pi _{j})\right \}

=\sum_{i=1}^{m}log \sum_{j=1}^{K}w^{(i)}_{j}\frac{p(x^{(i)}|\mu _{j},\Sigma _{j},\pi _{j})}{w^{(i)}_{j}}

=\sum_{i=1}^{m} \sum_{j=1}^{K}w^{(i)}_{j}log\frac{p(x^{(i)}|\mu _{j},\Sigma _{j},\pi _{j})}{w^{(i)}_{j}}

=\sum_{i=1}^{m} \sum_{j=1}^{K}w^{(i)}_{j}log\frac{p(x^{(i)}|\mu _{j},\Sigma _{j})\pi _{j}}{w^{(i)}_{j}}

=\sum_{i=1}^{m} \sum_{j=1}^{K}w^{(i)}_{j}log\frac{\frac{1}{(2\pi )^{n/2}|\Sigma_{j}| ^{1/2}}exp\left \{ -\frac{1}{2}(x^{(i)}-\mu _{j})^{T}\Sigma_{j} ^{-1}(x^{(i)}-\mu _{j}) \right \}\pi _{j}}{w^{(i)}_{j}}

\Rightarrow l(\mu, \Sigma, \pi )=\sum_{i=1}^{m} \sum_{j=1}^{K}w^{(i)}_{j}log\frac{\frac{1}{(2\pi )^{n/2}|\Sigma_{j}| ^{1/2}}exp\left \{ -\frac{1}{2}(x^{(i)}-\mu _{j})^{T}\Sigma_{j} ^{-1}(x^{(i)}-\mu _{j}) \right \}\pi _{j}}{w^{(i)}_{j}}

  • 第二点:构造拉格朗日函数(目标函数)

\left\{\begin{matrix} max\left \{ l(\mu ,\Sigma ,\pi ) \right \}\\ \sum _{j=1}^{K}\pi _{j}=1 \end{matrix}\right.\Rightarrow L(\mu ,\Sigma ,\pi,\beta )= l(\mu ,\Sigma ,\pi )+\beta (\sum _{j=1}^{K}\pi _{j}-1)

  • 第三点:求解\mu ,\Sigma ,\pi

求解:\mu

\frac{\partial }{\partial \mu _{j}}L(\mu ,\Sigma ,\pi ,\beta )=\frac{\partial }{\partial \mu _{j}}\left \{[\sum_{i=1}^{m}\sum_{j=1}^{K}w^{(i)}_{j}(-\frac{1}{2}(x^{(i)}-\mu _{j})^{T}\Sigma_{j} ^{-1}(x^{(i)}-\mu _{j}))] +c\right \}

=\frac{\partial }{\partial \mu _{j}}\left \{[-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{K}w^{(i)}_{j}((x^{(i)})^{T}\Sigma _{j}^{-1}x^{(i)}-(x^{(i)})^{T}\Sigma _{j}^{-1}\mu _{j}-(\mu _{j})^{T}\Sigma_{j} ^{-1}x^{(i)}+(\mu _{j})^{T}\Sigma_{j} ^{-1}\mu _{j})] +c\right \}

=-\frac{1}{2}\sum_{i=1}^{m}w^{(i)}_{j}(-\Sigma_{j} ^{-1}x^{(i)}-\Sigma _{j}^{-1}x^{(i)}+2\Sigma_{j}^{-1}\mu _{j})

=-\frac{1}{2}\sum_{i=1}^{m}w^{(i)}_{j}(-2\Sigma _{j}^{-1}x^{(i)}+2\Sigma _{j}^{-1}\mu _{j})

=\sum_{i=1}^{m}w^{(i)}_{j}(\Sigma_{j} ^{-1}x^{(i)}-\Sigma_{j} ^{-1}\mu _{j})

\Rightarrow \sum_{i=1}^{m}w^{(i)}_{j}(\Sigma _{j}^{-1}x^{(i)}-\Sigma_{j} ^{-1}\mu _{j})=0\Rightarrow \Sigma_{j} ^{-1}\sum_{i=1}^{m}w^{(i)}_{j}(x^{(i)}-\mu _{j})=0

\Rightarrow \sum_{i=1}^{m}w^{(i)}_{j}(x^{(i)}-\mu _{j})=0\Rightarrow \sum_{i=1}^{m}w^{(i)}_{j}x^{(i)}=\sum_{i=1}^{m}w^{(i)}_{j}\mu _{j}

\Rightarrow \sum_{i=1}^{m}w^{(i)}_{j}x^{(i)}=\mu _{j}\sum_{i=1}^{m}w^{(i)}_{j}

\Rightarrow \mu _{j}=\frac{\sum_{i}^{m}w^{(i)}_{j}x^{(i)}}{\sum_{i=1}^{m}w^{(i)}_{j}}

求解:\Sigma

\frac{\partial L(\mu, \Sigma ,\pi, \beta ) }{\partial \Sigma _{j}}=\frac{\partial }{\partial \Sigma _{j}}\left \{[\sum_{i=1}^{m} \sum_{j=1}^{K}w^{(i)}_{j}(-\frac{1}{2}log|\Sigma_{j}|-\frac{1}{2}(x^{(i)}-\mu _{j})^{T}\Sigma_{j}^{-1}(x^{(i)}-\mu _{j})]+c\right \}

=\sum_{i=1}^{m} w^{(i)}_{j}(-\frac{1}{2}|\Sigma |^{-1}|\Sigma|(\Sigma_{j}^{-1})^{T}-(-\frac{1}{2}(\Sigma_{j}^{-1})^{T}(x^{(i)}-\mu _{j})(x^{(i)}-\mu _{j})^{T}(\Sigma_{j}^{-1})^{T}))

=\sum_{i=1}^{m} w^{(i)}_{j}(-\frac{1}{2}(\Sigma_{j}^{T})^{-1}+\frac{1}{2}(\Sigma_{j}^{T})^{-1}(x^{(i)}-\mu _{j})(x^{(i)}-\mu _{j})^{T}(\Sigma_{j}^{T})^{-1})

=\sum_{i=1}^{m} w^{(i)}_{j}(-\frac{1}{2}\Sigma_{j}^{-1}+\frac{1}{2}\Sigma_{j}^{-1}(x^{(i)}-\mu _{j})(x^{(i)}-\mu _{j})^{T}\Sigma_{j}^{-1})

=-\frac{\Sigma_{j}^{-1}}{2}\sum_{i=1}^{m} w^{(i)}_{j}(I-(x^{(i)}-\mu _{j})(x^{(i)}-\mu _{j})^{T}\Sigma_{j}^{-1})

\Rightarrow -\frac{\Sigma_{j}^{-1}}{2}\sum_{i=1}^{m} w^{(i)}_{j}(I-(x^{(i)}-\mu _{j})(x^{(i)}-\mu _{j})^{T}\Sigma_{j}^{-1})=0

\Rightarrow -\frac{\Sigma_{j}^{-1}}{2}[\sum_{i=1}^{m} w^{(i)}_{j}I-\sum_{i=1}^{m} w^{(i)}_{j}(x^{(i)}-\mu _{j})(x^{(i)}-\mu _{j})^{T}\Sigma_{j}^{-1}]=0

\Rightarrow \sum_{i=1}^{m} w^{(i)}_{j}I-\sum_{i=1}^{m} w^{(i)}_{j}(x^{(i)}-\mu _{j})(x^{(i)}-\mu _{j})^{T}\Sigma_{j}^{-1}=0

\Rightarrow \sum_{i=1}^{m} w^{(i)}_{j}I=\sum_{i=1}^{m} w^{(i)}_{j}(x^{(i)}-\mu _{j})(x^{(i)}-\mu _{j})^{T}\Sigma_{j}^{-1}

\Rightarrow \sum_{i=1}^{m} w^{(i)}_{j}\Sigma_{j}=\sum_{i=1}^{m} w^{(i)}_{j}(x^{(i)}-\mu _{j})(x^{(i)}-\mu _{j})^{T}I

\Rightarrow \Sigma_{j}=\frac{\sum_{i=1}^{m} w^{(i)}_{j}(x^{(i)}-\mu _{j})(x^{(i)}-\mu _{j})^{T}I}{\sum_{i=1}^{m} w^{(i)}_{j}}

求解:\pi,\beta

\Rightarrow l(\mu, \Sigma, \pi )=\sum_{i=1}^{m} \sum_{j=1}^{K}w^{(i)}_{j}log\frac{\frac{1}{(2\pi )^{n/2}|\Sigma_{j}| ^{1/2}}exp\left \{ -\frac{1}{2}(x^{(i)}-\mu _{j})^{T}\Sigma_{j} ^{-1}(x^{(i)}-\mu _{j}) \right \}\pi _{j}}{w^{(i)}_{j}}

\frac{\partial L(\mu ,\Sigma ,\pi ,\beta )}{\partial \pi _{j}}=\frac{\partial }{\partial \pi _{j}}\left \{ \sum_{i=1}^{m}\sum_{j=1}^{K}w^{(i)}_{j}log\pi _{j}+\beta(\sum_{j=1}^{K}\pi _{j}-1)+c \right \}

=\sum_{i=1}^{m}w^{(i)}_{j}\pi _{j}^{-1}+\beta=0

\Rightarrow \beta=-\pi _{j}^{-1}\sum_{i=1}^{m}w^{(i)}_{j}\Rightarrow \pi _{j} \beta=-\sum_{i=1}^{m}w^{(i)}_{j}\Rightarrow \sum_{j=1}^{K} \pi _{j} \beta=-\sum_{i=1}^{m}\sum_{j=1}^{K}w^{(i)}_{j}

\Rightarrow \beta=-\sum_{i=1}^{m}\sum_{j=1}^{K}w^{(i)}_{j}=-m

\Rightarrow \pi _{j} =\frac{1}{m}\sum_{i=1}^{m}w^{(i)}_{j}

4)判断参数\mu ,\Sigma ,\pi,\beta时候收敛,不收敛进行下一轮迭代(E-step与M-step)

你可能感兴趣的:(聚类,机器学习,数据挖掘,python,算法)