查看原文
其他

经验|fast-and-provably-good-seedings-for-k-means

2017-02-16 全球人工智能

社群用户来源包含:麻省理工学院  斯坦福大学  牛津大学 卡内基梅隆大学  剑桥大学  加州大学伯克利分校  苏黎世联邦理工学院  新加坡国立大学  普林斯顿大学  多伦多大学  帝国理工学院  墨尔本大学  香港科技大学  加州大学洛杉矶分校  清华大学  洛桑联邦理工学院  香港大学  爱丁堡大学  东京大学  香港中文大学  北京大学  复旦大学  武汉大学  南开大学  中科院等数百所名牌大学的研究生、博士以及教授NVidia  Facebook  Line  微软  IBM  谷歌  Bosch  Amazon  Tesla Motors  百度  华为  英特尔  腾讯  阿里巴巴  蚂蚁金服  科大讯飞  旷视科技  碳云智能  地平线  软银投资  红杉资本等上千家全球一流AI相关企业的工程师以及技术专家。


本文来源:知乎,作者:Mr.张,以获授权转载。


大家好我是zyy,本人是机器学习和深度学习的初学爱好者,想跟大家一起分享我的学习经验,大家一起交流。我写的东西不一定全对,但肯定是我一步一步走出来的坑,嚼烂了的经验,可以供大家直接“吸收”。


我的文章主要会涉及各种机器学习和深度学习算法的推导和轮子的实现,以及一些小的应用demo,偶尔还会有一些论文的算法实现。


