meanshift算法 java_Meanshift,聚类算法

记得刚读研究生的时候,学习的第一个算法就是meanshift算法,所以一直记忆犹新,今天和大家分享一下Meanshift算法,如有错误,请在线交流。

Mean Shift算法,一般是指一个迭代的步骤,即先算出当前点的偏移均值,移动该点到其偏移均值,然后以此为新的起始点,继续移动,直到满足一定的条件结束.

1. Meanshift推导

给定d维空间Rd的n个样本点 ,i=1,…,n,在空间中任选一点x,那么Mean Shift向量的基本形式定义为:

7bf64e2f648179bdddc3d015961358db.png

Sk是一个半径为h的高维球区域,满足以下关系的y点的集合,

bdc5d509e8dd9e2bb8ba77eb8554f9b4.png

k表示在这n个样本点xi中,有k个点落入Sk区域中.

以上是官方的说法,即书上的定义,我的理解就是,在d维空间中,任选一个点,然后以这个点为圆心,h为半径做一个高维球,因为有d维,d可能大于2,所以是高维球。落在这个球内的所有点和圆心都会产生一个向量,向量是以圆心为起点落在球内的点位终点。然后把这些向量都相加。相加的结果就是Meanshift向量。

如图所以。其中黄色箭头就是Mh(meanshift向量)。

27e0c3ec9999c9d44d0ab15658f5aa82.png

再以meanshift向量的终点为圆心,再做一个高维的球。如下图所以,重复以上步骤,就可得到一个meanshift向量。如此重复下去,meanshift算法可以收敛到概率密度最大得地方。也就是最稠密的地方。

a46c2a74179b9c95dbe6093efcd145c3.png

最终的结果如下:

c64514b91fce1452f07aa6def8b1e3fb.png

Meanshift推导:

那么,meanshift算法变形为

eb4dae39d4d060829678770eb8d5d66f.png

(1)

解释一下K()核函数,h为半径,Ck,d/nhd为单位密度,要使得上式f得到最大,最容易想到的就是对上式进行求导,的确meanshift就是对上式进行求导.

51da6694196a418c3d4e1e6e65c5b080.png

(2)

令:

ba42fd43ec897492b95683f729647833.png

K(x)叫做g(x)的影子核,名字听上去听深奥的,也就是求导的负方向,那么上式可以表示

b6b3691f42134240da8565331be0a42a.png

对于上式,如果才用高斯核,那么,第一项就等于fh,k

02b00d71c2f4b639487b6210a67a1239.png

第二项就相当于一个meanshift向量的式子:

8fd3eead5c5db1d88dfa73d88d05aa2b.png

那么(2)就可以表示为

991e755f0a3a688b808478e136f05abc.png

下图分析

9baf7ec2723f16c3276a7410435b9942.png的构成,如图所以,可以很清晰的表达其构成。

4be80cdbd11949ce7ecb900684b17b10.png

要使得

9baf7ec2723f16c3276a7410435b9942.png=0,当且仅当

962ebae2b4c3532109b47ed8d36d81e4.png=0,可以得出新的圆心坐标:

4cf85224a2c07a10b78298be88423281.png

(3)

上面介绍了meanshift的流程,但是比较散,下面具体给出它的算法流程。

选择空间中x为圆心,以h为半径为半径,做一个高维球,落在所有球内的所有点xi

计算

962ebae2b4c3532109b47ed8d36d81e4.png,如果

962ebae2b4c3532109b47ed8d36d81e4.png

962ebae2b4c3532109b47ed8d36d81e4.png>ε, 则利用(3)计算x,返回1.

2.meanshift在图像上的聚类:

真正大牛的人就能创造算法,例如像meanshift,em这个样的算法,这样的创新才能推动整个学科的发展。还有的人就是把算法运用的实际的运用中,推动整个工业进步,也就是技术的进步。下面介绍meashift算法怎样运用到图像上的聚类核跟踪。

