日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ng第十二课:支持向量机(Support Vector Machines)(一)

發布時間:2024/6/21 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ng第十二课:支持向量机(Support Vector Machines)(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 目錄

支持向量機基本上是最好的有監督學習算法了,從logistic回歸出發,引出了SVM,揭示模型間的聯系,過渡自然。

?

2 重新審視logistic回歸

Logistic回歸目的是從特征學習出一個0/1分類模型,而這個模型是將特征的線性組合作為自變量,由于自變量的取值范圍是負無窮到正無窮。因此,使用logistic函數(或稱作sigmoid函數)將自變量映射到(0,1)上,映射后的值被認為是屬于y=1的概率。

假設函數其中x是n維特征向量,函數g就是logistic函數。的圖像是

可以看到,將無窮映射到了(0,1)。

假設函數就是特征屬于y=1的概率。

?

當要判別一個新來的特征屬于哪個類時,只需求,若大于0.5就是y=1的類,反之屬于y=0類。

再審視一下,發現只和有關,>0,那么,g(z)只不過是用來映射,真實的類別決定權還在。還有當時,=1,反之=0。如果只從出發,希望模型達到的目標無非就是讓訓練數據中y=1的特征,y=0的特征。Logistic回歸就是要學習得到,使得正例的特征遠大于0,負例的特征遠小于0,強調在全部訓練實例上達到這個目標。

圖形化表示如下:

中間那條線是,logistic回顧強調所有點盡可能地遠離中間那條線。學習出的結果也就中間那條線??紤]上面3個點A、B和C。從圖中可以確定A是×類別的,然而C我們是不太確定的,B還算能夠確定。這樣可以得出結論,我們更應該關心靠近中間分割線的點,讓他們盡可能地遠離中間線,而不是在所有點上達到最優。這大概就是支持向量機的思路和logistic回歸的不同點。

?

3 形式化表示

? ? 這次使用的結果標簽是y=-1,y=1替換在logistic回歸中使用的y=0和y=1。同時將替換成w和b(0)。以前的,其中認為,替換為b,后面替換為(即)。這樣,我們讓,進一步?= hw,b(x)。

再明確下假設函數?

上一節提到過只需考慮的正負問題,而不用關心g(z),因此這里將g(z)做一個簡化,將其簡單映射到y=-1和y=1上。映射關系如下:

?

4 函數間隔和幾何間隔

給定一個訓練樣本,x是特征,y是結果標簽。i表示第i個樣本。定義函數間隔如下:

?? (每個點相距距離)

? ? 當時,又(直線圖的例子全在第一象限),的值實際上就是(該情況下永為正值)。反之亦然(-1)。為了使函數間隔最大(更大的信心確定該例是正例還是反例),當時,應該是個大正數,反之是個大負數。因此函數間隔代表了我們認為特征是正例還是反例的確信度。

? ?繼續考慮w和b,如果同時加大w和b,比如在前面乘個系數比如2,那么所有點的函數間隔都會增大二倍,這個對求解問題來說不應該有影響,因為我們要求解的是(那根直線),同時擴大w和b對結果是無影響的。這樣,但也要限制w和b,可能需要加入歸一化條件,畢竟求解的目標是確定唯一一個w和b,而不是多組線性相關的向量。這個歸一化一會再考慮。

剛剛我們定義的函數間隔是針對某一個樣本的,現在我們定義全局樣本上的函數間隔

? ,說白了就是在訓練樣本上分類正例和負例確信度最小那個函數間隔。

?

接下來定義幾何間隔,先看圖

? ? 假設我們有了B點所在的分割面。任何其他一點,比如A到該面的距離以表示,假設B就是A在分割面上的投影。我們知道向量BA的方向是(分割面的梯度),單位向量是。A點是,所以B點是x=(利用初中的幾何知識),帶入得,

進一步得到

實際上就是點到平面距離。

再換種更加優雅的寫法:

?就是點到平面的距離

