SVM(二)線性分類器的求解 問題的描述

2021-07-02 03:09:11 字數 3066 閱讀 4389

上節說到我們有了乙個線性分類函式,也有了判斷解優劣的標準——即有了優化的目標,這個目標就是最大化幾何間隔,但是看過一些關於svm的**的人一定記得什麼優化的目標是要最小化||w||這樣的說法,這是怎麼回事呢?回頭再看看我們對間隔和幾何間隔的定義:

間隔:δ=y(wx+b)=|g(x)|

幾何間隔:

可以看出δ=||w||δ幾何。注意到幾何間隔與||w||是成反比的,因此最大化幾何間隔與最小化||w||完全是一回事。而我們常用的方法並不是固定||w||的大小而尋求最大幾何間隔,而是固定間隔(例如固定為1),尋找最小的||w||。

而凡是求乙個函式的最小值(或最大值)的問題都可以稱為尋優問題(也叫作乙個規劃問題),又由於找最大值的問題總可以通過加乙個負號變為找最小值的問題,因此我們下面討論的時候都針對找最小值的過程來進行。乙個尋優問題最重要的部分是目標函式,顧名思義,就是指尋優的目標。例如我們想尋找最小的||w||這件事,就可以用下面的式子表示:

但實際上對於這個目標,我們常常使用另乙個完全等價的目標函式來代替,那就是:

不難看出當||w||2達到最小時,||w||也達到最小,反之亦然(前提當然是||w||描述的是向量的長度,因而是非負的)。之所以採用這種形式,是因為後面的求解過程會對目標函式作一系列變換,而式(1)的形式會使變換後的形式更為簡潔(正如聰明的讀者所料,新增的係數二分之一和平方,皆是為求導數所需)。

接下來我們自然會問的就是,這個式子是否就描述了我們的問題呢?(回想一下,我們的問題是有一堆點,可以被分成兩類,我們要找出最好的分類面)

如果直接來解這個求最小值問題,很容易看出當||w||=0的時候就得到了目標函式的最小值。但是你也會發現,無論你給什麼樣的資料,都是這個解!反映在圖中,就是h1與h2兩條直線間的距離無限大,這個時候,所有的樣本點(無論正樣本還是負樣本)都跑到了h1和h2中間,而我們原本的意圖是,h1右側的被分為正類,h2 左側的被分為負類,位於兩類中間的樣本則拒絕分類(拒絕分類的另一種理解是分給哪一類都有道理,因而分給哪一類也都沒有道理)。這下可好,所有樣本點都進入了無法分類的灰色地帶。

造成這種結果的原因是在描述問題的時候只考慮了目標,而沒有加入約束條件,約束條件就是在求解過程中必須滿足的條件,體現在我們的問題中就是樣本點必須在h1或h2的某一側(或者至少在h1和h2上),而不能跑到兩者中間。我們前文提到過把間隔固定為1,這是指把所有樣本點中間隔最小的那一點的間隔定為1(這也是集合的間隔的定義,有點繞嘴),也就意味著集合中的其他點間隔都不會小於1,按照間隔的定義,滿足這些條件就相當於讓下面的式子總是成立:

yi[(w·xi)+b]≥1 (i=1,2,…,l) (l是總的樣本數)

但我們常常習慣讓式子的值和0比較,因而經常用變換過的形式:

yi[(w·xi)+b]-1≥0 (i=1,2,…,l) (l是總的樣本數)

因此我們的兩類分類問題也被我們轉化成了它的數學形式,乙個帶約束的最小值的問題:

下一節我們從最一般的意義上看看乙個求最小值的問題有何特徵,以及如何來解。

從最一般的定義上說,乙個求最小值的問題就是乙個優化問題(也叫尋優問題,更文縐縐的叫法是規劃

——programming),它同樣由兩部分組成,目標函式和約束條件,可以用下面的式子表示:

約束條件用函式c來表示,就是constrain的意思啦。你可以看出一共有p+q個約束條件,其中p個是不等式約束,q個等式約束。

關於這個式子可以這樣來理解:式中的x是自變數,但不限定它的維數必須為1(視乎你解決的問題空間維數,對我們的文字分類來說,那可是成千上萬啊)。要求f(x)在哪一點上取得最小值(反倒不太關心這個最小值到底是多少,關鍵是哪一點),但不是在整個空間裡找,而是在約束條件所劃定的乙個有限的空間裡找,這個有限的空間就是優化理論裡所說的可行域。注意可行域中的每乙個點都要求滿足所有p+q個條件,而不是滿足其中一條或幾條就可以(切記,要滿足每個約束),同時可行域邊界上的點有乙個額外好的特性,它們可以使不等式約束取得等號!而邊界內的點不行。

