【SVM最后一课】详解烧脑的Support Vector Regression
一個有情懷的公眾號
1
Kernel Ridge Regression
首先回顧一下上節課介紹的Representer Theorem,對于任何包含正則項的L2-regularized linear model,它的最佳化解w都可以寫成是z的線性組合形式,因此,也就能引入kernel技巧,將模型kernelized化。
我們先把Kernel Ridge Regression問題寫下來:
ridge regression可以寫成矩陣的形式,其中第一項可以看成是βn的正則項,而第二項可以看成是βn的error function。這樣,我們的目的就是求解該式最小化對應的βn值,這樣就解決了kernel ridge regression問題。
求解βn的問題可以寫成如下形式:
Eaug(β)是關于β的二次多項式,要對Eaug(β)求最小化解,這種凸二次最優化問題,只需要先計算其梯度,再令梯度為零即可。?Eaug(β)已經在上式中寫出來了,令其等于零,即可得到一種可能的β的解析解為:
這里需要關心的問題是(λI+K)的逆矩陣是否存在?答案是肯定的。因為我們之前介紹過,核函數K滿足Mercer’s condition,它是半正定的,而且λ>0,所以(λI+K)一定是可逆的。從計算的時間復雜上來說,由于(λI+K)是N x N大小的,所以時間復雜度是O(N^3)。還有一點,?Eaug(β)是由兩項乘積構成的,另一項是K,會不會出現K=0的情況呢?其實,由于核函數K表征的是z空間的內積,一般而言,除非兩個向量互相垂直,內積才為零,否則,一般情況下K不等于零。這個原因也決定了(λI+K)是dense matrix,即β的解大部分都是非零值。這個性質,我們之后還會說明。
所以說,我們可以通過kernel來解決non-linear regression的問題。下面比較一下linear ridge regression和kernel ridge regression的關系。
如上圖所示,左邊是linear ridge regression,是一條直線;右邊是kernel ridge regression,是一條曲線。大致比較一下,右邊的曲線擬合的效果更好一些。這兩種regression有什么樣的優點和缺點呢?對于linear ridge regression來說,它是線性模型,只能擬合直線;其次,它的訓練復雜度是O(d^3+d^2N),預測的復雜度是O(d),如果N比d大很多時,這種模型就更有效率。而對于kernel ridge regression來說,它轉換到z空間,使用kernel技巧,得到的是非線性模型,所以更加靈活;其次,它的訓練復雜度是O(N^3),預測的復雜度是O(N),均只與N有關。當N很大的時候,計算量就很大,所以,kernel ridge regression適合N不是很大的場合。比較下來,可以說linear和kernel實際上是效率(efficiency)和靈活(flexibility)之間的權衡。
2
Support Vector Regression Primal
我們在機器學習基石課程中介紹過linear regression可以用來做classification,那么上一部分介紹的kernel ridge regression同樣可以來做classification。我們把kernel ridge regression應用在classification上取個新的名字,叫做least-squares SVM(LSSVM)。
先來看一下對于某個問題,soft-margin Gaussian SVM和Gaussian LSSVM結果有哪些不一樣的地方。
那么,針對LSSVM中dense β的缺點,我們能不能使用一些方法來的得到sparse β,使得SV不會太多,從而得到和soft-margin SVM同樣的分類效果呢?下面我們將嘗試解決這個問題。
方法是引入一個叫做Tube Regression的做法,即在分類線上下分別劃定一個區域(中立區),如果數據點分布在這個區域內,則不算分類錯誤,只有誤分在中立區域之外的地方才算error。
假定中立區的寬度為2?,?>0,那么error measure就可以寫成:err(y,s)=max(0,|s?y|??),對應上圖中紅色標注的距離。
通常把這個error叫做?-insensitive error,這種max的形式跟我們上節課中介紹的hinge error measure形式其實是類似的。所以,我們接下來要做的事情就是將L2-regularized tube regression做類似于soft-margin SVM的推導,從而得到sparse β。
首先,我們把tube regression中的error與squared error做個比較:
然后,將err(y,s)與s的關系曲線分別畫出來:
上圖中,紅色的線表示squared error,藍色的線表示tube error。我們發現,當|s-y|比較小即s比較接近y的時候,squared error與tube error是差不多大小的。而在|s-y|比較大的區域,squared error的增長幅度要比tube error大很多。error的增長幅度越大,表示越容易受到noise的影響,不利于最優化問題的求解。所以,從這個方面來看,tube regression的這種error function要更好一些。
現在,我們把L2-Regularized Tube Regression寫下來:
這個最優化問題,由于其中包含max項,并不是處處可微分的,所以不適合用GD/SGD來求解。而且,雖然滿足representer theorem,有可能通過引入kernel來求解,但是也并不能保證得到sparsity?β。從另一方面考慮,我們可以把這個問題轉換為帶條件的QP問題,仿照dual SVM的推導方法,引入kernel,得到KKT條件,從而保證解β是sparse的。
所以,我們就可以把L2-Regularized Tube Regression寫成跟SVM類似的形式:
值得一提的是,系數λ和C是反比例相關的,λ越大對應C越小,λ越小對應C越大。而且該式也把w0即b單獨拿了出來,這跟我們之前推導SVM的解的方法是一致的。
現在我們已經有了Standard Support Vector Regression的初始形式,這還是不是一個標準的QP問題。我們繼續對該表達式做一些轉化和推導:
SVR的標準QP形式包含幾個重要的參數:C和?。C表示的是regularization和tube violation之間的權衡。large C傾向于tube violation,small C則傾向于regularization。?表征了tube的區域寬度,即對錯誤點的容忍程度。?越大,則表示對錯誤的容忍度越大。?是可設置的常數,是SVR問題中獨有的,SVM中沒有這個參數。另外,SVR的QP形式共有d^+1+2N個參數,2N+2N個條件。
3
Support Vector Regression Dual
然后,與SVM一樣做同樣的推導和化簡,拉格朗日函數對相關參數偏微分為零,得到相應的KKT條件:
接下來,通過觀察SVM primal與SVM dual的參數對應關系,直接從SVR primal推導出SVR dual的形式。(具體數學推導,此處忽略!)
最后,我們就要來討論一下SVR的解是否真的是sparse的。前面已經推導了SVR dual形式下推導的解w為:
相應的complementary slackness為:
所以,對于分布在tube內的點,得到的解βn=0,是sparse的。而分布在tube之外的點,βn≠0。至此,我們就得到了SVR的sparse解。
4
Summary of Kernel Models
這部分將對我們介紹過的所有的kernel模型做個概括和總結。我們總共介紹過三種線性模型,分別是PLA/pocket,regularized logistic regression和linear ridge regression。這三種模型都可以使用國立臺灣大學的Chih-Jen Lin博士開發的Liblinear庫函數來解決。
上圖中相應的模型也可以轉化為dual形式,引入kernel,整體的框圖如下:
其中SVM,SVR和probabilistic SVM都可以使用國立臺灣大學的Chih-Jen Lin博士開發的Libsvm庫函數來解決。通常來說,這些模型中SVR和probabilistic SVM最為常用。
5
Summary
本文主要介紹了SVR,我們先通過representer theorem理論,將ridge regression轉化為kernel的形式,即kernel ridge regression,并推導了SVR的解。但是得到的解是dense的,大部分為非零值。所以,我們定義新的tube regression,使用SVM的推導方法,來最小化regularized tube errors,轉化為對偶形式,得到了sparse的解。最后,我們對介紹過的所有kernel模型做個總結,簡單概述了各自的特點。在實際應用中,我們要根據不同的問題進行合適的模型選擇。
往期回顧
【1】線性支持向量機(LSVM)
【2】對偶支持向量機(DSVM)
【3】核支持向量機(KSVM)
【4】Soft-Margin支持向量機(SSVM)
【5】核邏輯回歸(KLR)
【6】干貨 | 吳恩達deeplearning.ai專項課程歷史文章匯總
【7】簡單的梯度下降算法,你真的懂了嗎?
【8】重磅 | 吳恩達新書《Machine Learning Yearning》最新版分享
【9】力薦 | 臺大林軒田《機器學習基石》資源匯總
您不一定要贊賞,但請點個贊吧
長按二維碼
掃描關注
點擊 |?閱讀原文| 查看更多干貨文章 與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的【SVM最后一课】详解烧脑的Support Vector Regression的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VC在windows下编写用于串行通讯的
- 下一篇: 好的原程序做出好的软件