SVM算法 機器學習


目錄

梯度下降法、拉格朗日乘子法、KKT條件回顧
感知器模型回顧
SVM線性可分
SVM線性不可分
核函數
SMO

SVM線性可分,SVM線性不可分,核函數,要求會推導

————————————————————————————

 

 

 

 

 

學習率(步長)可以是任何數,如果是二階偏導數的話,則為牛頓法

 

 

 

 優化問題:

  給定一個目標函數,給定一些約束條件,就構成了一個優化模型。迭代必須是無約束的目標函數才可迭代。

 

 

 

 

 

 

 對偶問題舉例:1、求最小值然后求最大值,轉化為求最大值再求最小值。。2、求一個數的最大值轉化為求此數的相反數的最小

 

 KKT條件的三種證明方法對自己看優化問題大有裨益,在此擴展一下

 

 為了不改變原來的約束條件,β只能>=0,因為β如果大於0的話,g(x)可就<=0不了了。

而要求目標函數L的最小值的話,如果f(x)之后的東西都等於0的話,那么求f(x)的最小值也就是求L的最小值了。,很明顯,后面的東西不等於0,既然不等,我們就要想辦法證明什么情況下等於0。

因此,證明方式一:βg=0

  如下圖,假如 ,一開始不考慮g(x)<=0這個約束條件,只求f(x)的極小值,求極小就是求導等於0,就能得到一個最優解x*,

  ①如果x*代入約束條件g(x)<=0(也就是下圖的有g(x)<=0構成的約束區域),恰好小於0,那么說明本來就在約束區域內,既然沒有起作用,原函數f(x)后面的東西是不是就是沒用的?沒用的自然就是0咯,g(x)<0,那么只能是β=0咯

  ②如果x*代入約束條件g(x)<=0后,x*沒在約束區域內,它是在區域外(>0)或者在區域邊緣(=0)上,大於0不滿足咱們的g(x)<=0的約束條件,pass掉,那只能找咱們等於0的時候了,在圓上,那就是g(x*)=0,那完了,g(x)=0了,βg也等於0 了。

  證明完畢。

 

 

 證明方式二:

  如下圖,轉化為了從最大值里面挑一個最小值的問題。引入了上界的概念,比如cosx,1,2,3,所有1的倍數都是它的上界,但是1是最小的上界。

 

 

 最終目的是求x與β的,求β最大值可不好求啊,無數個啊朋友們,所以這里用到對偶了,先求最小再 求最大值

 

 

 

 最后βg=0.

證明方式三:

  求minf(x),在約束條件g(x)<=0下,加入松弛變量a2,使得g(x)+a2=0,本來是加a的,為了保證它是正的,所以平方了一下。

原函數成了這樣:L=f(x)+λ(g(x)+a2);為了不改變原來的約束條件,λ>=0

 

接下來求導就可以了

 

 

可知 

 

 因此,λg=0

三種證明條件的方法完畢。

所有求不等式的條件

 

 感知器模型:

  感知器算法是最古老的分類算法之一,原理比較簡單,不過模型的分類泛化能力比較弱,不過感知器模型是SVM、神經網絡、深度學習等算法的基礎。
感知器的思想很簡單:比如班級有很多的同學,分為男同學和女同學,感知器模型就是試圖找到一條直線,能夠把所有的男同學和女同學分隔開,
如果是高維空間中,感知器模型尋找的就是一個超平面,能夠把所有的二元類別分割開。
感知器模型的前提是:數據是線性可分的

 

 

 

 

 

SVM

 SVM硬間隔

前提:所有樣本均分類正確

目的:在該前提下,搭建一個(讓離超平面比較近的點離超平面盡可能的遠(也就是最大化硬間隔))的分類器

 

 

 

 

 

 wtx+b=0是超平面,假設所有樣本都分類正確,設xs為距離較近的那些點,那么分類正確的離超平面比較近的點要盡可能的離超平面遠。wTxs+b/w的二范數為最近的點到超平面的距離,假設wTxs+b的絕對值為1,得到上式

如果所有樣本點都分類正確,那么最近的那些點yiwTxs+b>=0(感知器知識)分對的時候,自然同號。

 

而y是±1,wTxs+b也是±1,所以,yiwTxs+b=1,既然最近的那些點=1,那么其他遠的點,就是大於1了.

所以其他的遠的點就是yiwTxi+b>=1

 

 

 

 

m個約束條件,引入的超參也就有m個,每個樣本都有對應的參數βi

 

 

 求J(w)的最小值,找L和J(w)的關系,這部分是<=0的,所以J(w)是L關於β的最大值(只有關於β,其他都是我們要求的參數),求J(w)最小,再套個min就好。

 

 求最小值,就是求偏導咯

 

算到這里是用β表示w和b,把這兩個表達式代入目標函數L中去,此時還有一個未知參數β

 

那么到這一步最小值求完了,外面還套着一層max,接着求max值

來源於,於是把此帶進去作為約束條件

 

 該問題通過一系列轉化:

 這里要求的未知參數是m個β值,非常麻煩,所以后續會有SMO算法收拾它

 

 

 

 

 

 

 

 

 

 

 SVM軟間隔

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 非線性可分SVM模型

 

升維后再內積的話維度實在太多太多。我們設法使一個函數來代替升維后的內積,此類函數即為核函數,共三個參數可調,除了圖中框起來的,還有相關的系數可調,如下圖

 

 例子:0.8476即為相關的系數,也是第三個可調的參數

 

 

 

 

 

 

 SMO算法

核心原理:迭代與優化原理:θnew=f(θold),用自己,表示自己

             θnewold=Δθ

作用:求下列約束優化問題的最優解β*

等價於

 

 

 分離超平面為g(x)=wTx+b

推導過程太復雜,不再作多闡述,這里給出結果與算法的實現

 

 

SMO不適合大批量數據,參數太多,計算太復雜

 

 SVR算法其實就是線性回歸的對偶問題,本質還是線性回歸問題罷了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM