遥感论文研究1

本文探讨了一种基于均值漂移算法的高分辨率影像分割技术。该方法通过引入多尺度分割和核函数,实现了影像的有效分割。文章对比了该算法与商业软件ecognition的多分辨率分割算法在计算效率和分割效果上的表现。

《高分辨率影像多尺度均值漂移分割算法研究》  

1、多尺度分割,将影像分割成不同尺度下的小的区域,也被称之为特征基元,从而通过特征基元进行具体分析,本文重点是通过尺度分割得到特征基元的过程,所分析的主要目标是区域生长和合并方法中的均值漂移分割算法,将分析结果同商业软件ecognition的多分辨率分割算法进行比较,从计算速度和效果方面来看都得到好的结果。

2、均值漂移分割算法,从密度函数估计入手,其中涉及到核函数,核函数应该是在进行密度函数估计中起到一个增大的效果,就是没有核函数的时候,所有的样本对中心点的影响几乎都是一样的,而加上核函数,使得离当前选定点距离较近的点对计算出的平均向量影响较大,离越近的采样点对估计周围的统计特性越有效,因此我们引进核函数的概念,有时候为了区分每个样本点的重要性同时还会增加权重,w(Xi),后面的式子也有提到过。

3、基于均值漂移分割算法所做的影像分割,空间-颜色域,得到了一个多元核,添加了两个特征矢量,重要的是其分割过程,搞清楚输入图像数据、滤波之后的数据、分割影像后的具体数据,最后再进行图像的合并。

4、在这里仍然是用了RGB转LUV空间,并且确认了每一个像素的五维特征空间值,采用聚类算法,将空间和颜色在欧式距离上比较相近的划分为一类,并且是确定了核函数和带宽之后,再进行算法,有点奇怪。

5、利用ecognition软件中的多分辨率分割的方法设定不同的参数区比较均值漂移算法得到的分割图像和商业软件分割的图像,发现聚类算法的分割效果好,即可。


额外知识:核函数以及均值漂移算法的具体理论分析。以下引用其他地方的介绍,感觉写得不错

http://www.cnblogs.com/liqizhou/archive/2012/05/12/2497220.html


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

 1. Meanshift推导

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

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

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

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

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

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

最终的结果如下:

Meanshift推导:

 把基本的meanshift向量加入核函数,核函数的性质在这篇博客介绍:http://www.cnblogs.com/liqizhou/archive/2012/05/11/2495788.html

那么,meanshift算法变形为

                                                         (1)

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

(2)             

令:

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

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

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

 那么(2)就可以表示为

下图分析的构成,如图所以,可以很清晰的表达其构成。

要使得=0,当且仅当=0,可以得出新的圆心坐标:

                          (3) 

 

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

  1. 选择空间中x为圆心,以h为半径为半径,做一个高维球,落在所有球内的所有点xi
  2. 计算,如果<ε(人工设定),推出程序。如果>ε, 则利用(3)计算x,返回1.

 

2.meanshift在图像上的聚类:

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

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

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

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

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

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

(4)

其中:代表空间位置的信息,离远点越近,其值就越大,表示颜色信息,颜色越相似,其值越大。如图左上角图片,按照(4)计算的概率密度如图右上。利用meanshift对其聚类,可得到左下角的图。

 





核函数的介绍:


我们之前讨论的情况都是建立在样例线性可分的假设上,当样例线性不可分时,我们可以尝试使用核函数来将特征映射到高维,这样很可能就可分了。然而,映射后我们也不能100%保证可分。那怎么办呢,我们需要将模型进行调整,以保证在不可分的情况下,也能够尽可能地找出分隔超平面。

看下面两张图:

clip_image001

可以看到一个离群点(可能是噪声)可以造成超平面的移动,间隔缩小,可见以前的模型对噪声非常敏感。再有甚者,如果离群点在另外一个类中,那么这时候就是线性不可分了。

这时候我们应该允许一些点游离并在在模型中违背限制条件(函数间隔大于1)。我们设计得到新的模型如下(也称软间隔):

clip_image002

引入非负参数clip_image004后(称为松弛变量),就允许某些样本点的函数间隔小于1,即在最大间隔区间里面,或者函数间隔是负数,即样本点在对方的区域中。而放松限制条件后,我们需要重新调整目标函数,以对离群点进行处罚,目标函数后面加上的clip_image006就表示离群点越多,目标函数值越大,而我们要求的是尽可能小的目标函数值。这里的C是离群点的权重,C越大表明离群点对目标函数影响越大,也就是越不希望看到离群点。我们看到,目标函数控制了离群点的数目和程度,使大部分样本点仍然遵守限制条件。

