区块链技术博客
www.b2bchain.cn

【算法模型】S07E11 高斯混合模型(上):利用EM迭代法探索求职学习资料

D0b2wT.gif

本文介绍了【算法模型】S07E11 高斯混合模型(上):利用EM迭代法探索求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

前面我们讲过,在统计学领域,对于很多的样本我们可以用一个高斯分布去概况描述样本的分布,他非常通用,具体的例子我们就不再赘述。现在请大家看看下面这个样本的分布图:

import numpy as np import matplotlib.pyplot as plt  mean_1 = np.array([5., 0.]) mean_2 = np.array([-2.5, -2.5]) mean_3 = np.array([4., 5.])  conv_1 = np.array([[2, 0],                  [0, 2]]) conv_2 = np.array([[4, -1],                  [-1, 1]]) conv_3 = np.array([[5, 1.5],                  [1.5, 3]]) x_1, y_1 = np.random.multivariate_normal(mean=mean_1, cov=conv_1, size=3000).T x_2, y_2 = np.random.multivariate_normal(mean=mean_2, cov=conv_2, size=3000).T x_3, y_3 = np.random.multivariate_normal(mean=mean_3, cov=conv_3, size=3000).T plt.plot(x_1, y_1, 'ro', alpha=0.05) plt.plot(x_2, y_2, 'bo', alpha=0.05) plt.plot(x_3, y_3, 'go', alpha=0.05) plt.gca().axes.set_xlim(-7.5, 10) plt.gca().axes.set_ylim(-7.5, 10) plt.grid(ls='--') plt.show()

【算法模型】S07E11 高斯混合模型(上):利用EM迭代法探索

很显然,如果我们试图用一个二元的高斯分布模型去描述图中这些样本点的分布,肯定是不合适的,单个高斯分布无法描述这个图中的样本分布。

这里就需要引入高斯混合模型,顾名思义,这个模型有两个要点,一个是高斯,另一个是混合。

高斯:指的是底层的模型还是高斯分布。

混合:指的是我们利用多个高斯分布进行加权叠加,就是将多个不同的高斯分布的概率密度函数进行加权叠加,形成一个新概率密度函数表达式,他能够更有效的描述当前形式样本的分布。

$$p(x)=sum_{k=1}^Kalpha_kN(mu_k,Sigma_k),quad sum_{k=1}^Kalpha_k=1$$

即,我们假设混合高斯模型中有$N$个高斯分布,每个高斯分布概率密度函数$N(mu
_k,Sigma_k)$的权重是$alpha_k$,那么针对上面的例子,我们可以假定高斯混合模型中的高斯分布有3个,我们用不同的颜色区分不同的高斯分布,如下图所示,他们拥有不同的权重$alpha_1,alpha_2,alpha_3$,最终叠加形成所有样本的概率密度函数。也就是说对于某一个样本,利用高斯混合模型中的每一个高斯分布,都可以计算出一个概率密度值,然后我们把他们按照权重相加就得到他实际最终的概率密度值。

【算法模型】S07E11 高斯混合模型(上):利用EM迭代法探索

这是从几何角度来介绍高斯混合模型。

但是我觉得这样说可能会给大家带来一定的困惑,下面我们从混合模型的角度,也就是生成模型的角度来探讨,相信更能揭示模型内部的机理:

首先,高斯混合模型中也是同时含有观测变量和隐含变量。观测变量$x$很简单,就是样本各特征的观测值,画在上图中,就是各个点的坐标。

前面我们讲过,在统计学领域,对于很多的样本我们可以用一个高斯分布去概况描述样本的分布,他非常通用,具体的例子我们就不再赘述。现在请大家看看下面这个样本的分布图:

import numpy as np import matplotlib.pyplot as plt  mean_1 = np.array([5., 0.]) mean_2 = np.array([-2.5, -2.5]) mean_3 = np.array([4., 5.])  conv_1 = np.array([[2, 0],                  [0, 2]]) conv_2 = np.array([[4, -1],                  [-1, 1]]) conv_3 = np.array([[5, 1.5],                  [1.5, 3]]) x_1, y_1 = np.random.multivariate_normal(mean=mean_1, cov=conv_1, size=3000).T x_2, y_2 = np.random.multivariate_normal(mean=mean_2, cov=conv_2, size=3000).T x_3, y_3 = np.random.multivariate_normal(mean=mean_3, cov=conv_3, size=3000).T plt.plot(x_1, y_1, 'ro', alpha=0.05) plt.plot(x_2, y_2, 'bo', alpha=0.05) plt.plot(x_3, y_3, 'go', alpha=0.05) plt.gca().axes.set_xlim(-7.5, 10) plt.gca().axes.set_ylim(-7.5, 10) plt.grid(ls='--') plt.show()

【算法模型】S07E11 高斯混合模型(上):利用EM迭代法探索

很显然,如果我们试图用一个二元的高斯分布模型去描述图中这些样本点的分布,肯定是不合适的,单个高斯分布无法描述这个图中的样本分布。

