感知機模型
SVM模型
- 目標:尋找具有最大間隔的超平面,從而將 m 個樣本分類。
- m 個樣本:
- 每個樣本具有n維特徵 :
x(0)i,x(1)i,...,x(n)i
- 每個樣本具有一個輸出:
y - E.g:
(x(0)1,x(1)1,...,x(n)1,y)
- 每個樣本具有一個輸出:
- 超平面模型:
θ0+θ1x1+θ2x2+...+θnxn=0 - 一般來說會假定
x0=1 ,超平面模型變成:θ0x0+θ1x1+θ2x2+...+θnxn=0
對於任意樣本點
(xi,yi) , 滿足約束條件:yi(wTxi+b)≥0 - 壞點:不滿足約束條件的點。對於壞點,添加懲罰項,改變優化目標, 添加 loss function:
min12||ω||2+C∑l0/1(yi(wTxi+b)−1)
- 壞點:不滿足約束條件的點。對於壞點,添加懲罰項,改變優化目標, 添加 loss function:
經典SVM:將上式中第二部分,
,替換爲C∑l0/1(yi(wTxi+b)−1) max(0,1−yi(ωxi+b)) ,就有了SVM模型:
min12||ω||2+max(0,1−yi(ωxi+b)) - SVM模型中以預測值與真實測量值的誤差
1−yi(ωxi+b) 作爲優化目標。 - SVM模型通過學習
ω 和b 使得誤差最小。
- SVM模型中以預測值與真實測量值的誤差
二分類SVM:
二分類模型:
{ωTxi+b≥0→y=+1ωTxi+b<0→y=−1 通過定義margin
Δ 來進行優化二分類SVM:{ωTxi+b≥Δ→y=+1ωTxi+b<Δ→y=−1
: 當樣本不滿足該條件時,就會產生lossyi(ωTxi+b)≥Δ 定義loss function:
max(0,Δ−yi(ωTxi+b)) loss function 滿足約束:
yi(ωTxi+b)≤0 當我們對loss function 加上正則項:
C2||ω||2 , 就得到了二分類SVM的數學模型:C2||ω||2+max(0,Δ−yi(ωTxi+b)) 對上面的SVM模型使用梯度下降進行優化就可以得到
ω ,b 。
SMO算法
背景:使用SVM算法,不但計算量很大而且效率很低,SMO算法將SVM拆分成求解一系列小問題,提高了效率並降低了計算量。
目標:找出一系列
α , 通過α 求出ω ,b 原理:爲了確保約束條件(
∑αy(i)=0 )成立, 每次循環會找出一對α ,通過增大其中一個並且減小另一個進行優化算法模型:
W(α)=∑i=1n−12∑i=1n∑j=1nαiαjyiyjxTixj - 約束條件:
{∑ni=1αiyi=00≤αi≤C - 目標:在滿足約束條件的情況下求
maxW(α)
- where
α=[α1,α2,...,αn]
- where
- 由於
α ,y 要滿足約束條件∑ni=1αiyi=0 , 所以將α 成對進行訓練,即選擇α1,α2 , 固定其餘α 。 - 推導過程如下:
α1y1+α2y2=−∑i=3nαiyi=ξ ξ爲實數 將
α1=(ξ−α2y2)y1 代入W(α) 中得到:W(α2)=W((ξ−α2y2)y1,α2,α3,...,αn)⟹W(α2)=aα22+bα2+C 通過計算
∂W∂α2取得滿足條件H≥α2≥L的估計值α∗2 當
y1,y2 同號時{L=max(0,α1+α2−C)H=min(C,α2+α1) 當
y1,y2 異號時{L=max(0,α2−α1)H=min(C,C+α2−α1) - 約束條件:
核函數:
- 目的:將低緯度中線性不可分的數據映射到高緯度,從而實現線性可分。
- 分類:Sigmoid核,線性核,多項式核,高斯核……
方法:通過計算給定數據的內積,將非線性數據從低緯度的輸入空間映射到高緯度的特徵空間
- 高斯核:
K(x1,x2)=exp(−||x1−x2||22σ2)
σ : 達到率,即函數值跌落到 0 的速度參數。在梯度計算中,作爲步長。 - 多項式核:
K(x1,x2)=(⟨x1,x2⟩+R)d
⟨x1,x2⟩ :x1,x2 的內積
R: 預先指定的實數
d: 低緯度空間的維數
- 高斯核: