Clustering by Passing Messages Between Data Points(Brendan J.Frey* and Delbert Dueck)

Clustering by Passing Messages Between Data Points(Brendan J.Frey* and Delbert Dueck)译文与认识

摘要:在处理感知信号和检测数据中的模式中,通过识具有代表性的例子记性数据聚类是十分重要的,这样的exemplars可以通过随机选择初始化数据集合,然后迭代精炼该集合,该方法仅仅在随机选择接近于一个良好的解时是很有用的。我们提出一种方法叫做affinity propagation,其将成对数据间的的相似性度量作为输入。数据之间交换实值消息,直到一个高质量exemplars的集合和其对应的簇逐渐产生。我们使用affinity propagation在人脸的图像分类,微阵列数据中检测基因,识别本原稿中代表性的句子,识别在航空旅行中可以获得的有效城市。Affinity propagation在相比其他方法上找到更低误差的簇,并且花费不到百分之一的时间(与其他方法比较)。

正文

基于相似性度量的数据聚类是在数据分析和工程系统中一种重要的手段。一种常用的方法是使用数据去学习一系列的中心点,该中心点使得数据与最邻近的中心点的平法误差和最小,当中心点选择为实际数据时,这些选择的数据中心实例点叫做exemplars。流行的k-centers聚类技术就是开始于一些随机exemplars,然后以减少误差平方和为目标来进行迭代精炼该集合。k-centers聚类对于初始选择的exemplars十分敏感!通常需要重新计算很多不同初始化情况试图找到最优的解。然而这种方法只在聚类规模小,并且初始化靠近一个良好的解时,效果良好。我们现在用不同的方法并且介绍一种方法:同时考虑所有的点作为潜在的exemplars,把所有的数据点视为网络中的结点,我们设计一种方法,伴随着网络中的边递归的传递实值消息,直到一个良好exemplars的集合和对应的簇出现。正如稍后描述的那样,消息更新基于简单的公式,搜索一个恰当选择能量函数的最小值。在任何时间点,每一个消息的大小反映了一个数据点选择另一个数据点作为它exemplar的当前affinity(亲和力,吸引力)。所以我们把我们的方法叫做“affinity propagation”,图1A表示在消息传递过程中,簇是如何逐步产生的。

AP把数据点之间实值的相似度作为输入,相似度s(i,k)表示多大程度上k索引的数据点适合作为数据点i的exemplar。当目标是最小化平方误差时,每一个相似度设定为负的平方误差(欧几里得距离)。对于点xi和xk,,确实,这里描述的方法可以应用到优化准则更加一般的情况下,随后,我们描述的工作:相似度来自是成对图像、成对微阵列测量测量、成对的英语句子、成对的城市。当exemplar依赖的概率模型是可以得到的时候,s(i,k)可以设定为给定数据点i的exemplar为k时,数据点i的对数似然函数。或者,在恰当的时候,相似度可以手动设定。

AP把实数s(k,k)作为每一个数据点k的输入,而不并不需要预先设定簇的数目。那些具有更大s(k,k)的数据点,具有更大的可能被选作一个exemplar。这些值(即输入的s(k,k))被叫做preferences(参考度)。识别exemplars的数目(簇的数目)受到输入参考度的影响,在消息传递过程中慢慢浮现。假使有一个先验,所有数据点都是同等适合作为exemplars,那么参考度应该设定为同大小的值——这个值的改变可以引起不同类别数,该值可以设定为输入相似度的中值(产生适中的簇数目)或者他们的最小值(产生一个小数量的簇数目)。

这里数据点有两种消息交换,每一种考虑不同的竞争。消息在每一个阶段可以被结合起来决定哪个点作为exemplars,对每一个其他点,它属于哪个exemplar。responsibility r(i,k),从点i发送消息到点k,考虑i的其他候潜在选exemplars,反映k适合作为点i的exemplar的累积证据。

补充: 在一个亲子关系的分析时,我看到对于responsibility和availability的一些解释,我认为能够帮助理解这两个消息的含义。

尽责程度responsibility:父亲在抚养孩子时,在多大程度上去满足孩子成长所需要的资源要求,包括物质资源和其他无形的资源。

(r(i,k)有两部分组成,其中s(i,k)为k作为i的exemplar的适合程度,是不是就可以理解为k能够满足表达i的程度,另一部分是其他候选exemplar点k’对于i表达程度与可及程度之和,作减法体现出k相对于k来说,在表达i的时候呈现的竞争优势)