这里就需要引入高斯混合模型,顾名思义,这个模型有两个要点,一个是高斯,另一个是混合。

高斯:指的是底层的模型还是高斯分布。

混合:指的是我们利用多个高斯分布进行加权叠加,就是将多个不同的高斯分布的概率密度函数进行加权叠加,形成一个新概率密度函数表达式,他能够更有效的描述当前形式样本的分布。

$$p(x)=sum_{k=1}^Kalpha_kN(mu_k,Sigma_k),quad sum_{k=1}^Kalpha_k=1$$

即,我们假设混合高斯模型中有$N$个高斯分布,每个高斯分布概率密度函数$N(mu
_k,Sigma_k)$的权重是$alpha_k$,那么针对上面的例子,我们可以假定高斯混合模型中的高斯分布有3个,我们用不同的颜色区分不同的高斯分布,如下图所示,他们拥有不同的权重$alpha_1,alpha_2,alpha_3$,最终叠加形成所有样本的概率密度函数。也就是说对于某一个样本,利用高斯混合模型中的每一个高斯分布,都可以计算出一个概率密度值,然后我们把他们按照权重相加就得到他实际最终的概率密度值。

【算法模型】S07E11 高斯混合模型(上):利用EM迭代法探索

这是从几何角度来介绍高斯混合模型。

但是我觉得这样说可能会给大家带来一定的困惑,下面我们从混合模型的角度,也就是生成模型的角度来探讨,相信更能揭示模型内部的机理:

首先,高斯混合模型中也是同时含有观测变量和隐含变量。观测变量$x$很简单,就是样本各特征的观测值,画在上图中,就是各个点的坐标。

前面我们讲过,在统计学领域,对于很多的样本我们可以用一个高斯分布去概况描述样本的分布,他非常通用,具体的例子我们就不再赘述。现在请大家看看下面这个样本的分布图:

import numpy as np import matplotlib.pyplot as plt  mean_1 = np.array([5., 0.]) mean_2 = np.array([-2.5, -2.5]) mean_3 = np.array([4., 5.])  conv_1 = np.array([[2, 0],                  [0, 2]]) conv_2 = np.array([[4, -1],                  [-1, 1]]) conv_3 = np.array([[5, 1.5],                  [1.5, 3]]) x_1, y_1 = np.random.multivariate_normal(mean=mean_1, cov=conv_1, size=3000).T x_2, y_2 = np.random.multivariate_normal(mean=mean_2, cov=conv_2, size=3000).T x_3, y_3 = np.random.multivariate_normal(mean=mean_3, cov=conv_3, size=3000).T plt.plot(x_1, y_1, 'ro', alpha=0.05) plt.plot(x_2, y_2, 'bo', alpha=0.05) plt.plot(x_3, y_3, 'go', alpha=0.05) plt.gca().axes.set_xlim(-7.5, 10) plt.gca().axes.set_ylim(-7.5, 10) plt.grid(ls='--') plt.show()

【算法模型】S07E11 高斯混合模型(上):利用EM迭代法探索

很显然,如果我们试图用一个二元的高斯分布模型去描述图中这些样本点的分布,肯定是不合适的,单个高斯分布无法描述这个图中的样本分布。

这里就需要引入高斯混合模型,顾名思义,这个模型有两个要点,一个是高斯,另一个是混合。

高斯:指的是底层的模型还是高斯分布。

混合:指的是我们利用多个高斯分布进行加权叠加,就是将多个不同的高斯分布的概率密度函数进行加权叠加,形成一个新概率密度函数表达式,他能够更有效的描述当前形式样本的分布。

$$p(x)=sum_{k=1}^Kalpha_kN(mu_k,Sigma_k),quad sum_{k=1}^Kalpha_k=1$$

即,我们假设混合高斯模型中有$N$个高斯分布,每个高斯分布概率密度函数$N(mu
_k,Sigma_k)$的权重是$alpha_k$,那么针对上面的例子,我们可以假定高斯混合模型中的高斯分布有3个,我们用不同的颜色区分不同的高斯分布,如下图所示,他们拥有不同的权重$alpha_1,alpha_2,alpha_3$,最终叠加形成所有样本的概率密度函数。也就是说对于某一个样本,利用高斯混合模型中的每一个高斯分布,都可以计算出一个概率密度值,然后我们把他们按照权重相加就得到他实际最终的概率密度值。

【算法模型】S07E11 高斯混合模型(上):利用EM迭代法探索

这是从几何角度来介绍高斯混合模型。

但是我觉得这样说可能会给大家带来一定的困惑,下面我们从混合模型的角度,也就是生成模型的角度来探讨,相信更能揭示模型内部的机理:

首先,高斯混合模型中也是同时含有观测变量和隐含变量。观测变量$x$很简单,就是样本各特征的观测值,画在上图中,就是各个点的坐标。

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 【算法模型】S07E11 高斯混合模型(上):利用EM迭代法探索求职学习资料
分享到: 更多 (0)
D0b2wT.gif

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们