文中出现的所有代码都可以在我的[GitHub]上找到(https://github.com/YuyangZhangFTD/zyy_ML-DL)。


这篇文章是今年,哦不,是去年nips上一篇关于k-means算法改进的文章。


顺便在此祝各位新年快乐,万事如意,身体健康。


顺便抱怨一句,越来越看不懂现在看客们的口味了,那些一篇速成xxx、XXX预测模型(其实就是简单模型套用不知哪来的数据)、一篇文章看懂XXX、简析XXX(翻来覆去的算法来回说)大行其道,真是心凉。所以我决定,从这片开始,封面放小黄图,以吸引各位看官(ง •̀_•́)ง


哦对了,我还要做个广告,我最近翻译了吴恩达Andrew Ng的新书《Machine Learning Yearning》(他还在写,我也还在继续翻译),是一本用在工业界的机器学习参考书,是大家非常好的厕所读物,链接在此:https://github.com/YuyangZhangFTD/Trans_MachineLearningYearning/blob/master/MLY/main.pdf







k-means


先说说最简单的k-means算法。

k-means是最简单的聚类算法之一,主要思想是,随机初始化k个中心点,一个中心点代表一类,计算数据点到各中心点的距离,将离数据点最近的中心点定位该数据点的类别,之后计算每一类点的中心位置,为新的中心点位置,迭代一定次数后,中心点位置会趋于收敛,由此得到聚类的位置。

算法步骤如下:

  1. 随机选择k个中心点 ;

  2. 令离最近的数据X为聚类簇,其中;

  3. 令为每个聚类簇的中心  ;

  4. 重复2和3直至C不再变化。


k-means算法也算是EM应用,一种特殊的GMM模型,只不过简化了需要估计的参数和对类别的判断,从一个软分类的概率判断(看属于哪个类的概率大)变成了直接找最近的指示函数。话说起来,好像EM那篇还没写完...


咳咳,言归正传。显而易见,我们最初选择的初始位置,会很大程度影响这个算法准确度和收敛程度,所以,我们又有了k-means++。、


k-means++


k-means++: The Advantages of Careful Seeding  这篇文章提出了一种基于采样方法的中心点初始化方法。具体做法的思想是选取使各个中心点尽可能地远离,来减少由于中心点相邻而导致的误差(也不算是误差,错误?大概是这个意思,笔者语文学的还不如英语)。


具体的做法就是随机先选取一个初始中心点,然后计算各个数据点到这个中心点的距离,最后用距离做比值,随机抽取一个点,此时抽取的点,有很大概率离初始化的中心点较远,重复此步骤,然后按k-means来迭代,直至收敛。


算法步骤如下:

  1. 任意选取一个数据点作为中心点;

  2. 的概率选取其余的中心点;

  3. 重复2直到选满k个中心点

  4. 其余步骤与标准k-means相同


这个方法称为。这么做可以很大程度上避免初始选初始选中心点的问题。


近似k-means++


k-means++的好处我们已经提了,但仍然存在很多问题:计算复杂度。随着的增加和样本数量的增大,在计算距离的时候,计算量会逐步增加。所以又有人提出了近似k-means++的算法,Approximate K-Means++ in Sublinear Time这篇文章,用MCMC的方法来近似抽样选择中心点,用Metropolis-Hastings来进行采样中心点。随机选取一个中心点,然后用MCMC的方法采样出长为m的数列,取最后-1个数作为中心点,采样分布为,其中提案分布选择来简化,剩下部分与传统k-means相同。


具体算法步骤如下:

  1. 随机选出第一个中心点;

  2. 随机抽取一个数据点并计算距离;

  3. 用MH采样出一个长为m的序列,取最后-1个作为中心点;

  4. 其余步骤与k-means相同。


由此可见,计算复杂度从,这样就允许有更多的数据参与聚类,这在图像领域极为有用。


改进的k-mc^2


终于讲到老大哥了,每次写东西,要讲的东西总是写到最后了,下次开个专题梳理基础。


Fast and Provably Good Seedings for k-Means这篇文章跟上面那篇是同一拨人,恩,同一拨人搞得同一个大事情,挺有才的,一篇发了AAAI,一篇发了nips,不得不说,厉害了我的哥。


这篇也没干别的事情,换了一个提案分布可以满足更多数据分布假设下的鲁棒性,同时还有一系列的优点。


不要问我优点是啥,都是理论上的优点以及在数据集上表现好的优点。喜欢理论或者学CS的同学可以自己download下来自己仔细看看,我也不在这仔细说了(我才不会说笔者看不懂这些理论证明呢 (。・`ω´・),PAC那些还是留给专业人员去琢磨吧,我就不掺和了)。


以及,这两篇文章的作者提供了一个python库,是拿C写的,python可以调,大家可以下下来用一下,这是github地址:https://github.com/obachem/kmc2。



Reference

  1. Arthur D, Vassilvitskii S. k-means++: The advantages of careful seeding[C]//Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete algorithms. Society for Industrial and Applied Mathematics, 2007: 1027-1035.

  2. Bachem O, Lucic M, Hassani S H, et al. Approximate K-Means++ in Sublinear Time[C]//AAAI. 2016: 1459-1467.

  3. Bachem O, Lucic M, Hassani H, et al. Fast and Provably Good Seedings for k-Means[C]//Advances in Neural Information Processing Systems. 2016: 55-63.

  4. Celebi M E, Kingravi H A, Vela P A. A comparative study of efficient initialization methods for the k-means clustering algorithm[J]. Expert Systems with Applications, 2013, 40(1): 200-210.



AI商学院 特聘导师 招募


AI商学院的三大教育体系:导师指导班+专业技术班+全球博士班。充分满足不同导师的时间安排和资源需求,以及不同学生的学习需求和商业需求 。


招募要求全球高校AI相关教授,副教授,博导;全球名校在读AI相关专业博士以上;全球企业AI相关技术主管以上;全球知名企业CEO,董事长;全球投资公司合伙人以上。


义务和权利:①义务:每年至少出席1次AI商学院的主要活动,如 开学典礼、毕业典礼、全球AI发展博士论坛、全球AI名企巡回拜访学习等系列活动、作为AI商学院学生的导师;②权利:有偿指导AI商学院的学生;对接全球商业合作资源;免费开放AI商学院部分全球资源使用。

联系方式:bushyu(微信)





全球人工智能近期经典文章推荐


重磅|Tesla CEO马斯克提出“改造人”计划 欲化解人工智能危机

污点|大数据告诉你情人节大家都在“干”什么?

应用|人工智能如何让一颗被冷冻了五年的头颅说话?

分析|阿里工程师如何评价微软亚洲研究院提出的LightRNN?

重磅|百度宣布PaddlePaddle和Kubernetes 兼容:开发者可便捷做大规模深度学习训练

重磅|物理学家最新发现:神经网络效率 受限热力学第二定律

干货|不同的损失函数会对深度神经网络带来什么样的影响?

重磅 | 机器学习首次成功预测 金属间化合物缺陷

在你学习AI的路上 该如何提出别人乐于帮助解决的 好问题

分析软件破解神经网络黑盒子 将在"汉诺威"展示



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存