Machine Learning Techniques 笔记:2-1 Linear Support Vector Machine

Linear Calssification:通过资料加权,看是正还是负,来对资料进行分类。

PLA:把资料做未分类的线不止一条,那条线是最佳的分类?Margin最大?

我们学过的理论保障:VC bound看起来每种分类没有差别,Eout 由Ein 与 模型复杂度的代价dvc给bound住。

但凭直觉,大家都选择最右面的线,为什么?

测试资料,与训练资料可能有差别,比如测量误差。

左边的线与右边的线,最大的差别就是对于测量误差的容忍度

看线跟点的距离到底有多远。找最胖,最强壮的线。

首先像PLA一样,可以把 data 分开,其次:在这些线中找最胖的。

y与WX同号:大于零。分类正确,否则,错误

垂直:向量点积为零

找到一条线,求附近的点到该线的最短距离,作为margin,这个距离该如何计算?

把w0与其它的w分家,令 w0=b(bias,截距),其它的w继续放在w的向量中,同样x,也是比较矮小的x,少了一个x0=1,多出一个b,代表原来的w0

接下来的计算,w,x都是比较矮小的,没有w0,x0

用b和w代表的平面,距离一个点x的距离如何求?

两个点,x prime,与x double prime都在平面上,意味着两个点都满足平面方程wx+b=0

w垂直超平面:w与平面上任何一个向量垂直,内积为0

将x投影到垂线w方向上面。

现在讨论的是点到分隔平面的距离:sepearating hyper-plane

利用分数乘以yn大于零,只考虑正确分类的线。

同一条线可以用不同的方程式表示,系数可以等比例放缩,另 y(wx+b)=1,这样会更加好做。如果y与分数(wx+b)的乘积等于1,因而必然大于0  只考虑能够正确分类的线。

原来的max 1/||w||不好解,放松成min 1/2wTw

如果每一个y(wx+b)都大于1,为1.126,没有等于1的,则每个item除以1.126,则w就会变短,则w的倒数就会变大,此时则得到新的解比w还好,与b,w落在里面的区域在里面,为最佳解矛盾,说明,防缩不会影响最佳解的求解。

增加一个1/2,将最大化变为最小化它的倒数。


4个点,对应4个条件,每一行都满足y(wx+b)>=1

第1行,因为y为-1,所以,被-1乘积后就变成-b>=1

第2行,因为y为-1,所以,被-1乘积后就变成-2w1 -2w2 -b>=1

........

结合4个条件,求wTw(W1的平方与W2的平方和),一定大于等于2  w1>=1,w2<=-1.

这一个支撑向量,会对应一些距离边界最近的点,其它的点不再重要。这些点:支撑向量

这些问题属于二次函数,QP问题,二次规划的问题,有成熟的解法。

如何将我们的问题转换成标准的QP问题?

最小化u向量的二次函数,二次式的系数,放在Q矩阵中,一次项放在p向量中。

线性条件:u向量的一次式

将所有的变数,bw均塞进去,最小化u的二次式,u中有b,w。 与b相关的向量都不在于,故均放置为0,与w相关的放置为1

接下来,找matlab或其它已经做好的QP solver,直接求解即可。通常需要读一下tool的使用说明,有的要求大于等于1,有的小于等于1

hard-margin:完全分开,不可以有犯错的情况

linear:原来的xn

最小化w的长度,条件是将所有的xxoo分割。

VC:我们的分割线,到底能产生多少种ooxx的组合。找到越胖的分割线越好。

如果像PLA,不计较胖瘦Margin,则3个点可以产生8种情形

如果要求一定符合一定的胖瘦的标准,3个点可能无法产生8种不同的情形。

能够做到的xxoo分类越少,则vc dimension就会越小,越不容易overfit。

如果看算法的vc dimension,假设有一个单位原,如果不在乎胖瘦,rou = 0,则此时的vc dimension是3,产生8种不同的ooxx的组合。

如果在乎胖瘦,要求rou > square(3)/2, 则无法shatter 3个点,因为此时必然有两个点,它们之间的距离比square(3)小,因而此时dvc < 3

有margin的算法,其算法的vc dimension会得到控制。小于等于d+1

largin margin + Transform 联合起来做。透过transform可以做复杂的边界。

胖的分界线,可能很好的对付测量错误的情况。

猜你喜欢

转载自blog.csdn.net/f2157120/article/details/80642222