混合高斯聚类的一种实现方法

本文介绍了混合高斯聚类模型的一种实现方法,通过优化KL散度实现聚类,适用于目标检测中替代NMS。文章详细阐述了算法原理、聚类迭代过程,并通过实验展示了方法的有效性,指出其局限性和优化方向。
摘要由CSDN通过智能技术生成

近来看了一篇文章《Hierarchical Clustering of a Mixture Model》【1】,它是一篇比较早的文章了,2005年,Jacob Goldberger Sam Roweis,Department of Computer Science, University of Toronto。文中讲到一种简单的高斯聚类方法,近来有文章将它用于目标检测(Object Detection)最后阶段,以代替NMS(non maximum suppression,非极大值抑制),获得更好的bbox预测。我试了一下,这种方法有其独到之处,经它处理后的bbox相互重叠的情况有很大改善,而且较NMS要“软”一些,没那么“硬”,生成的box样子要比NMS能更好地覆盖目标。接下来,我将结合自己的代码和实验进行小结。

一、高斯聚类

混合高斯模型(MoG,Gaussian Mixture Model)是一种常见的参数化概率模型,其表达形式如下:
f ( y ) = ∑ i = 1 k α i N ( y ; μ i , Σ i ) = ∑ i = 1 k α i f i ( y ) ( 1 ) f(y) = \sum^k_{i=1}\alpha_iN(y;\mu_i,\Sigma_i)= \sum^k_{i=1}\alpha_i f_i(y)\qquad (1) f(y)=i=1kαiN(y;μi,Σi)=i=1kαifi(y)(1)
f ( y ) f(y) f(y)是由 k k k 个d维高斯分布构成的混合分布,各高斯分布 f i ( y ) f_i(y) fi(y) 的期望和方差分别为 μ i , Σ i \mu_i,\Sigma_i μi,Σi。可将每个独立的高斯分布称为一个高斯核,所谓高斯聚类就是将多个高斯核进行聚类,用较少的高斯核来近似表达它,此过程描述如下:
f ( y ) = ∑ i = 1 k α i f i ( y ) ≈ ∑ j = 1 m β j g j ( y ) , and  k > m ( 2 ) f(y) =\sum^k_{i=1}\alpha_i f_i(y)\approx \sum^m_{j=1}\beta_j g_j(y)\quad \text{, and }k\gt m\qquad(2) f(y)=i=1kαifi(y)j=1mβjgj(y), and k>m(2)
(2)式中 g j ( y ) g_j(y) gj(y) 也是与 f i ( y ) f_i(y) fi(y) 同维度的高斯分布,且约等于式左边的高斯核数量要大于右边的高斯核数量。所谓高斯聚类,指的就是用较少的高斯核混合分布来拟合较多核的高斯混合分布。
要完成 G ( y ) = ∑ j = 1 m β j g j ( y ) G(y)= \sum^m_{j=1}\beta_j g_j(y) G(y)=j=1mβjgj(y) F ( y ) = ∑ i = 1 k α i f i ( y ) F(y)=\sum^k_{i=1}\alpha_i f_i(y) F(y)=i=1kαifi(y) 的拟合即求使分布 G ( y ) G(y) G(y) 与分布 F ( y ) F(y) F(y) 距离最小的参数,设 θ \theta θ G ( y ) G(y) G(y) 的可调参数集,于是 G ( y ) G(y) G(y) 可写为 G θ ( y ) G_{\theta}(y) Gθ(y),于是拟合问题就是:
θ = arg ⁡ min ⁡ θ D i s t a n c e ( G θ , F ) ( 3 ) \theta=\arg\min_{\theta} {Distance}(G_{\theta},F)\qquad (3) θ=argθminDistance(Gθ,F)(3)
G ( y ) G(y) G(y) F ( y ) F(y) F(y) 是两个分布,衡量概率分布的距离可以用KL散度:
K L ( G , F ) = E F ( log ⁡ p g p f ) ( 4 ) KL(G,F)=\mathbb E_{F}(\log\frac{p_g}{p_f})\qquad(4) KL(G,F)=EF(logpfpg)(4)
有了衡量拟合效果的距离定义(KL),有了可控参数模型( G ( y ) G(y) G(y)),似乎拟合问题就可以直接转化为最优化问题了:将 G θ ( y ) G_{\theta}(y) Gθ(y) F ( y ) F(y) F(y) 是代入(3)、(4),距离KL对参数集( θ = { β , μ , Σ } \theta=\{\beta,\mu,\Sigma\} θ={ β,μ,Σ})求偏导,偏导置零求解最优参数集。但不幸的是 G θ ( y ) G_{\theta}(y) Gθ(y) F ( y ) F(y) F(y) 都是混合高斯模型,这个过程没有闭式解,直接求最优解的方法行不通。怎么办?
突破点1:
两个混合高斯的KL没有闭式,但两个高斯的KL却是有闭式形式的:
设两个高斯分布分别为 N 1 ( μ 1 , Σ 1 ) N_1(\mu_1,\Sigma_1) N1(μ1,Σ1) N 2 ( μ 2 , Σ 2 ) \N_2(\mu_2,\Sigma_2) N2(μ2,Σ2),则它们的KL距离为:
K L ( N 1 ∣ ∣ N 2 ) = 1 2 ( log ⁡ ∣ Σ 2 ∣ ∣ Σ 1 ∣ + T r ( Σ 2 − 1 Σ 1 ) + ( μ 1 − μ 2 ) T ( Σ 2 ) − 1 ( μ 1 − μ 2 ) + d ) KL(N_1||N_2) = \frac 12 \left( \log\frac {|\Sigma_2|}{|\Sigma_1|}+Tr(\Sigma_2^{-1}\Sigma_1)+(\mu_1-\mu_2)^T(\Sigma_2)^{-1}(\mu_1-\mu_2)+d\right) KL(N1N2)=21(logΣ1Σ2+Tr(Σ21Σ1)+(μ1μ2)T(Σ2)1(μ1μ2)+d)
证明:
d维高斯分布:
N ( x ∣ u , Σ ) = 1 ( 2 π ) n / 2 ∣ Σ ∣ 1 / 2 exp ⁡ { − 1 2 ( x − u ) T Σ − 1 ( x − u ) } N(x|u,\Sigma ) = {1 \over { { {(2\pi )}^{n/2}}{ {\left| \Sigma \right|}^{1/2}}}}\exp \{ - {1 \over 2}{(x - u)^T}{\Sigma ^{ - 1}}(x - u)\} N(xu,Σ)=(2π)n/2Σ1/21exp{ 21(x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值