可及程度availability:父亲对于孩子来说,可以潜在地“触及”或者“得到”的程度,孩子觉得自己需要父亲时,能够多大程度上得到对于对方的支持与回应。

(a(i,k)的理解还不完全,先看做k作为自身exemplar的累积证据加上从其他点得到k为exemplar的累积证据,k对于自身的尽责程度加上k对于其他点的优势表达程度反映k对于i的可及程度(?为什么是对于别人的优势表达和作为自身的exemplar能够体现出可及程度?对别的点优势表达程度明显,又十分适合作为自身的exemplar,这样传递给i点什么意思呢?我能够很好的表达其他点,自身有自信,所以也适合你选择我是合适的),即k传递给i,自己能够给予的回应程度)

availability,a(i,k)从候选exemplar点k传递给点i,反映的是考虑来自其他点对k应该成为一个exemplar的支持,i选择k作为exemplar的合适程度。

r(i,k)和a(i,k)可以看做对数概率的比率。

  • 初始,a(i,k)初始化为0,即a(i,k)=0
  • responsibility的计算使用下面的规则

  • 由于a(i,k)=0,r(i,k)设定为k作为i的exemplar的输入相似度减去i与其他候选exemplar的最大相似度,这个计算更新是数据驱动的,而不考虑有多少其他的数据点对每一个exemplar的赞成。
  • 随后的迭代中,一些数据点被有效的分配给其他exemplars,这时它们的availability就会如同下面的更新规则中描述的那样,下降到0以下。这些负的availability会减少上面更新规则中一些输入的相似度s(i,k)的有效值,在竞争中,移去对应候选exemplar的力量。
  • 对于k=i,responsibility r(k,k)设定为输入参考度s(k,k)减去i与其他候选exemplar的最大相似度,这种self-responsibility,反映k作为一个exemplar的累积证据,基于通过将它分配其他exemplar有多么不合适来调节其输入参考度。
  • 上面r(i,k)的更新,即让所有的候选exemplars竞争对于数据点的所有权(ownership)
  • 下面a(i,k)的更新,对于每一个候选exemplar,从数据点搜集其是否可以成为一个好的exemplar的证据。
  • a(i,k)设定为self-responsibility加上候选exemplar点k从其他数据点接收到的正的responsibility。只有进来的responsibility的正的部分被加,因为只需要一个好的exemplar能够很好的解释一些数据点(positive responsibility),忽略它对于解释其他数据点(negative responsibility)是多么不充分。
  • self-responsibility r(k,k)如果为负的话(表示点k当前最好属于另一个exemplar,而不是以自身为exemplar)。在一些数据点选择k为exemplar的时候获得正的responsibility(k具有更强的竞争能力,在表达这些数据点具有很好的效果)时,k作为一个exemplar的availability会增加。
  • 为了限制进来positive responsibility的强大影响,整个和的阈值不会超过0。
  • self-availability a(k,k)更新规则如下,基于其他数据点传送给候选exemplar点k的正的responsibility,反映k作为一个exemplar的累积证据。

  • 上面的更新规则只需要简单的局部计算,并且容易实现,消息只在已知相似度的成对结点之间交换。
  • 在AP过程中,每一个点使用availability和responsibility结合鉴别exemplars。
  • 对于点i来说,不论k=i与否,使得a(i,k)+r(i,k)取值最大的那个k即为点i的exemplar。
  • 消息传递过程终止于一个固定的迭代次数,或者消息的变化下降到一个阈值,或者局部决定在一定迭代次数中为常量。
  • 在更新消息时,使他们衰减,从而避免在某些情况下数值震荡。每一个消息设定为前一次消息的λ倍加上(1-λ)倍指定的更新值,阻尼因子λ取值为0到1之间,在我们所有的实验中,我们取默认阻尼因子λ为0.5。
  • 每一次迭代包括(i)在给出availability的情况下更新所有的responsibility

(ii)在给出responsibility的情况下更新所有的availability

(iii)结合availability和responsibility监控exemplar决定和在这些决定在10次迭代中均不再改变时,迭代终止算法

时间: 2024-11-06 10:57:40

Clustering by Passing Messages Between Data Points(Brendan J.Frey* and Delbert Dueck)的相关文章

Clustering by Passing Messages Between Data Points(Brendan J.Frey* and Delbert Dueck)例子

