SVM初学者要掌握的基础知识

一、结构风险最小和VC维理论的解释

  “支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上”

  结构风险最小化定义:统计学习理论提出了一种新的策略,即把函数集构造为一个函数子集序列,使各个子集按照VC维的大小排列;在每个子集中寻找最小经验风险,在子集间折衷考虑经验风险和置信范围,取得实际风险的最小。这种思想称作结构风险最小化(Structural Risk Minimization),即SRM准则。

  结构化风险

结构化风险 = 经验风险 + 置信风险

经验风险 =  分类器在给定样本上的误差

置信风险 = 分类器在未知文本上分类的结果的误差

  置信风险因素:

样本数量,给定的样本数量越大,学习结果越有可能正确,此时置信风险越小; 
分类函数的VC维,显然VC维越大,推广能力越差,置信风险会变大。
提高样本数量,降低VC维,降低置信风险。 

以前机器学习的目标是降低经验风险,要降低经验风险,就要提高分类函数的复杂度,导致VC维很高,VC维高,置信风险就高,所以,结构风险也高。---- 这是SVM比其他机器学习具有优势的地方。

  机器学习导论 的解释 :假定我们有一个数据集,包含N个点。这N个点可以用 种方法标记为正例和负例(属于和不属于某个类)。因此,N个数据点可以定义 种不同的学习问题。假如( ,)逗号前的是属于,逗号后是不属于。比如1个点,可以分为( a , )( , a );2个点可以分为( ab , )( , ab )  ( a , b ) ( b , a )四种;依次类推...如果对于这些问题中的任何一个,我们都能够找到一个假设h∈ 将正例和负例分开,那么我们就称 散列(shatter )N个点。也就是说,可以用N个点定义的任何的学习问题都能够用一个从中抽取的假设无误差地学习。可以被散列的点的最大数量称为 的VC 维(Vapnik 和Cortes ),记为VC( ),它度量假设类 的学习能力(capactiy )。

 

下面是理解VC维的一个例子:

(1)平面内只能找到3个点能被直线打散:直线只能把一堆点分成两堆,对于3个点,要分成两堆加上顺序就有23种。其中A、B、C表示3个点,+1,-1表示堆的类别, {A→-1,BC→+1}表示A分在标号为-1的那堆,B和C分在标号为+1的那堆。这就是一种分发。以此类推。则有如下8种分法:
{A→-1,BC→+1},{A→+1,BC→-1}
{B→-1,AC→+1},{B→+1,BC→-1}
{C→-1,AB→+1},{C→+1,BC→-1}
{ABC→-1},{ABC→+1}
(2)找不到4个点。假设有,则应该有24=16分法,但是把四个点分成两堆有:一堆一个点另一对三个点(1,3);两两均分(2,2);一堆四个另一堆没有(0,4)三种情况。对于第一种情况,4个点可分别做一次一个一堆的,加上顺序就有8种:
{A→-1,BCD→+1},{A→+1,BCD→-1}
{B→-1,ACD→+1},{B→+1,ACD→-1}
{C→-1,ABD→+1},{C→+1,ABD→-1}
{D→-1,ABC→+1},{D→+1,ABC→-1};
对于第二种情况有4种:
{AB→-1,CD→+1},{AB→+1,CD→-1}
{AC→-1,BD→+1},{AC→+1,BD→-1}
没有一条直线能使AD在一堆,BC在一堆,因为A、D处在对角线位置,B、C处在对角线位置。(这是我直观在图上找出来的)
对于第三种情况有2种;
{ABCD→-1}
{ABCD→+1}
所以总共加起来只有8+4+2=14种分法,不满足24=16分法,所以平面找不到4个点能被直线打散。

总结:所谓VC维是对函数类的一种度量,可以简单的理解为问题的复杂程度,VC维越高,一个问题就越复杂。个人认为VC维是在N维空间内,函数所能散列(二分)最大点的个数;线性函数所能散列的最大点的个数是N+1,因此N维空间线性函数的VC维是N+1(例如,一维空间VC维是2;二维空间VC维是3,三维空间VC维是4...)。