模型修改后,拉格朗日公式也要修改如下:

clip_image008

这里的clip_image010clip_image012都是拉格朗日乘子,回想我们在拉格朗日对偶中提到的求法,先写出拉格朗日公式(如上),然后将其看作是变量w和b的函数,分别对其求偏导,得到w和b的表达式。然后代入公式中,求带入后公式的极大值。整个推导过程类似以前的模型,这里只写出最后结果如下:

clip_image013

此时,我们发现没有了参数clip_image004[1],与之前模型唯一不同在于clip_image010[1]又多了clip_image015的限制条件。需要提醒的是,b的求值公式也发生了改变,改变结果在SMO算法里面介绍。先看看KKT条件的变化:

clip_image016

第一个式子表明在两条间隔线外的样本点前面的系数为0,离群样本点前面的系数为C,而支持向量(也就是在超平面两边的最大间隔线上)的样本点前面系数在(0,C)上。通过KKT条件可知,某些在最大间隔线上的样本点也不是支持向量,相反也可能是离群点。

10 坐标上升法(Coordinate ascent)

在最后讨论clip_image018的求解之前,我们先看看坐标上升法的基本原理。假设要求解下面的优化问题:

clip_image019

这里W是clip_image021向量的函数。之前我们在回归中提到过两种求最优解的方法,一种是梯度下降法,另外一种是牛顿法。现在我们再讲一种方法称为坐标上升法(求解最小值问题时,称作坐标下降法,原理一样)。

方法过程:

clip_image022

最里面语句的意思是固定除clip_image010[2]之外的所有clip_image024,这时W可看作只是关于clip_image010[3]的函数,那么直接对clip_image010[4]求导优化即可。这里我们进行最大化求导的顺序i是从1到m,可以通过更改优化顺序来使W能够更快地增加并收敛。如果W在内循环中能够很快地达到最优,那么坐标上升法会是一个很高效的求极值方法。

下面通过一张图来展示:

clip_image025

椭圆代表了二次函数的各个等高线,变量数为2,起始坐标是(2,-2)。图中的直线式迭代优化的路径,可以看到每一步都会向最优值前进一步,而且前进路线是平行于坐标轴的,因为每一步只优化一个变量。

 

3.2 核函数(Kernels)

定义 3.1 (核或正定核)设是中的一个子集,称定义在上的函数是核函数,如果存在一个从到Hilbert空间的映射

(1.1)

使得对任意的,

都成立。其中表示Hilbert空间中的内积。

 

考虑我们最初在“线性回归”中提出的问题,特征是房子的面积x,这里的x是实数,结果y是房子的价格。假设我们从样本点的分布中看到x和y符合3次曲线,那么我们希望使用x的三次多项式来逼近这些样本点。那么首先需要将特征x扩展到三维clip_image002[6],然后寻找特征和结果之间的模型。我们将这种特征变换称作特征映射(feature mapping)。映射函数称作clip_image004[10],在这个例子中

clip_image006[6]

我们希望将得到的特征映射后的特征应用于SVM分类,而不是最初的特征。这样,我们需要将前面clip_image008[4]公式中的内积从clip_image010[16],映射到clip_image012[42]

至于为什么需要映射后的特征而不是最初的特征来参与计算,上面提到的(为了更好地拟合)是其中一个原因,另外的一个重要原因是样例可能存在线性不可分的情况,而将特征映射到高维空间后,往往就可分了。(在《数据挖掘导论》Pang-Ning Tan等人著的《支持向量机》那一章有个很好的例子说明)

将核函数形式化定义,如果原始特征内积是clip_image014[4],映射后为clip_image016[6],那么定义核函数(Kernel)为

clip_image018[8]

到这里,我们可以得出结论,如果要实现该节开头的效果,只需先计算clip_image020[10],然后计算clip_image022[10]即可,然而这种计算方式是非常低效的。比如最初的特征是n维的,我们将其映射到clip_image024[6]维,然后再计算,这样需要clip_image026[6]的时间。那么我们能不能想办法减少计算时间呢?

先看一个例子,假设x和z都是n维的,

clip_image028[4]

展开后,得

clip_image030[4]

