目錄
梯度下降法、拉格朗日乘子法、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),用自己,表示自己
θnew-θold=Δθ
作用:求下列約束優化問題的最優解β*
等價於
分離超平面為g(x)=wTx+b
推導過程太復雜,不再作多闡述,這里給出結果與算法的實現
SMO不適合大批量數據,參數太多,計算太復雜
SVR算法其實就是線性回歸的對偶問題,本質還是線性回歸問題罷了