使用svm类算法之前对优化问题的一些了解

众所周知,svm类分类算法的核心思想是通过得到一个或多个超平面来将线性可分或不可分的数据来分开,而求解超平面的过程可以转换成数学上优化问题的求解,大致形式为:

minimize f0(x)

subject to fi(x)<=  bi i=1,2,3,4.。。。。

x被称为优化变量,函数f0(x)为目标函数,fi(x)为约束函数,b为约束上限,如果在所有满足约束的向量中x对应的目标函数最小,即对于任意的满足约束f1(z)<= b1......fm(z)<=bm的向量z,有f0(z)>= f0(x),则称这个x为此优化问题的最优解

如若约束函数和目标函数都是线性函数,也就是f(ax+by)=af(x)+bf(y),则次优化问题被称为线性规划,否则被称为非线性规划,svm类泛主要应用到的是线性规划和非线性规划这两种形式,线性规划形式如下所示:

minimize cTx

subject to aTix<= bi  (i为下标T上标表转置)

虽然python的cvxopt库下面的solvers模块具有能够解决优化问题的函数存在,但是如果想要深入对算法本身做研究,对优化问题的求解也要深化研究力度,作为一个简单例子的讲解,Chebyshev逼近问题

minimize maxi=1.。。。。。k|aTix-bi|

其中,优化变量x∈Rn,a1,a2。。。。。ak∈Rn。b1,b2。。。。。bk∈R为问题的参数,在参数取值确定之后即得到一个具体问题,求解上述逼近问题等价于求解如下线性规划问题

minimize t

subject to  aTix-t<= bi, i=1,2,3,。。。。k

-aTix-t<= -bi, i=1,2,3,。。。。k,其中优化变量x∈Rn,t∈R

使用SVM分类算法时,比较基础的要求是数据之间最好不能有相交(后续也有针对这一点对算法做改进的),通过超平面将两个不相交的数据集(凸集)分离开来的思想被称为超平面分离定理

你可能感兴趣的:(支持向量机,算法,机器学习)