二、二次规划问题

  而凡是求一个函数的最小值(或最大值)的问题都可以称为寻优问题(也叫作一个规划问题);因为找最大值的问题总可以通过加一个负号变为找最小值的问题,因此讨论的时候都可以针对找最小值的过程来进行。

  二次规划:非线性规划(目标函数或约束条件是非线性)中的一类特殊数学规划问题,在很多方面都有应用,如投资组合、约束最小二乘问题的求解、序列二次规划在非线性优化问题中应用等。在过去的几十年里,二次规划已经成为运筹学、经济数学、管理科学、系统分析和组合优化科学的基本方法。

  如果某非线性规划的目标函数为自变量的二次函数,约束条件全是线性函数,就称这种规划为二次规划。

  二次规划的一般形式可以表示为,如右图式子(1.1):

  其中G是Hessian矩阵,c,x和{ai}都是R中的向量。如果G矩阵是半正定的(即|G|>=0),则我们说(1.1)是一个凸二次规划(q(x)是凸函数),在这种情况下该问题的困难程度类似于线性规划(如果G=0,二次规划问题就变成线性规划问题了)。如果有至少一个向量满足约束并且在可行域有下界,则凸二次规划问题就有一个全局最小值。如果是正定的(即|G|>0),则这类二次规划为严格的凸二次规划(q(x)是严格凸函数),那么全局最小值就是唯一的。如果是一个不定矩阵,则为非凸二次规划,这类二次规划更有挑战性,因为它们有多个平稳点和局部极小值点。根据优化理论,一个点x 成为全局最小值的必要条件是满足 Karush-Kuhn-Tucker(KKT)条件(凸函数中,任何KKT点都是极小值点)。当f(x)是凸函数时,KKT条件也是充分条件。

***凸集:实数 R (或复数 C 上)在向量空间中,如果 S 中任两点的连线内的点都在集合 S 内,集合 S 称为凸集。若X,Y∈S,任意 a(0≦a≦1)使得aX+(1-a)Y属于向量空间S<=>S为凸集。aX+(1-a)Y可理解成X、Y间的连线。相应 凸函数是一个定义在某个向量空间的凸子集C(区间)上的实值函数f,而且对于凸子集C中任意两个向量X1,X2,则有。如果f的二阶导数≥0,f为凸函数,若>0为严格凸函数。

****方阵的行列式|A|,若等于0,称矩阵A为奇异矩阵;若不等于0,称矩阵A为非奇异矩阵
如果A(n×n)为奇异矩阵(singular matrix)<=> A的秩Rank(A)<n.
如果A(n×n)为非奇异矩阵(nonsingular matrix)<=> A满秩,Rank(A)=n. 
一个方阵非奇异当且仅当它的行列式不为零。
一个方阵非奇异当且仅当它代表的线性变换是个自同构。
一个矩阵半正定当且仅当它的每个特征值大于或等于零。
一个矩阵正定当且仅当它的每个特征值都大于零。

三、最优化与KKT条件

  卡罗需-库恩-塔克条件(英文原名: Karush-Kuhn-Tucker Conditions常见别名: KKT条件,KKTr最优化条件, Kuhn-Tucker条件)是在满足一些有约束的条件下,一个非线性规划(Nonlinear Programming)问题能有最优化解法的一个必要和充分条件。这是一个广义化拉格朗日乘数的成果。

  必要条件:所求的解,1.必须满足所有约束条件;二.目标函数是所有约束条件的线性组合。

 一般地,一个最优化数学模型能够表示成下列标准形式:

 ‍‍

所谓 Karush-Kuhn-Tucker 最优化条件,就是指上式的最小点 x* 必须满足下面的条件:

 

     KKT条件第一项是说最优点必须满足所有等式及不等式限制条件,也就是说最优点必须是一个可行解,这一点自然是毋庸置疑的。第二项表明在最优点 x*,∇f 必須是 ∇hj和∇gk的线性組合,λjµk都叫作拉格朗日乘子。所不同的是不等式限制条件有方向性,所以每一个µk都必须大于或等于零,而等式限制条件没有方向性,所以λj没有符号的限制,其符号要视等式限制条件的写法而定.

     从KKT的几何意义出发这个定理还是很神奇的:

     f'(x)代表了f在x点增加的方向,而要找f的最小值的那个点就要朝f减小的方向走,也就是f*v < 0的区域,成为下降域;同理,g'(x)代表了g在x增加的方向,而可行区域就是g*v < 0的区域,成为可行域;要取得最优解就要使某点的下降域与可行域交集为空,也就是f'是g_k'的线性组合了。而g_k必须是有效的,即g_k(x)=0,否则其拉氏乘数就要等于0使其其实不发挥作用。

四、拉格朗日对偶(Lagrange duality)

   这个东东,很多地方都有讲到,我认为比较详细的是Liqizhou写的。链接为http://www.cnblogs.com/liqizhou/archive/2012/05/11/2495689.html

五、归一化

  归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量它使物理系统数值的绝对值变成某种相对值关系。简化计算,缩小量值的有效办法。归一化的方法很多,如:线性函数转换,y=(x-MinValue)/(MaxValue-MinValue);说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。

 

posted @ 2014-05-12 15:03  davidph  阅读(1312)  评论(0编辑  收藏  举报