Normalized Cut技术

 所谓Clustering,就是说聚类,把一堆东西(合理地)分成两份或者K份。从数学上来说,
聚类的问题就相当于Graph Partition的问题,即给定一个图G = (V, E),如何把它的顶点集划分为不相交的子集,
使得这种划分最好。其难点主要有两个:
1. 这个“合理”其实相当难达到,随便设一个目标函数可能达不到希望的结果。大家可以看了看[1],这里详细地讨论了一下准则的选择问题。
2. 即使我们定义了一个相当好的聚类准则,如何优化它又是一个问题。

  • Normalized Cut
    在图上,定义什么样的聚类最好,最简单的方法是圈定K个不相交顶点集之后,希望顶点集之间的边,其权值的和最小。
    (边上的权值代表的是两头的顶点邻近的程度,或者说相似度)
    这就是所谓MinCut(最小割)问题。二类分类的最小割不是NP-hard的,但是这不能让人感到开心,因为MinCut这个准则对于聚类不好。
    具体来说,Mincut完全可能将离大部队过远的单个顶点与其它顶点分开, 形成两类。
    事实上,我们不仅仅要让割边的权和最小,而且要让这K个顶点集都差不多大,这样才符合聚类给人的直观感觉。
    于是在MinCut的基础上,出现了Normalized Cut. 思路很简单,将Cut normalize一下,除以表现顶点集大小的某种量度(如 vol A = 所有A中顶点集的度之和)。
    也就是Normalize Cut(A, B) = Cut(A, B) / volA + cut(A, B) / volB
    然而这样一改,NP-hard就来了。这几乎是所有组合优化问题的恶梦。

怎么办呢?把组合优化问题连续化,即所谓减少约束,进行适当的relax。那么为什么会和SVD扯上的呢?
很简单,聚类是东西分成不相交集,也就是有正交的含义在里面;只是分东西必须是0-1式的,这种离散化,就是np-hard的原因。
我们把正交约束保留,但把离散变成连续的,聚类就变成了寻找(列)正交阵的优化问题,那正是SVD的火力所在!就这样,通过这种巧妙的relax,NP-hard问题有了近似解。且不说这近似解的质量如何,
这种方法是相当令人振奋的。
(关于Normalized Cut近似解的质量, 似乎没有什么文章能够给出严格的证明,只是实际
效果不错就是了。)

值得一提的是,Normalized Cut还和图上的Markov chain有紧密的关系[5]。Normalized
Cut这个量度,
换成Markov chain的语言就是在图上随机游走,子集间相互“串门”的概率大小。相当有
趣。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值