關於SVM,面試官會怎麼問?

2021-10-06 08:15:10 字數 3224 閱讀 3856

公式較多,希望大家耐心慢慢理清楚

持續準備面試中。。。準備的過程中,慢慢發現,如果死記硬背的話很難,可當推導一遍並且細細研究裡面的緣由的話,面試起來應該什麼都不怕,問什麼問題都可以由公式推導得到結論,不管問什麼,公式擺在那裡,影響這個公式的變數就在那,你問什麼我答什麼。。共勉!!

svm 是一種二類分類模型。它的基本思想是在特徵空間中尋找間隔最大的分離超平面使資料得到高效的二分類,具體來講,有三種情況(不加核函式的話就是個線性模型,加了之後才會公升級為乙個非線性模型):

當訓練資料線性可分時,存在無窮個分離超平面可以將兩類資料正確分開。感知機利用誤分類最小策略,求得分離超平面,不過此時的解有無窮多個。線性可分支援向量機利用間隔最大化求得最優分離超平面,這時,解是唯一的。另一方面,此時的分隔超平面所產生的分類結果是最魯棒的,對未知例項的泛化能力最強。

有兩個目標:

稍微解釋一下,是超平面引數,目標一是從點到面的距離公式化簡來的,具體不展開,目標二就相當於感知機,只是把大於等於0進行縮放變成了大於等於1,為了後面的推導方便。有了兩個目標,寫在一起,就變成了svm的終極目標:

從上面的公式看出,這是乙個有約束條件的最優化問題,用拉格朗日函式來解決。

上式的拉格朗日函式為:

在滿足slater定理的時候,且過程滿足kkt條件的時候,原問題轉換成對偶問題:

先求內部最小值,對和求偏導並令其等於0可得:

將其代入到上式中去可得到

此時需要求解,利用smo(序列最小優化)演算法:

smo演算法的基本思路是每次選擇兩個變數和,選取的兩個變數所對應的樣本之間間隔要盡可能大,因為這樣更新會帶給目標函式值更大的變化。smo演算法之所以高效,是因為僅優化兩個引數的過程實際上僅有乙個約束條件,其中乙個可由另乙個表示,這樣的二次規劃問題具有閉式解。

不管直接在原特徵空間,還是在對映的高維空間,我們都假設樣本是線性可分的。雖然理論上我們總能找到乙個高維對映使資料線性可分,但在實際任務中,尋找乙個合適的核函式核很困難。此外,由於資料通常有雜訊存在,一味追求資料線性可分可能會使模型陷入過擬合,因此,我們放寬對樣本的要求,允許少量樣本分類錯誤。這樣的想法就意味著對目標函式的改變,之前推導的目標函式裡不允許任何錯誤,並且讓間隔最大,現在給之前的目標函式加上乙個誤差,就相當於允許原先的目標出錯,引入鬆弛變數,公式變為:

那麼這個鬆弛變數怎麼計算呢,最開始試圖用0,1損失去計算,但0,1損失函式並不連續,求最值時求導的時候不好求,所以引入合頁損失(hinge loss):

函式圖長這樣:

理解起來就是,原先制約條件是保證所有樣本分類正確,,現在出現錯誤的時候,一定是這個式子不被滿足了,即,衡量一下錯了多少呢?因為左邊一定小於1,那就跟1比較,因為1是邊界,所以用1減去來衡量錯誤了多少,所以目標變為(正確分類的話損失為0,錯誤的話付出代價):

但這個代價需要乙個控制的因子,引入c>0,懲罰引數,即:

可以想象,c越大說明把錯誤放的越大,說明對錯誤的容忍度就小,反之亦然。當c無窮大時,就變成一點錯誤都不能容忍,即變成硬間隔。實際應用時我們要合理選取c,c越小越容易欠擬合,c越大越容易過擬合。

所以軟間隔的目標函式為:

其中:與硬間隔類似:

上式的拉格朗日函式為:

在滿足slater定理的時候,且過程滿足kkt條件的時候,原問題轉換成對偶問題:

先求內部最小值,對,和求偏導並令其等於可得:

將其代入到上式中去可得到,注意被消掉了:

此時需要求解,同樣利用smo(序列最小優化)演算法。

為什麼要引入核函式:

