Mean-shift算法的直观理解
0 前言
暑假的时候参加移动计算竞赛打了下酱油,接触到了Mean-shift算法,用于做目标跟踪。在那段时间也在网上查阅了不少关于这个算法的资料,可是总感觉它们都比较强调这个算法的数学细节。今天在这里,我想略去大部分的数学细节,只说一下自己对于这个算法的直观理解。我的观点可能有错误,但应该能帮大家更容易地理解这个算法。
    本文分为两个部分,分别介绍Mean-shift的原理以及其应用。其中,后面的部分会慢慢补上来。
最后修改时间:2015/01/09
Yuliang Zou
1 Mean-shift算法的原理
    先从估计开始讲,假设我们想得到定义在(x,y)二维连续空间上的概率密度,可以由(xi,yi)(i=1,2,...,n)等采样点上的观测值来进行估计。其中,这些采样点对估计点的影响可能会不同(即,权重不同)。其中,我们可以用核函数来决定不同采样点的权重。例如,可以通过计算采样点与估计点的高斯距离(即使用高斯核函数)来决定权重。这种方法就叫做核函数估计,是无参估计的一种。
   对于很多问题来说,我们想求概率密度的最大值作为最优解。那么我们可以对上面估计得到的概率密度求导,从而得到答案。然而,这样的话,就有两个步骤了:估计概率密度、对估计值求导。既然我们可以估计概率密度,那么能不能直接估计概率密度的导数呢?答案自然是肯定的,K.Fukunaga在1975年提出的Mean-shift方法就解决了这个问题。所以,Mean-shift算法其实就是一种比较巧妙的数值求解方法。
    为了表述这个算法,下面先给出一些定义:
Profile Function
称k为K的profile function。
Shadow Function

称H为K的shadow function,其中c为常数。(注:这里的H和K与上面的定义一致)
Mean-shift Vector
这就是Mean-shift vector。
Density Estimation
如果把w(a)视为在a点的观测值,而H视为一种核函数,那么C就可以视为前文所述的概率密度估计值。
有了以上的定义,我们就可以表述Mean-shift算法了:
如果H是K的shadow,则有
这样,我们就可以通过计算Mean-shift vector,来得到概率密度的梯度值的估计。梯度是密度下降的方向,那负梯度则是密度上升的方向。用Mean-shift vector对x进行更新,则可以求解到概率密度的(局部)极大值。这样来看,其实这个方法就类似于优化中最常见的梯度下降法,只不过这里是沿着负梯度的方法上升而已。所以,我们可以说Mean-shift就是一种数值优化的求解方法。
2 应用
略,稍后慢慢补上。
3 参考
[1]Fukunaga K, Hostetler L. The estimation of the gradient of a density function, with applications in pattern recognition[J]. Information Theory, IEEE Transactions on, 1975, 21(1): 32-40.(最初的那篇论文)
[2]Comaniciu D, Ramesh V, Meer P. Real-time tracking of non-rigid objects using mean shift[C]//Computer Vision and Pattern Recognition, 2000. Proceedings. IEEE Conference on. IEEE, 2000, 2: 142-149.(关于mean-shift我读的第一篇论文,不过现存的版本排版好像都出了问题,非常不利于观看。Comaniciu也是将这个算法在目标跟踪领域中发扬光大的,此文貌似是当年的best paper。)
[3]Comaniciu D, Meer P. Mean shift: A robust approach toward feature space analysis[J]. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 2002, 24(5): 603-619.(这篇文章的排版就好多了,里面还介绍了一些应用。)
[4]Collins R T. Mean-shift blob tracking through scale space[C]//Computer Vision and Pattern Recognition, 2003. Proceedings. 2003 IEEE Computer Society Conference on. IEEE, 2003, 2: II-234-40 vol. 2.(个人感觉比上面几篇讲得容易理解一点,还加入了尺度空间的思想)
[5]http://blog.csdn.net/jinshengtao/article/details/30258833
[6]http://blog.csdn.net/zouxy09/article/details/17913745(里面的图示值得一看)
[7]http://blog.csdn.net/carson2005/article/details/7337432
[8]Mean-shift算法概述

