這一節(jié)主要探討kernel的方法仔粥,以及SVM如何做到some error tolerate—— soft margin曼库。
-
我們將拉格朗日函數(shù)表達(dá)成在z空間的形式愈诚, 我們需要解決的問題是邮绿, 當(dāng)在z空間優(yōu)化拉格朗日函數(shù)的時(shí)候烛谊, 我們在計(jì)算w地沮, 計(jì)算b的時(shí)候是否也是方便嗜浮, 更好的話是它就是kernel的形式。 答案是肯定的摩疑。predict的時(shí)候是計(jì)算g(x)危融, 從w的形式化表達(dá)并且代入我們得知無論計(jì)算g(x) 還是b, 都是計(jì)算x與支持向量之間的kernel而已。
-
下面以一個(gè)例子來說明kernel確實(shí)是在做inner product雷袋。以二維空間為例子吉殃, 我們形式化的將z表達(dá)出來, 然后做inner product楷怒,到最后我們發(fā)現(xiàn)這種效果與直接做K(x, x') = (1 + xTx')2的效果是等價(jià)的蛋勺。
-
以上的例子其實(shí)是polynomial kernel, 下面是其更加一般化的表達(dá)鸠删。
-
那么遇到一個(gè)新的kernel抱完, 我們?nèi)绾未_認(rèn)它就是對的, 是在做inner product呢刃泡? 可以在一維空間展開巧娱。 如下是rbf kernel, 我們對其做泰勒展開捅僵, 發(fā)現(xiàn)有x, x'的點(diǎn)乘項(xiàng)家卖, 我們有理由相信它就是在做點(diǎn)乘。
-
final庙楚。最后我們得到了g(x)關(guān)于kernel的表達(dá)。
-
但是如何知道Z空間存在呢趴樱?一個(gè)是認(rèn)為構(gòu)建馒闷, 另外一個(gè)是Mercer‘s condition酪捡, 第三是這似乎是不重要的。保證kernel(x, y) = kernel(y, x)纳账, 保證kernel矩陣是半正定逛薇。
-
接下來是soft margin分類器。 數(shù)據(jù)不一定是能對分的疏虫, 左邊的是有少數(shù)的點(diǎn)混入到別的類之中永罚, 右邊的是它在線性空間完全無法分, 必須要做非線性轉(zhuǎn)換卧秘。
-
還記得我們一開始做的歸一化|w^Tx + b | = 1 吧呢袱, 這是對所有支持向量的約束, 現(xiàn)在放寬這個(gè)約束翅敌,支持向量到超平面的距離可以有一點(diǎn)點(diǎn)vary羞福, 或者理解成允許犯一點(diǎn)點(diǎn)錯(cuò)誤\xi,然后統(tǒng)計(jì)\xi的總和蚯涮。
-
問題重新表達(dá)如下治专。最小化的問題要加上Error measure, 拉格朗日的方程要加上兩個(gè)松弛變量的約束遭顶。 可以看到张峰, 對w, b的導(dǎo)數(shù)仍然不變棒旗, 而對\xi求導(dǎo)令其為0喘批, 看到C-\alpha-beta = 0, 若將其代回去拉格朗日方程嗦哆, 關(guān)于\xi的項(xiàng)消失了谤祖。
-
solution。solution的形式與hard margin的形式基本一直老速, 只是多了一個(gè)約束\alpha ≤ C粥喜。
-
前面我們知道若\alpha > 0, 它就是一個(gè)support vector橘券, 它們都在margin上面额湘, 這是對hard margin而言。 對soft margin需要分兩類旁舰, 一類仍然是margin上面的支持向量锋华, 他們的\xi就是0; 另外一類是margin之間的支持向量箭窜, \alpha = C毯焕, 這意味著\beta = 0,根據(jù)互補(bǔ)松弛條件(不知道對不對), \xi 就不等于0了, 有Error了纳猫, 這就是margin之間的支持向量了婆咸。