一般一个图像就是个矩阵,像素点均匀的分布在图像上,就没有点的稠密性。所以怎样来定义点的概率密度,这才是最关键的。

如果我们就算点x的概率密度,采用的方法如下:以x为圆心,以h为半径。落在球内的点位xi定义二个模式规则。

(1)x像素点的颜色与xi像素点颜色越相近,我们定义概率密度越高。

(2)离x的位置越近的像素点xi,定义概率密度越高。

所以定义总的概率密度,是二个规则概率密度乘积的结果,可以(4)表示

84743324dd107721fbdd0795a3c84fb9.png

(4)

其中:

02ba17479c430245d81d8d9d7d19ccb4.png代表空间位置的信息,离远点越近,其值就越大,

fdef8c064692d33d8543ee7d2fa6af21.png表示颜色信息,颜色越相似,其值越大。如图左上角图片,按照(4)计算的概率密度如图右上。利用meanshift对其聚类,可得到左下角的图。

324989b72d149661bfab0d6d5021e6d3.png

50ee481ae1398308e6b50c18e99054c5.png

4427d53a86b0313844116d76d3f744f2.png

7099669ed33c1025e08289ccf8275481.png

如有问题,可在线讨论。作者:BIGBIGBOAT/Liqizhou

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 数据分析 电信_实例 | 教你用Python写一个电信客户流失预测模型

原标题:实例 | 教你用Python写一个电信客户流失预测模型CDA数据分析师 出品 作者:真达、Mika 数据:真达 【导读】 今天教大家如何用Python写一个电信用户流失预测模型。公众号后台,回复关键字“电信”获取完整数据。 之前我们用Py…

人机融合智能与深度态势感知

来源:人机与认知实验室【“常无欲以观其妙,常有欲以观其徼。”,意思是身处物外可以以旁观者的身份来看待事物,身处事内则要考虑各种极限。】0 引言伴随着深度学习[1]、强化学习[2]等新一代人工智能技术的发展,智能化已…

java大数模板_java大数模板

这几天做了几道用大数的题,发现java来做大数运算十分方便。对acmer来说是十分实用的1.valueOf(parament); 将参数转换为制定的类型比如 int a3;BigInteger bBigInteger.valueOf(a);则b3;String s”12345”;BigInteger cBigInteger.valueOf(s);则c12345;2…

20162317 2016-2017-2 《程序设计与数据结构》第8周学习总结

20162317 2016-2017-2 《程序设计与数据结构》第8周学习总结 教材学习内容总结 1.异常的定义(中断正常指令的事件) 2.异常的特点(异常是对象) 3.异常的分类(CheckedExcception 和 UncheckedException) 4.异…

sql return的用法_【实用技能】Seacms 8.7版本SQL注入分析

有些小伙伴刚刚接触SQL编程,对SQL注入表示不太了解。其实在Web攻防中,SQL注入就是一个技能繁杂项,为了帮助大家能更好的理解和掌握,今天小编将要跟大家分享一下关于Seacms 8.7版本SQL注入分析的内容,一定要认真学习哦。…

国科大UCAS胡包钢教授《信息论与机器学习》课程第二讲:信息论基础一

来源:专知信息论中最为基本的概念就是香农熵(第8页),由此可以导出信息论中其它各种定义,以至我们常规应用的其它经验式定义(以后会提到)。学习信息论基础知识时要避免仅是概念与定义的简单记忆&…

通讯录分组名称大全简单_公司起名取名:建筑公司名称大全简单大气

阅读本文前,请您先点击上面的“蓝色字体”再点击关注,这样您就可以继续免费收取到文章了,每天都有分享,完全是免费订阅,请放心关注。时代在变迁,人们的生活节奏在加快,各类楼盘高低错落&#xf…

美国发布《量子网络战略愿景》