Mean-shift算法的直观理解相关推荐

  1. 反向传播算法_9.3 反向传播算法的直观理解 Backpropagation Intuition

    在上一节中,我们介绍了反向传播算法,对很多人来说,当第一次看到这种算法时,第一印象通常是,这个算法需要那么多繁杂的步骤,简直是太复杂了,实在不知道这些步骤,到底应该如何合在一起使用.就好像一个黑箱,里 ...

  2. Dijkstra、RRT两类路径规划算法原理的直观理解

    在路径规划的算法里,有两大类算法是很常用的,一类是基于搜索和图的Dijkstra算法,还有一类是基于采样的RRT算法.本文对其算法原理进行简单的理解,力图生动的展示枯燥的数学公式背后精彩的思想. Di ...

  3. BP反向传播算法的思考和直观理解 -卷积小白的随机世界

    https://www.toutiao.com/a6690831921246634504/ 2019-05-14 18:47:24 本篇文章,本来计划再进一步完善对CNN卷积神经网络的理解,但在对卷积 ...

  4. 梯度的直观理解_BP反向传播算法的思考和直观理解 -卷积小白的随机世界

    本篇文章,本来计划再进一步完善对CNN卷积神经网络的理解,但在对卷积层反向传播算法的理解中,越发觉得之前对于BP反向传播算法的理解是不到位的.小白近日觉得,对于深度神经网络,"反向传播&qu ...

  5. EM算法从直观到数学理解

    0x00 引言 EM算法是什么?什么是E(Epectation)?什么是M(Maximization)?什么又是公式里面出现的Q函数?这些公式都是怎么推导的?Nature抛硬币的那个图怎么就看不懂嘞? ...

  6. prim算法直观理解与证明

    今天刚学完最小生成树,乘着知识还在脑袋里热乎着,便写下来记录下,也便日后复习回忆.prim算法是用来求解最小生成树的. 总的来说算法步骤就是: 1.将距离集合(即最小生成树)的距离最近的点加入到集合中 ...

  7. 反向传播的直观理解 (以及为什么反向传播是一种快速的算法)

    解释:公式 46 其实就是微分的定义公式,"W + εej  "代表对于由 j 个 weight 构成的单位向量 W,在其他权重都不变的情况下,使得 Wj 微小的改变 ε(W为单位 ...

  8. 说点人话的强化学习:TD算法解释,时间差分算法详解,直观理解,一定能看懂的TD算法解释

    说点人话的强化学习,想让强化学习不要那么困难 TD算法直观理解: 在强化学习中,我们一定会遇到TD算法,基本一定会看到纽约到亚特兰大开车的这个例子.但是数据是如何更新的呢?如何理解TD算法进行数据更新 ...

  9. SVM支持向量机【直观理解】

    转载文章:https://baijiahao.baidu.com/s?id=1607469282626953830&wfr=spider&for=pc 如果你曾经使用机器学习解决分类问 ...

最新文章

  1. 1-jQuery - AJAX load() 方法【基础篇】
  2. vee-validate校验demo
  3. Oracle 原理 : 动态性能视图和数据字典
  4. leetcode 834. Sum of Distances in Tree | 834. 树中距离之和(树形DP)
  5. office 2007 oracle 9,office2007win10版下载
  6. Python3.6 IDLE 使用 multiprocessing.Process 不显示执行函数的打印
  7. OpenCV笔记(基于Python)
  8. 事业编待遇怎么样?考入事业编的分享一下吧?
  9. 模拟登录(一次自动调转)
  10. Linux例行性工作排程 (crontab)
  11. 高速公路车路协同网络需求研究
  12. MongoDB数据库(使用、基本操作)
  13. 教室录播系统方案_校园录播教室搭建方案?
  14. 副词记忆(II):ly后缀的常用词
  15. 批量修改MP3文件信息
  16. 基于MATLAB的指纹识别系统设计
  17. 网站在多IE版本兼容性测试工具IETester的使用方法
  18. uk码对照表_尺码UK5 对应的中国尺码是多少?
  19. Unity下如何实现RTMP或RTSP流播放和录制
  20. 报警后签了和解协议,还能反悔吗

热门文章

  1. 计算机二级word安装包,是否有word 2010安装包,计算机二级需要,怎么安装不了呢?...
  2. 不收费的Word软件推荐
  3. 杂七杂八(9): IDEA初始化配置 插件收集
  4. Java 学习API(一)
  5. 基础30讲 第11讲 多元函数微分学
  6. 完犊子了,微软已禁止俄罗斯人下载 Windows
  7. 北邮智能车仿真培训(八)—— 两轮摄像头平衡车
  8. 关于幂级数求和是否弃用首项的理解
  9. 小程序基础版本库与微信版本关系
  10. pytecplot做图命令总结