當時,不就是函數間隔嗎?是的,前面提到的函數間隔歸一化結果就是幾何間隔。他們為什么會一樣呢?因為函數間隔是我們定義的,在定義的時候就有幾何間隔的色彩。同樣,同時擴大w和b,w擴大幾倍,就擴大幾倍,結果無影響。同樣定義全局的幾何間隔

?

?

5 最優間隔分類器(optimal margin classifier)

? ? 前面提到的目標是尋找一個超平面,使得離超平面比較近的點能有更大的間距。也就是我們不考慮所有的點都必須遠離超平面,我們關心求得的超平面能夠讓所有點中離它最近的點具有最大間距。形式化表示為:

? ? 用=1表示w,使得表示的是幾何間隔

? ? 到此,已經將模型定義出來了。如果求得了w和b,那么來一個特征x,就能夠分類了,稱為最優間隔分類器。

? ? 接下的問題就是如何求解w和b的問題了。由于不是凸函數,我們想先處理轉化一下,考慮幾何間隔和函數間隔的關系,,我們改寫一下上面的式子:

這個時候目標函數仍然不是凸函數,沒法直接代入優化軟件里計算。我們還要改寫。前面說到同時擴大w和b對結果沒有影響,但我們最后要求的仍然是w和b的確定值,因此就需要對做一些限制,以保證解是唯一的。這里為了簡便取,這樣的意義是將全局的函數間隔定義為1,也即是將離超平面最近的點的距離定義為。由于求的最大值相當于求的最小值,因此改寫后結果為:

?

這下好了,只有線性約束了,而且是個典型的二次規劃問題(目標函數是自變量的二次函數)。代入優化軟件可解。

(雖然沒有圖解那么直觀,但每一步推導有理有據,依靠思路的流暢性來推導出目標函數和約束。)

接下來介紹的是手工求解的方法了,一種更優的求解方法。

?

6 拉格朗日對偶(Lagrange duality)

???? 先拋開上面的二次規劃問題,先來看看存在等式約束的極值問題求法,比如下面的最優化問題:

????????

??? 目標函數是f(w),下面是等式約束。通常解法是引入拉格朗日算子,這里使用來表示算子,得到拉格朗日公式為

????????

??? L是等式約束的個數。

??? 然后分別對w和求偏導,使得偏導數等于0,然后解出w和。

? ? 至于為什么引入拉格朗日算子可以求出極值,原因是f(w)的dw變化方向受其他不等式的約束,dw的變化方向與f(w)的梯度垂直時才能獲得極值,而且在極值處,f(w)的梯度與其他等式梯度的線性組合平行,因此他們之間存在線性關系。

然后探討有不等式約束的極值問題求法,問題如下:

????????

? ? 定義一般化的拉格朗日公式

?

??? 這里的和都是拉格朗日算子。如果按這個公式求解,會出現問題,因為要求解的是最小值,而這里的已經不是0了,可以將調整成很大的正值,來使最后的函數結果是負無窮。因此需要排除這種情況,定義下面的函數:

?????

??? 這里的P代表primal。假設或者,那么總是可以調整和來使得有最大值為正無窮。而只有g和h滿足約束時,為f(w)。這個函數的精妙之處在于,而且求極大值。

??? 因此可以寫作

????

??? 這樣原來要求的min f(w)可以轉換成求了。 ???

????

? ? 使用來表示。如果直接求解,首先面對的是兩個參數,而也是不等式約束,然后再在w上求最小值。這個過程不容易做,那么怎么辦呢?

? ? 先考慮另外一個問題

??? D的意思是對偶,將問題轉化為先求拉格朗日關于w的最小值,將和看作是固定值。之后在求最大值的話:

?

??? 這個問題是原問題的對偶問題,相對于原問題只是更換了min和max的順序,而一般更換順序的結果是Max Min(X) <= MinMax(X)。然而在這里兩者相等。用來表示對偶問題如下:

??????