這對一般的優化問題可能提供不了什麼幫助,但對我們的 svm來說,邊界上的點有其特殊意義,實際上是它們唯一的決定了分類超平面,這些點(想象他們就是以前的圖中恰好落在h1和h2上的點,在文字分類問題中,每乙個點代表乙個文件,因而這個點本身也是乙個向量)就被稱為支援向量

關於可行域還有個概念不得不提,那就是凸集,凸集是指有這麼乙個點的集合,其中任取兩個點連一條直線,這條線上的點仍然在這個集合內部,因此說「凸」是很形象的(乙個反例是,二維平面上,乙個月牙形的區域就不是凸集,你隨便就可以找到兩個點違反了剛才的規定)。

回頭再來看我們線性分類器問題的描述,可以看出更多的東西。

在這個問題中,自變數就是w,而目標函式是w的二次函式,所有的約束條件都是w的線性函式(哎,千萬不要把xi當成變數,它代表樣本,是已知的),這種規劃問題有個很有名氣的稱呼——二次規劃(quadratic programming,qp),而且可以更進一步的說,由於它的可行域是乙個凸集,因此它是乙個凸二次規劃。

一下子提了這麼多術語,實在不是為了讓大家以後能向別人炫耀學識的淵博,這其實是我們繼續下去的乙個重要前提,因為在動手求乙個問題的解之前(好吧,我承認,是動計算機求……),我們必須先問自己:這個問題是不是有解?如果有解,是否能找到?

對比(式2)和(式1)還可以發現,我們的線性分類器問題只有不等式約束,因此形式上看似乎比一般意義上的規劃問題要簡單,但解起來卻並非如此。

因為我們實際上並不知道該怎麼解乙個帶約束的優化問題。如果你仔細回憶一下高等數學的知識,會記得我們可以輕鬆的解乙個不帶任何約束的優化問題(實際上就是當年背得爛熟的函式求極值嘛,求導再找0點唄,誰不會啊?笑),我們甚至還會解乙個只帶等式約束的優化問題,也是背得爛熟的,求條件極值,記得麼,通過新增拉格朗日乘子,構造拉格朗日函式,來把這個問題轉化為無約束的優化問題云云(如果你一時沒想通,我提醒一下,構造出的拉格朗日函式就是轉化之後的問題形式,它顯然沒有帶任何條件)。

讀者問:如果只帶等式約束的問題可以轉化為無約束的問題而得以求解,那麼可不可以把帶不等式約束的問題向只帶等式約束的問題轉化一下而得以求解呢?

聰明,可以,實際上我們也正是這麼做的。下一節就來說說如何做這個轉化,一旦轉化完成,求解對任何學過高等數學的人來說,都是小菜一碟啦。

SVM入門(二)線性分類器Part 1

線性分類器 一定意義上,也可以叫做感知機 是最簡單也很有效的分類器形式.在乙個線性分類器中,可以看到svm形成的思路,並接觸很多svm的核心概念.用乙個二維空間裡僅有兩類樣本的分類問題來舉個小例子。如圖所示 c1和c2是要區分的兩個類別,在二維平面中它們的樣本如上圖所示。中間的直線就是乙個分類函式,...

(二)線性分類器 上

線性分類概述 這次我們介紹一種更強大的方法來解決影象分類問題,這個方法主要有兩部分 評分函式,它將對影象進行每個類別的評分。另外一部分是損失函式,它將衡量類別得分與真實標籤之間的差異。最終將影象分類問題轉化為乙個最優化問題,在優化過程中,一步一步更新評分函式的引數來減低我們的損失函式值。從影象到標籤...

(二)線性分類器 中

線性分類器分3個小節介紹,本章內容接上一章 二 線性分類器 上 損失函式 在上一節,我們定義了從影象到每個類別的評分函式。對於評分函式,我們可以調整引數w和b,使的評分函式的值與真實類別一致,即評分函式在影象的真實類別有最高的評分。這就用到了損失函式 代價函式 目標函式 損失函式是用來衡量評分函式的...