例1,数据点聚类:AP应用到25个二维数据中,使用负平法误差作为相似度  聚类数目不用预先指定 AP的一个优点是聚类数目不用预先指定,而是在消息传递方法中慢慢浮现,取决于输入参考度(preference),这种自动模型的选择,基于先验指定每一个数据点有多合适作为exemplar. 下图表示输入常量参考度对聚类数目的影响,这种关系近乎同样于在精确最小平方误差中的关系. 例2,人脸识别:使用优化标准为均方差,识别900张灰度图像   AP一致的能够实现更低的误差,在时间上花费要少于两个数量级. AP

UESTC_Islands 2015 UESTC Training for Data Structures<Problem J>

J - Islands Time Limit: 30000/10000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status Deep in the Carribean, there is an island even stranger than the Monkey Island, dwelled by Horatio Torquemada Marley. Not only it has a re

漫谈 Clustering

http://blog.pluskid.org/?p=17 k-means 好久没有写 blog 了,一来是 blog 下线一段时间,而租 DreamHost 的事情又一直没弄好:二来是没有太多时间,天天都跑去实验室.现在主要折腾 Machine Learning 相关的东西,因为很多东西都不懂,所以平时也找一些资料来看.按照我以前的更新速度的话,这么长时间不写 blog 肯定是要被闷坏的,所以我也觉得还是不定期地整理一下自己了解到的东西,放在 blog 上,一来梳理总是有助于加深理解的,二来也

【Papers】Affinity propagation

参考资料:Clustering by Passing Messages Between Data Points,Brendan J. Frey* and Delbert Dueck

阿里巴巴西溪算法峰会之机器学习与deeplearning专场

大数据风潮的来临,TMT行业仿佛一夜间易帜,集团战略开始由IT时代迈向DT时代,对于像阿里巴巴这样的公司不管是从广告平台.搜索平台.推荐平台还是到图像采集.语音识别类产品,在底层设计中都用到了非常精妙的算法,而这些优秀的算法在DT时代更加凸显了整个公司的技术实力. 2014西溪峰会,齐聚集团算法十几个应用领域,几十个研发团队,与大家一同分享在业务中实践出来的优秀算法与经验,希望大家关注与支持算法领域的建设.共同探索和挖掘算法领域的宝藏,推动阿里巴巴集团从IT到DT的战略进程. 机器学习与deep

AP(affinity propagation)研究

待补充…… AP算法,即Affinity propagation,是Brendan J. Frey* 和Delbert Dueck于2007年在science上提出的一种算法(文章链接,维基百科) 现在只是初步研究了一下官网上提供的MATLAB源码:apcluster.m %APCLUSTER Affinity Propagation Clustering (Frey/Dueck, Science 2007) % [idx,netsim,dpsim,expref]=APCLUSTER(s,p)

什么叫大牛,看看发表论文排行榜-20140317

下面是截止到20140317时的统计结果: [1-JMLR]: Klaus-Robert Müller(15) Francis R. Bach(14) Tong Zhang(14) Michael I. Jordan(13) Alexander J. Smola(13) Yoram Singer(12) Masashi Sugiyama(11) Chih-Jen Lin(11) Shai Shalev-Shwartz(11) Bernhard Schölkopf(9) Yoshua Bengio

转载-- 从贝叶斯方法谈到贝叶斯网络

从贝叶斯方法谈到贝叶斯网络 0 引言 事实上,介绍贝叶斯定理.贝叶斯方法.贝叶斯推断的资料.书籍不少,比如<数理统计学简史>,以及<统计决策论及贝叶斯分析 James O.Berger著>等等,然介绍贝叶斯网络的中文资料则非常少,中文书籍总共也没几本,有的多是英文资料,但初学者一上来就扔给他一堆英文论文,因无基础和语言的障碍而读得异常吃力导致无法继续读下去则是非常可惜的(当然,有了一定的基础后,便可阅读更多的英文资料). 11月9日上午,机器学习班 第9次课,邹讲贝叶斯网络,其帮助

[CC150] Find a line passing the most number of points

Problem: Given a two-dimensional graph with points on it, find a line which passes the most number of points. 此题是Cracking the code 5th edition 第七章第六题,思路就是 n choose 2, 所以时间复杂度是O(n^2),因为没有更快的办法. 此题的难点在于两点一线计算出的斜率是浮点型,不好比较equality.所以其中需要有一个精确到哪一位的概念,英文是