基本思想是对于一个分类有一个超球,m个分类就有m个超球,求出最优的m个超球就可以了,待分类的样本与m个超球的中心比较,如果在其中一个超球里面,则属于这个超球队分类,当然还有重叠的部分,具体下面再讨论。
先看一个表达式:
第一个表达式就是球的方程。 其中表示样本点,上标m表示第m个种类,可以暂且不管m,
表示第m个种类的超球中心,
表示第m个种类的超球半径,
表示松弛因子,对一些非常偏离球中心的点很敏感,所以要允许一些点在超球的外面,
就是起这个作用的,当然
要大于等于0。我们的目标是要尽量使超球小和松弛变量的和最小,因为这样才是最优的分类,因此目标函数是:
是某个常数,起控制对错分样本惩罚的程度的作用,实现在球的大小和错分样本之间的折中。这样,目标就是最小化min
。以后的问题跟求解标准SVM没有什么区别,都是转化为对偶问题。具体如下:
先设它的Lagrange函数为:
因为Lagrange因子和
都大于等于0,所以max
=
,所以原问题min
通过转化变为min(
,
,
)max(
,
)
,这里要注意的是min和max括号里面表示的是对哪个参数求最大最小,min和max是对不同的参数,min是对
,
,
这三个参数,而max是对
,
这两个参数,再者只要满足kkt条件,max和min可以互换,即max和min谁先谁后求得到结果是一样的。所以原问题变为:max(
,
)min(
,
,
)
,先求
min(,
,
)
,对
求
,
,
三个参数的导并令他们为0:
原文中还有一个等式没给出:
把上面三个等式代入原式,经过计算化简,我这里写了一些关键的化简步骤:
得到最后的对偶问题:
求出超球后,便是分类了,分类函数就是计算待分类的样本点到各个超球的距离:
当fm最小的那个超球即为这个样本的分类。这里也有一个不太准确的地方,如果两个超球有重叠,上面的判断函数就不一定准确。吴强等人提出了子超球的概念,目的为解决超球重叠区域分类不准确的问题。大概的思想是在重叠区域再训练两个子超球,以此来分类重叠区域的样本。看图:
子超球就是把U1和U2重叠的区域再训练两个超球,用来判断重叠区域的样本,怎么训练呢?以U1为例,在重叠区域有两种样本,一种是经过判别函数,把原本是属于U1的点判给U2了,称这种点为同类错误样本点,一种是经过判别函数,把原本不属于U1的点判给U1了,称这种点为异类错误样本点,然后再使用上面的方法对这两种类别的点(同类错误样本点和异类错误样本点)进行训练,得到子超球。以后处在重叠区域的点都需要经过子超球来判断,而不仅仅是经过母超球的决策函数来判断了。具体请参考原论文。
参考:
《用球结构的支持向量机解决多分类问题》 朱美琳等
《球结构支持向量机的改进算法及仿真研究》 吴强等