SVM——支持向量回归(SVR)[通俗易懂]
1、支持向量回歸的原始問(wèn)題
先來(lái)看看SVM線性支持向量機(jī)(軟間隔)的原始問(wèn)題:
其中ξi是松弛變量,但它實(shí)際上是hinge(合頁(yè))損失函數(shù),所以ξi也作為對(duì)應(yīng)的點(diǎn)(xi, yi)的損失,如下圖所示:
當(dāng)點(diǎn)(xi, yi)位于間隔面上或者間隔面之外(這兩種都是正確分類的情況)則ξi=0,若點(diǎn)(xi, yi)位于分割面上或者位于間隔面與分割面之間(正確分類)或者位于間隔面與分割面之間(錯(cuò)誤分類),這三種情況都是有損失的,損失為 1 – yi(w·xi + b)。
SVM線性支持向量機(jī)(軟間隔)的原始問(wèn)題等價(jià)于如下問(wèn)題:
好了現(xiàn)在來(lái)看SVR的原始問(wèn)題:
如上圖所示,SVR需要學(xué)到一個(gè)最大間隔(幾何間隔)的回歸面或回歸線,ε代表精度,在2ε間隔之內(nèi)的點(diǎn)和間隔面上的點(diǎn)離回歸面最近,所以認(rèn)為這些點(diǎn)的預(yù)測(cè)結(jié)果比較可靠,是沒(méi)有損失的,而2ε間隔之外的點(diǎn)離回歸面較遠(yuǎn),所以認(rèn)為這些點(diǎn)的預(yù)測(cè)結(jié)果不太可靠,是有損失的。而敏感度損失函數(shù)剛好就能用來(lái)計(jì)算每個(gè)點(diǎn)的損失,如下圖所示:
其中w·xi+b代表預(yù)測(cè)值,yi是實(shí)際值,|w·xi+b – yi|表示誤差絕對(duì)值,如果點(diǎn)(xi, yi)的預(yù)測(cè)誤差絕對(duì)值小于等于ε,則ξi=0,ξi代表?yè)p失;如果點(diǎn)(xi, yi)的預(yù)測(cè)誤差絕對(duì)值大于ε,則ξi= |w·xi+b – yi| – ε。
綜上所述得出SVR的原始約束問(wèn)題:
其中約束條件的意義就是讓所有的點(diǎn)(xi, yi)都滿足敏感度損失函數(shù),也就是讓 ξi 能足夠代替點(diǎn)(xi, yI)的損失,因?yàn)棣?sub>i 始終大于等于該點(diǎn)的預(yù)測(cè)誤差絕對(duì)值減去ε。
SVR目標(biāo)表達(dá)式的解釋:
這里附上一點(diǎn)自己的理解,不對(duì)的地方歡迎指證。將上述SVR的目標(biāo)表達(dá)式分兩部分來(lái)分析,先看后半部分的懲罰項(xiàng),它的最小化使得訓(xùn)練集中絕大多數(shù)的點(diǎn)都位于精度為|ε|的間隔面內(nèi);再來(lái)看前半部分的1/2||w||2 ,它的最小化是為了幾何間隔最大化,而幾何間隔最大化保證了間隔面內(nèi)的絕大部分y為正的點(diǎn)會(huì)預(yù)測(cè)為正的,y為負(fù)的點(diǎn)會(huì)預(yù)測(cè)為負(fù)的。綜上所述,懲罰項(xiàng)控制預(yù)測(cè)的精度,幾何間隔控制預(yù)測(cè)的正負(fù)號(hào),所以該目標(biāo)表達(dá)式最小化的解w*和b*將是最優(yōu)的回歸線。
根據(jù)硬間隔SVM和軟間隔SVM的知識(shí),我們知道SVM的原始問(wèn)題最終都轉(zhuǎn)換為求其對(duì)偶問(wèn)題,所以SVR也不例外。因?yàn)镾VR原始問(wèn)題的不等式約束不是凸函數(shù),所以該不等式約束需要轉(zhuǎn)換一下,如下:
|w·xi+b – yi| – ε <= ξi 等價(jià)于 -ε – ξi <= w·xi+b – yi <= ε + ξi ,其中 -ε – ξi <= w·xi+b – yi 即 yi – w·xi+b <= ε + ξi 代表上圖中回歸面(藍(lán)色線)的下方區(qū)域,當(dāng)點(diǎn)(xi, yi)位于回歸面和下間隔面之間時(shí),ξi =0,當(dāng)點(diǎn)(xi, yi)位于下間隔面下方時(shí)ξi>0,這時(shí) ξi 就代表回歸面下方區(qū)域中的點(diǎn)的損失,我們可以用ξiv來(lái)代替它。同理-ε – ξi <= w·xi+b – yi <= ε + ξi 中的右側(cè)部分 w·xi+b – yi <= ε + ξi就可以看作上圖中回歸面(藍(lán)色線)的上方區(qū)域,當(dāng)點(diǎn)(xi, yi)位于回歸面和上間隔面之間時(shí),ξi =0,當(dāng)點(diǎn)(xi, yi)位于上間隔面上方時(shí)ξi>0,這時(shí) ξi 就代表回歸面上方區(qū)域中的點(diǎn)的損失,我們可以用ξi^ 來(lái)代替它。
令f(xi) = w·xi+b,我們最終得到SVR的原始問(wèn)題如下:
2、支持向量回歸的對(duì)偶問(wèn)題
先求原始問(wèn)題的拉格朗日函數(shù),再對(duì)拉格朗日函數(shù)求極大(對(duì)拉格朗日乘子)極小(對(duì)模型參數(shù))問(wèn)題就得到對(duì)偶問(wèn)題。過(guò)程如下:
拉格朗日函數(shù):
對(duì)拉格朗日函數(shù)求極大極小問(wèn)題:
(1)先對(duì)拉格朗日函數(shù)求極小(對(duì)模型參數(shù))
分別令L(w, b, αv, α^ , ξv , ξ^ , μv, μ^ ) 對(duì)w, b, ξv , ξ^的倒數(shù)等于0得:
其中Φ(xi)指的是xi向量。
將上面式子帶入拉格朗日函數(shù)中消去w, b, ξv , ξ^得:
(2)再對(duì)(1)中得到的式子求極大(對(duì)拉格朗日乘子)
約束條件是:
其中αiv >=0,μiv >=0,αi^ >=0,μi^ >=0,由αiv= C – μiv 得 0 <= αiv <= C,同理得 0 <= αi^ <= C。
所以支持向量回歸的原始問(wèn)題對(duì)應(yīng)的對(duì)偶問(wèn)題如下:
再將對(duì)偶問(wèn)題的目標(biāo)表達(dá)式轉(zhuǎn)換成求極小,就得到最終的對(duì)偶問(wèn)題如下:
對(duì)偶問(wèn)題的求解即求出αiv 和 αi^ 可以用SMO算法,這里不再講了。
3、支持向量
支持向量可以說(shuō)是代表了SVM模型的稀疏性,對(duì)于SVR同樣有支持向量。
硬間隔線性可分支持向量機(jī)的支持向量是間隔面上的點(diǎn);
軟間隔線性支持向量機(jī)的支持向量是間隔面上的點(diǎn)、間隔面內(nèi)被正確分類的點(diǎn)、分割面上的點(diǎn)以及所有被分錯(cuò)的點(diǎn)的集合;
支持向量回歸的支持向量則是間隔面之外的點(diǎn)也就是(αiv – αi^) != 0的點(diǎn)。
(不想看分析過(guò)程的可以這么理解,因?yàn)橹С窒蛄炕貧w必然要使得訓(xùn)練數(shù)據(jù)集中大部分的點(diǎn)都位于回歸線附近,即位于間隔面之內(nèi)(包括間隔面上),所以只允許小部分的點(diǎn)(預(yù)測(cè)誤差較大)位于間隔面之外,支持向量本來(lái)就是數(shù)據(jù)集中的一小部分點(diǎn),所以位于間隔面之外的點(diǎn)就是支持向量)
分析過(guò)程如下:
要使得(w* , b* , ξv*, ξ^* , αiv* , αi^* , μiv* , μi^ *)這一組解滿足(w* , b* , ξv*, ξ^*)是原始問(wèn)題的最優(yōu)解且(αiv* , αi^* , μiv* , μi^ *)是對(duì)偶問(wèn)題的最優(yōu)解,則必須滿足以下KKT條件:
由(3)(4)(9)(10)可得:
因?yàn)槲挥陂g隔面之內(nèi)的點(diǎn)(包括間隔面)滿足 ξv* = ξ^* = 0,位于下間隔面下方的點(diǎn)滿足ξ^* = 0, ξv* != 0 ;位于上間隔面上方的點(diǎn)滿足 ξv* =0,ξ^* != 0,;綜上所述ξv* , ξ^* 至少有一個(gè)為0,所以ξv* ξ^*=0
當(dāng)ξv* = ξ^* = 0時(shí):
假設(shè)αiv* 和 αi^* 都不為0,由(5)和(6)可得,f(xi) – yi – ε = 0, yi – f(xi) – ε = 0,兩式相加,所以ε=0。由題設(shè)可知ε是精度(>0),不可能為0,故矛盾,所以假設(shè)錯(cuò)誤,則可得αiv* 和 αi^* 中至少有一個(gè)為0。
當(dāng)ξv* =0, ξ^* != 0時(shí):
假設(shè)αiv* 和 αi^* 都不為0,由(5)和(6)可得,f(xi) – yi – ε = 0, yi – f(xi) – ε – ξ^* = 0,兩式相加,所以 ξ^* = -2ε。由題設(shè)可知ξ^* 是大于等于0的,而這里ξ^*小于0,故矛盾,所以假設(shè)錯(cuò)誤,則可得αiv* 和 αi^* 中至少有一個(gè)為0。
當(dāng)ξv* !=0, ξ^* = 0時(shí):
同理可得,αiv* 和 αi^* 中至少有一個(gè)為0。
綜上所述,αiv* 和 αi^* 中至少有一個(gè)為0,所以αiv* αi^* = 0。
整理上述過(guò)程推導(dǎo)的一些條件,可得如下部分KKT條件:
因?yàn)棣?sub>iv* 和 αi^* 中至少有一個(gè)為0,如果αiv* = αi^*,則必有αiv* = αi^* = 0,由(d)可知必有ξv* = ξ^* = 0,所以αiv* = αi^*對(duì)應(yīng)的點(diǎn)位于間隔面之內(nèi)(包括間隔面上)。
那么αiv* != αi^*,即(αiv* – αi^*) !=0對(duì)應(yīng)的點(diǎn)位于間隔面之外,所以(αiv* – αi^*) !=0對(duì)應(yīng)的點(diǎn)就是我們支持向量。
總結(jié)
以上是生活随笔為你收集整理的SVM——支持向量回归(SVR)[通俗易懂]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Launch debug in SWI1
- 下一篇: workflow initializat