??? 下面解釋在什么條件下兩者會等價。假設f和g都是凸函數,h是仿射的(affine,)。并且存在w使得對于所有的i,。在這種假設下,一定存在使得是原問題的解,是對偶問題的解。還有另外,滿足庫恩-塔克條件(Karush-Kuhn-Tucker, KKT condition),該條件如下:

????

??? 所以如果滿足了庫恩-塔克條件,那么他們就是原問題和對偶問題的解。讓我們再次審視公式(5),這個條件稱作是KKT dual complementarity條件。這個條件隱含了如果,那么。也就是說,時,w處于可行域的邊界上,這時才是起作用的約束。而其他位于可行域內部(的)點都是不起作用的約束,其。這個KKT雙重補足條件會用來解釋支持向量和SMO的收斂測試。

??? 這部分內容思路比較凌亂,還需要先研究下《非線性規劃》中的約束極值問題,再回頭看看。KKT的總體思想是將極值會在可行域邊界上取得,也就是不等式為0或等式約束里取得,而最優下降方向一般是這些等式的線性組合,其中每個元素要么是不等式為0的約束,要么是等式約束。對于在可行域邊界內的點,對最優解不起作用,因此前面的系數為0。

7 最優間隔分類器(optimal margin classifier)

??? 重新回到SVM的優化問題:

????

??? 我們將約束條件改寫為:

????

??? 從KKT條件得知只有函數間隔是1(離超平面最近的點)的線性約束式前面的系數,也就是說這些約束式,對于其他的不在線上的點(),極值不會在他們所在的范圍內取得,因此前面的系數.注意每一個約束式實際就是一個訓練樣本。

??? 看下面的圖:

????

??? 實線是最大間隔超平面,假設×號的是正例,圓圈的是負例。在虛線上的點就是函數間隔是1的點,那么他們前面的系數,其他點都是。這三個點稱作支持向量。構造拉格朗日函數如下: ???

????

??? 注意到這里只有沒有是因為原問題中沒有等式約束,只有不等式約束。

??? 下面按照對偶問題的求解步驟來一步步進行,

????

??? 首先求解的最小值,對于固定的,的最小值只與w和b有關。對w和b分別求偏導數。

????

????

??? 并得到

????

??? 將上式帶回到拉格朗日函數中得到,此時得到的是該函數的最小值(目標函數是凸函數)

??? 代入后,化簡過程如下:

?????

  最后得到

???? 由于最后一項是0,因此簡化為

????

??? 這里我們將向量內積表示為

??? 此時的拉格朗日函數只包含了變量。然而我們求出了才能得到w和b。

??? 接著是極大化的過程,

??? 前面提到過對偶問題和原問題滿足的幾個條件,首先由于目標函數和線性約束都是凸函數,而且這里不存在等式約束h。存在w使得對于所有的i,。因此,一定存在使得是原問題的解,是對偶問題的解。在這里,求就是求了。

??? 如果求出了,根據即可求出w(也是,原問題的解)。然后

????

??? 即可求出b。即離超平面最近的正的函數間隔要等于離超平面最近的負的函數間隔。

??? 關于上面的對偶問題如何求解,將留給下一篇中的SMO算法來闡明。

??? 這里考慮另外一個問題,由于前面求解中得到

????

??? 我們通篇考慮問題的出發點是,根據求解得到的,我們代入前式得到

????

??? 也就是說,以前新來的要分類的樣本首先根據w和b做一次線性運算,然后看求的結果是大于0還是小于0,來判斷正例還是負例。現在有了,我們不需要求出w,只需將新來的樣本和訓練數據中的所有樣本做內積和即可。那有人會說,與前面所有的樣本都做運算是不是太耗時了?其實不然,我們從KKT條件中得到,只有支持向量的,其他情況。因此,我們只需求新來的樣本和支持向量的內積,然后運算即可。這種寫法為下面要提到的核函數(kernel)做了很好的鋪墊。

轉載于:https://www.cnblogs.com/Real-Ying/p/6841277.html

總結

以上是生活随笔為你收集整理的Ng第十二课:支持向量机(Support Vector Machines)(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。