楼主: 星博士
11963 4

[数据挖掘理论与案例] 混合高斯模型应用中的问题 [推广有奖]

大师

63%

还不是VIP/贵宾

-

威望
3
论坛币
1337803 个
通用积分
10.7363
学术水平
169 点
热心指数
275 点
信用等级
145 点
经验
91746 点
帖子
6018
精华
1
在线时间
1355 小时
注册时间
2011-3-28
最后登录
2018-8-13

楼主
星博士 发表于 2012-2-2 17:34:54 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币


转自:数据分析博客

这几天赶着实现基于混合高斯模型的Bag-of-Viswords方法去获取图像特征,没想到,简单的混合高斯模型被我折腾出一大堆问题,查了一下相关文献,这还真是混合高斯模型在高维空间应用的种种缺陷。

关于混合高斯模型就不说了,没啥特别的地方,但将混合高斯模型用于图像语义特征抽取还是挺有意思的。这是来自于文本检索的一个技术。对于图像训练集,首先使用各种方法(比如,SIFT)提取出局部区域特征(比如车子的轮子,房间的窗户等等),一幅图像大概有几百至几千个特征不等吧,把所有图像的局部特征放在一起,那这个特征就多了去了,在我的实验中大概10万个向量,对这10万个向量做一下聚类,比如假设有300个质心,于是10万个特征就被划分到300个类别中。我现在认为,这300个类别的代表就构成了一个“词典”,显然,质心就是最自然的代表。

下一步,将每幅图像的特征在这300个质心上做直方图,就是说,和哪个质心最近(欧氏距离最简单了)就划归到哪个类别中去,这样这幅图像就被表达成维度为300的定长特征了。所有的图像都这么抽取特征之后,使用分类器就可以很容易分类。

在聚类过程中,最容易想到的那就是kmeans了,简单、直观。但有更好的方法,那就是用概率方法,比如高斯混合模型。混合高斯模型优于kmeans的地方就不多说了,地球人都知道。但没想到的是,在这种高维大样本的情形下出现的毛病特别多,总结如下:

1、协方差矩阵奇异问题。这是混合高斯模型的老问题了,在迭代中如果出现某类(概率的)样本特别少的情形,会导致协方差矩阵奇异,这时计算高斯PDF是不可能了,协方差逆不存在,不存在?那就regularize它,事实上很多文献就是这么推荐的。

2、高斯函数密度全为0。这个是典型的高维空间问题了,在高维空间一点点扰动就有可能造成两点之间的距离呈指数级的增长,从而导致所有类别高斯PDF趋近于0。这个问题一度让我很困惑,因为为了减少参数数量,我是使用对角矩阵来逼近样本的协方差的(不这么干会内存不够),那这时候就出现了“类中样本少了方差太小有问题,样本多了方差太大也有问题”的两难境地。经过研究MATLAB自带的gmdistribution.fit函数算是暂时解决了这个问题,但心里还是不很踏实。

3、计算复杂度问题。本来嘛,使用EM算法估计GMM参数复杂度就比kmeans要高,现在可好了,样本大(100,000),高斯分量多(300),这意味着啥问题?意味簇与簇之间的重合覆盖可能会很大啊,这个迭代次数显著增长。悲剧的是,这么大的规模每次迭代时间是很可观的。同样的训练,kmeans一分钟,GMM两小时以上(没有实际计算,反正出去吃了饭吹会牛,回来还没算完,再看个一集friends差不多了)。

3、更悲剧的问题:参数终于估计完了,代入直方图,使用支持向量机一分类,比使用kmeans得到的精度差了1%!真心的希望是我的算法编写错了...但是,过年了,再也hold不住了,爱咋咋地吧...


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:distribution friends Regular kmeans friend 模型 高斯

来自人大经济论坛经管教学案例库的惊喜:

收录 10000 多条经管教学案例,最丰富、最全面的经管案例库!

将课堂知识与实践相联系,活跃课堂气氛,强化学生的理解;

使用本案例库,实现由传统教学向案例式教学的转变,实现整体教学水平的跨越!

联系电话:13661292478

沙发
li0jing 在职认证  发表于 2012-2-2 17:43:33
是不是发错地方了!

藤椅
malixiajingjing 发表于 2013-3-31 09:48:57
想问一下协方差矩阵出现奇异怎么解决呢?regularize具体是怎么做的?

板凳
qxhc 发表于 2014-12-22 11:20:03
高斯混合模型适用什么情况的啊?谢谢啊网上找不到资料的

报纸
i莉莉酱 学生认证  发表于 2016-11-1 00:06:10
malixiajingjing 发表于 2013-3-31 09:48
想问一下协方差矩阵出现奇异怎么解决呢?regularize具体是怎么做的?
我用的matlab里的gmdistribution.ft函数。
mixn = gmdistribution.fit(x,cluster,'Options',options,'Regularize',0.000000000000005);

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 14:12