这个时候发现我们可以只计算原始特征x和z内积的平方(时间复杂度是O(n)),就等价与计算映射后特征的内积。也就是说我们不需要花clip_image026[7]时间了。

现在看一下映射函数(n=3时),根据上面的公式,得到

clip_image031[4]

也就是说核函数clip_image033[4]只能在选择这样的clip_image004[11]作为映射函数时才能够等价于映射后特征的内积。

再看一个核函数

clip_image034[4]

对应的映射函数(n=3时)是

clip_image035[4]

更一般地,核函数clip_image037[4]对应的映射后特征维度为clip_image039[4]。(求解方法参见http://zhidao.baidu.com/question/16706714.html)。

由于计算的是内积,我们可以想到IR中的余弦相似度,如果x和z向量夹角越小,那么核函数值越大,反之,越小。因此,核函数值是clip_image020[11]clip_image041[4]的相似度。

再看另外一个核函数

clip_image042[6]

这时,如果x和z很相近(clip_image044[6]),那么核函数值为1,如果x和z相差很大(clip_image046[6]),那么核函数值约等于0。由于这个函数类似于高斯分布,因此称为高斯核函数,也叫做径向基函数(Radial Basis Function 简称RBF)。它能够把原始特征映射到无穷维。

既然高斯核函数能够比较x和z的相似度,并映射到0到1,回想logistic回归,sigmoid函数可以,因此还有sigmoid核函数等等。

下面有张图说明在低维线性不可分时,映射到高维后就可分了,使用高斯核函数。

clip_image048[6]

来自Eric Xing的slides

注意,使用核函数后,怎么分类新来的样本呢?线性的时候我们使用SVM学习出w和b,新来样本x的话,我们使用clip_image050[8]来判断,如果值大于等于1,那么是正类,小于等于是负类。在两者之间,认为无法确定。如果使用了核函数后,clip_image050[9]就变成了clip_image052[6],是否先要找到clip_image054[8],然后再预测?答案肯定不是了,找clip_image054[9]很麻烦,回想我们之前说过的

clip_image055[4]

只需将clip_image057[4]替换成clip_image059[6],然后值的判断同上。

 核函数有效性判定

问题:给定一个函数K,我们能否使用K来替代计算clip_image022[11],也就说,是否能够找出一个clip_image061[12],使得对于所有的x和z,都有clip_image018[9]

比如给出了clip_image063[8],是否能够认为K是一个有效的核函数。

下面来解决这个问题,给定m个训练样本clip_image065[6],每一个clip_image067[8]对应一个特征向量。那么,我们可以将任意两个clip_image067[9]clip_image069[6]带入K中,计算得到clip_image071[6]。I可以从1到m,j可以从1到m,这样可以计算出m*m的核函数矩阵(Kernel Matrix)。为了方便,我们将核函数矩阵和clip_image073[10]都使用K来表示。

如果假设K是有效地核函数,那么根据核函数定义

clip_image075[6]

可见,矩阵K应该是个对称阵。让我们得出一个更强的结论,首先使用符号clip_image077[6]来表示映射函数clip_image020[12]的第k维属性值。那么对于任意向量z,得

clip_image078[6]

最后一步和前面计算clip_image063[9]时类似。从这个公式我们可以看出,如果K是个有效的核函数(即clip_image073[11]clip_image080[6]等价),那么,在训练集上得到的核函数矩阵K应该是半正定的(clip_image082[6]

这样我们得到一个核函数的必要条件:

K是有效的核函数 ==> 核函数矩阵K是对称半正定的。

可幸的是,这个条件也是充分的,由Mercer定理来表达。

Mercer定理:

如果函数K是clip_image084[26]上的映射(也就是从两个n维向量映射到实数域)。那么如果K是一个有效核函数(也称为Mercer核函数),那么当且仅当对于训练样例clip_image065[7],其相应的核函数矩阵是对称半正定的。

Mercer定理表明为了证明K是有效的核函数,那么我们不用去寻找clip_image061[13],而只需要在训练集上求出各个clip_image086[6],然后判断矩阵K是否是半正定(使用左上角主子式大于等于零等方法)即可。

许多其他的教科书在Mercer定理证明过程中使用了clip_image088[16]范数和再生希尔伯特空间等概念,但在特征是n维的情况下,这里给出的证明是等价的。

核函数不仅仅用在SVM上,但凡在一个模型后算法中出现了clip_image090[4],我们都可以常使用clip_image073[12]去替换,这可能能够很好地改善我们的算法。



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值