来源:国防科技要闻背景探索如何建立量子网络将促进新兴技术的发展,从而加速当前互联网的发展,提高通信的安全性,并大幅推动计算技术的进步。美国将利用其在量子网络领域的领先地位,加速在国家和金融安全、病人隐私、药…

Jürgen Schmidhuber眼中的深度学习十年,以及下一个十年展望

大数据文摘出品来源:Medium作者:Jrgen Schmidhuber编译:张秋玥、马莉2020年是充满科幻的一年,曾经我们畅想飞行汽车、智能洗碗机器人以及能自动写代码的程序,然而这一切都没有发生。2020迎接我们的是澳洲大火、新冠病毒…

docker pidfile_Zabbix5监控Docker

zabbix_agent配置Zabbix 监控Docker 时 agent 需要使用 zabbix_agent2,而不是zabbix_agent主要模式时配置如下:[rootlocalhost#] cat /etc/zabbix/zabbix_agent2.conf |grep -v ^#|grep -v ^$ PidFile/var/run/zabbix/zabbix_agent2.pidLogFile/var/log…

Gartner:2020 年 AI 平台魔力象限:意外多多

来源:云头条众多企业决策者向市场研究公司Gartner寻求企业软件堆栈方面的建议。魔力象限报告是Gartner发布的最可信、最真实、最权威的研究报告之一。由于它影响企业的采购决策,因此诸多供应商竭力想在报告中占有一席之地。Gartner最近发布了数据科学和机…

CentOS6.9编译安装LNMP环境

CentOS6.9编译安装LNMP环境 今天尝试一下用编译的方式来搭建lnmp运行环境。所有软件都采用当前最新版本,除了CentOS。这是由于目前企业大多数应该都还在使用CentOS6的缘故,并且CentOS7目前还在迭代中。虽说不会有大的改动,但也算不上完全稳定…

生物,AI,心理:目前的大脑/认知/意识/AGI/DRL模型

来源:人工智能前沿讲习一 基于生物和经验的模型首先是 2012 年的 Spaun,基于生物基础(脑图谱),类生物神经元(尖峰放电 SNN)。在训练后可完成多种识别和生成和反应任务。map the visual hierar…

java 使用nullable_Java Stream ofNullable(T)用法及代码示例

如果此流不为null,则ofNullable(T)方法将返回包含单个元素的顺序Stream,否则该方法将返回空Stream。它有助于处理空流和NullPointerException。用法:static Stream ofNullable(T t)参数:此方法接受单个参数t,该参数t是要返回其Str…

python数据标注工具_数据标注工具大全汇总,有了这些工具再也不用自己开发了...

数据标注工具大全汇总,有了这些工具再也不用自己开发了。 做数据标注三年了,总是遇到各种各样的需求,总是想找一款最高效,最快速,最好用的标注工具,最重要的是免费,经过三年的收集,大…

决策智能(Decision Intelligence)二三事

来源:https://www.zhihu.com/people/wang-jing-28-89-94什么是决策智能?大家看到这四个字,大多数人心里的发问会是”什么是决策智能“呢?别说你没想,别骗我了。那么什么是决策智能呢?以下是维基的定义&…

python基础——面向对象的程序设计

python基础——面向对象的程序设计 1 什么是面向对象的程序设计 面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。 优点是:极大的降低了程序的复杂…

移动端 h5如何生成快捷方式_削微整理了几个经常在H5移动端开发遇到的东西

不用说我也知道,此类文章太多太多了,常见的譬如:viewport、强制浏览器全屏、IOS的Web APP模式、可点击元素出现阴影(这个我觉得真没必要去掉,用户点击是需要反馈的,而这个背景色刚刚好提供了一种反馈&#…

SCI至上只是结果,而不是原因

来源:赵斌科学网博客我从来不认为SCI一无是处,相反,我们大多数科研人员应该感谢它。中国科研评价体系中的的问题,不是破四唯,破SCI至上,而是打破特权、消除歧视。近日,教育部和科技部联合发文&a…