文章目錄
- 1、知道SVM相關的各種概念
- 2、知道目標函數、損失函數、正則項的意義
- 2.1、目標函數
- 2.2、損失函數
- 2.3、正則化(添加噪音避免過擬合)
- 3、了解SVM算法原理
- 4、知道SVM的目標函數
- 5、知道SVM的損失函數以及公式
- 6、知道SVM支持向量機的計算過程
- 6.1、推導過程:
- 6.2、推導實例
- 7、了解核函數相關知識
- 8、了解SVM算法的調參技巧
1、知道SVM相關的各種概念
線性可分:一條直線可以分割開兩種類別
間隔:分割線兩邊直線之間的間隔
支持向量:分割線兩邊直線上的點
非線性支持向量機:在高維空間形成分割超平面映射到低維空間形成分割界限。
分割超平面:兩個集合上的距離最近的兩個點的垂直平分面。
2、知道目標函數、損失函數、正則項的意義
弄清楚目標函數、損失函數、正則項這幾個概念:
2.1、目標函數
目標函數:指所關心的目標與相關的因素的函數關系。舉個例子,假如我們想要預測公司樓下手抓餅店明天能賣多少張手抓餅,已知過去10天每天賣多少,以及每天的天氣情況,是否有節假日,和手抓餅店老板和老板娘的感情狀況,這幾項數據都統計好了。對應到目標函數的解釋就是:
關心的目標是明天能賣多少手抓餅,未知量。
相關因素是每天數量,天氣情況,節假日,老板老板娘感情狀況,已知量。
目標函數:按照一定的思路把這些已知條件利用起來,去求解未知量的函數關系式。
目標函數f(x)就是用設計變量來表示的所追求的目標形式,所以目標函數就是設計變量的函數,是一個標量。(簡單的說就是函數表達式)是指所關心的目標(某一變量)與相關的因素(某些變量)的函數關系。
2.2、損失函數
也叫代價函數,是同一個東西。是用來評估模型的預測值f(x)與真實值Y的差距,它是一個非負實值函數。稍等一下,為什么是非負的呢?舉個例子:比如上面說的手抓餅,模型預測第一天是30,真實值是29,差距30-29是1;預測第二天是35,真實值是36,差距35-36是-1;如果把它們直接加起來就是1-1 = 0,難到沒有差距?非常明顯是錯誤的,差距是0人家還以為都預測對了呢,其實都預測錯了,所以不能有負值,可以用絕對值,平方或者一些其它的數學運算。
常用的損失函數有:
LR邏輯回歸:log對數損失函數 參考
最小二乘法:平方損失函數 參考:
Adaboost:指數損失函數 (后面會專門介紹這個算法)
好的,現在我們再來看一下目標函數通常的定義形式:
Obj(Θ)=L(Θ)+Ω(Θ)
中文翻譯一下是 :
目標函數 = 損失函數 + 正則項
目標函數和損失函數我們都理解了,那么正則項是干什么的呢?
2.3、正則化(添加噪音避免過擬合)
回到我們前面舉的那個例子,如果第五天有個人中彩票了然后興奮的來買了1百張手抓餅,比幾天的量都多,很明顯這個情況會影響我們的模型訓練,這個情況就是過擬合。而加入正則項的目的就是使模型避免過擬合。
常用的有L1,L2正則化,很熟悉對不對,前面講過的線性代數中的L1,L2范數有些類似。其實本質是一樣的,在機器學習里叫正則化,線性代數叫范數,統計學里叫懲罰項。
機器學習里:L1使用的是絕對值距離,也叫曼哈頓距離,L2使用的是平方距離,也叫做歐式(Euclidean)距離
線性代數:L1 范數計算的是向量所有元素絕對值的和,L2 范數計算的是通常意義上的向量長度
目標函數,損失函數和正則項的作用,優化損失函數使模型避免欠擬合使損失函數最小化,優化正則項使模型避免過擬合。
3、了解SVM算法原理
即先求每個點到每條直線的最小值,這樣每條直線對應一個最小距離值,再從這組距離值中找出最大值,這個最大值對應的直線也就是我們需要的分割超平面。
w為對應系數矩陣(A,B),Φ(x)代表的是變量矩陣(x,y)
y(xi)=0:代表點在平面上。>0:代表點在平面的上方。
y(xi)>0:代表的是在分隔超平面的一側,yi=1;
4、知道SVM的目標函數
知道目標函數(分割超平面)的表達式以及對應的含義:某點到某分隔超平面的距離(需要找到最優的分隔超平面:即先找到每個點到每條直線的最小距離,之后得到每條直線對應的最小距離組成一個數組,再找出這組數中的最大值,對應的分隔超平面即為所求的最優分隔超平面(所以求目標函數的過程才是一個先求最小值而后求最大值的步驟,知道最小和最大代表的含義))
5、知道SVM的損失函數以及公式
SVM:分對了損失值為0,分錯了損失值為距離支持向量所在的直線的距離。
6、知道SVM支持向量機的計算過程
- 先求出點到直線距離的一般表示形式。
- 由于是求所有點到直線的距離所以需要除以一個w來做歸一化處理。
- 由于一系列的約束條件,轉化為了用拉格朗日乘子法優化的問題(求極值的問題)
- 利用拉格朗日的一些性質來轉化,最終得到一個最簡的式子。
- 之后將對應的點代入這個式子就能求出一般表達式中對應的一個參數,進而得到整個式子。
6.1、推導過程:
通過縮放w,b(即||w||)總是可以使得yiy(xi)>=1得到滿足。即此處多了一個限制條件,根據這個限制條件來進一步轉化目標函數。
由約束條件yiy(xi)>=1,得到原目標函數可以轉化為新目標函數
線性可分SVM的目標函數
將目標函數轉化為拉格朗日乘子法來求。
一般問題的優化的解法(即求極值的問題):拉格朗日乘子法
拉格朗日乘子法是一種經典的求解條件極值的解析方法,可將所有約束的優化模型問題轉化為無約束極值問題的求解。
求極大極小問題,先求極小值即先對w,b求導數。
得到上面兩個條件后代入拉格朗日函數得到下面的式子
由前面得到得條件接著求解
原函數求的是極小極大值而拉格朗日對偶函數求的是極大極小值(參考上圖),所以需要先求該式子的最小值,這里通過添加負號做出對應的轉換。
求的最小值對應的α值
根據α值得到下面的值
6.2、推導實例
注意計算這個最小值的過程(求一個一元二次方程的最小值的過程)
注意這個結論
7、了解核函數相關知識
核函數思想:將不可分的輸入數據映射到核函數空間中來進行分割。
知道核函數為什么被使用:減小運算的復雜度。
知道這幾個核函數:多項核函數、高斯核函數RBF、Sigmoid核函數。
知道為什么需要核函數:將原始輸入空間映射到新的特征空間從而使得原本線性不可分的樣本在核空間中可分。
8、了解SVM算法的調參技巧
知道調參中常用的參數以及對應的參數的含義。
詳情參考:https://blog.csdn.net/qq_16633405/article/details/70243030