當樣本在原始空間線性不可分時,可將樣本從原始空間對映到乙個更高維的特徵空間,使得樣本在這個特徵空間內線性可分。而引入這樣的對映後,所要求解的對偶問題的求解中,無需求解真正的對映函式,而只需要知道其核函式。核函式的定義:k(x,y)=,即在特徵空間的內積等於它們在原始樣本空間中通過核函式 k 計算的結果。一方面資料變成了高維空間中線性可分的資料,另一方面不需要求解具體的對映函式,只需要給定具體的核函式即可,這樣使得求解的難度大大降低。

用自己的話說就是,在svm不論是硬間隔還是軟間隔在計算過程中,都有x轉置點積x,若x的維度低一點還好算,但當我們想把x從低維對映到高維的時候(讓資料變得線性可分時),這一步計算很困難,等於說在計算時,需要先計算把x對映到高維的的ϕ(x),再計算ϕ(x1)和ϕ(x2)的點積,這一步計算起來開銷很大,難度也很大,此時引入核函式,這兩步的計算便成了一步計算,即只需把兩個x帶入核函式,計算核函式,舉個列子一目了然(來自:從零推導支援向量機):個人對核函式的理解:核函式就是乙個函式,接收兩個變數,這兩個變數是在低維空間中的變數,而核函式求的值等於將兩個低維空間中的向量對映到高維空間後的內積。

驗證正定核啥的,咱也不太懂,給出:

設,是定義在上的對稱函式,如果對任意的,對應的gram矩陣是半正定矩陣,則是正定核

所以不懂,就用人家確定好的常見核函式及其優缺點:

1. 先說硬間隔:

先看kkt條件

支援向量,對偶變數對應的樣本;

證明:由線性支援向量機的kkt 條件可知,。當時,,即

2. 再說軟間隔:

先看kkt條件:

經過smo後,求得,。

對於任意樣本,

若滿足,進一步地,

此處說的是軟間隔:

先看軟間隔的基本型形式:

稍微做一點變化:

這樣寫是為了符合標準的損失函式+正則化的樣子,其中, 第一項稱為經驗風險, 度量了模型對訓練資料的擬合程度; 第二項稱為結構風險, 也稱為正則化項, 度量 了模型自身的複雜度. 正則化項削減了假設空間, 從而 降低過擬合風險. λ 是個可調節的超引數, 用於權衡經驗風險和結構風險.

其中: 這樣的話給上式乘以mc,就會變成上上式了。

這裡說的缺失資料是指缺失某些特徵資料,向量資料不完整。svm 沒有處理缺失值的策略。而 svm 希望樣本在特徵空間中線性可分,所以特徵空間的好壞對svm的效能很重要。缺失特徵資料將影響訓練結果的好壞。

優點:缺點:[1]

看了這篇文章你還不懂svm你就來打我: 

[2]svm 高頻面試題: 

[3]從零推導支援向量機(svm): 

-end-

面試時,你會問面試官哪些問題?

明天又要去參加一次面試。每次面試的時候,面試官都會在最後給面試者一些時間,來問問題。這是個非常好的機會,能按照自己的思路,來了解職位 技 術 企業文化 福利待遇 企業狀況和前景等情況,以彌補前面面試過程中沒有了解到的情況。但較早以前面試準備不太充分,雖然也能地問上一些問題,但掛一漏 萬,每次回來後,...

面試時,你會問面試官哪些問題?

面試時,你會問面試官哪些問題?明天又要去參加一次面試。每次面試的時候,面試官都會在最後給面試者一些時間,來問問題。這是個非常好的機會,能按照自己的思路,來了解職位 技術 企業文化 福利待遇 企業狀況和前景等情況,以彌補前面面試過程中沒有了解到的情況。但較早以前面試準備不太充分,雖然也能地問上一些問題...

面試時,你會問面試官哪些問題?

明天又要去參加一次面試。每次面試的時候,面試官都會在最後給面試者一些時間,來問問題。這是個非常好的機會,能按照自己的思路,來了解職位 技術 企業文化 福利待遇 企業狀況和前景等情況,以彌補前面面試過程中沒有了解到的情況。但較早以前面試準備不太充分,雖然也能地問上一些問題,但掛一漏萬,每次回來後,總覺...