百面機器學習 #3 經典算法:01-3 核函數支撐向量機SVM

1.3 非線性SVM與核技巧

  • 非線性問題往往不好求解,所以希望能用解線性分類問題的方法解決這個問題。所採取的方法是進行一個非線性變換,將非線性問題變換爲線性問題,通過解變換後的線性問題的方法求解原來的非線性問題。
  • 用線性分類方法求解非線性分類問題分爲兩步:
    • 首先使用一個變換將原空間的數據映射到新空間;
    • 然後在新空間裏用線性分類學習方法從訓練數據中學習分類模型。

1.3.1 核函數

  • 通過一個非線性變換將輸入空間X\mathcal X(歐氏空間Rn\mathrm R^n的子集或離散集合)對應於一個特徵空間(希爾伯特空間H\mathcal H)。如果存在這樣的映射
    ϕ(x):XH \phi(x): \mathcal X \rightarrow \mathcal H
    使得對所有的x,zXx,z\in\mathcal X,函數KK滿足條件
    K(x,z)=ϕ(x)ϕ(z) K(x,z)=\phi(x)\cdot\phi(z)
    則稱K(x,z)K(x,z)核函數ϕ(x)\phi(x)映射函數,式中KK爲映射函數的的內積。
  • 核技巧的想法是,在學習與預測中只定義核函數K(x,z)K(x,z),而不顯式地定義映射函數ϕ\phi,因爲前者直接計算相對更簡單。學習是隱式地在特徵空間進行的,不需要顯式地定義特徵空間和映射函數.
  • 給定核函數,即使對應同一高維特徵空間,也可取不同的映射函數。即核函數和映射函數是一對多的關係。

1.3.2 核技巧在支持向量機中的應用

  • 在線性支持向量機的對偶問題中,無論是目標函數還是決策函數(分離超平面)都只涉及輸入實例與實例之間的內積
    • 對偶問題的目標函數
      12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi=12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i} = \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}K(x_i,x_j)-\sum_{i=1}^{N} \alpha_{i}
    • 分類決策函數
      f(x)=sign(i=1Nαiyi(xxi)+b)=sign(i=1NαiyiK(x,xi)+b) f(x)=\operatorname{sign}\left(\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left(x \cdot x_{i}\right)+b^{*}\right) =\operatorname{sign}\left(\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}K(x,x_i)+b^{*}\right)

1.3.3 常用核函數

  • 多項式核函數(polynomial kernel function)
    K(x,z)=(xz+1)p K(x,z)=(x\cdot z+1)^p
    對應的支持向量機是一個p 次多項式分類器。分類決策函數成爲
    f(x)=sign(i=1Nαiyi(xix+1)p+b)f(x)=\operatorname{sign}\left(\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left(x_{i} \cdot x+1\right)^{p}+b^{*}\right)
  • 高斯核函數(Gaussian kernel function)
    K(x,z)=exp(xz22σ2) K(x,z)=\exp\left(-\frac{||x-z||^2}{2\sigma^2}\right)
    對應的支持向量機是高斯徑向基函數(radial basis function)分類器。
    分類決策函數成爲
    f(x)=sign(i=1Nαiyiexp(xxi22σ2)+b)f(x)=\operatorname{sign}\left(\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} \exp \left(-\frac{\left\|x-x_{i}\right\|^{2}}{2 \sigma^{2}}\right)+b^{*}\right)

1.4 其他問題

1.4.1 是否存在一組參數使SVM訓練誤差爲0:是

分類決策函數爲
f(x)=sign(i=1NαiyiK(x,xi)+b)f(x)=\operatorname{sign}\left(\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} K(x,x_i)+b^{*}\right)
這裏我們先只考慮不取sign之前的預測結果y^(x)=i=1NαiyiK(x,xi)+b\hat y(x)=\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} K(x,x_i)+b^{*}

使用高斯核的SVM,同時我們對任意ii,固定αi=1\alpha_i=1以及b=0b=0,只保留高斯分佈的參數σ\sigma,得到

y^(x)=i=1Nαiyiexp(xxi22σ2)+b=i=1Nyiexp(xxi22σ2) \hat y(x)=\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} \exp \left(-\frac{\left\|x-x_{i}\right\|^{2}}{2 \sigma^{2}}\right)+b^{*} =\sum_{i=1}^{N} y_{i} \exp \left(-\frac{\left\|x-x_{i}\right\|^{2}}{2 \sigma^{2}}\right)
對任意一個訓練樣本xjx_j代入有
y^(xj)yj=i=1Nsyiexp(xjxi22σ2)yj=i=1,ijNyiexp(xjxi22σ2) \hat y(x_j)-y_j=\sum_{i=1}^{N_{s}} y_{i} \exp \left(-\frac{\left\|x_j-x_{i}\right\|^{2}}{2 \sigma^{2}}\right)-y_j =\sum_{i=1,i\not=j}^{N} y_{i} \exp \left(-\frac{\left\|x_j-x_{i}\right\|^{2}}{2 \sigma^{2}}\right)
y^(xj)yj=i=1,ijNyiexp(xjxi22σ2)i=1,ijNyiexp(xjxi22σ2)=i=1,ijNexp(xjxi22σ2) \begin{aligned} \|\hat y(x_j)-y_j\| &=\left\|\sum_{i=1,i\not=j}^{N} y_{i} \exp \left(-\frac{\left\|x_j-x_{i}\right\|^{2}}{2 \sigma^{2}}\right)\right\| \\ &\le\sum_{i=1,i\not=j}^{N} \left\|y_{i} \exp \left(-\frac{\left\|x_j-x_{i}\right\|^{2}}{2 \sigma^{2}}\right)\right\|\\ &=\sum_{i=1,i\not=j}^{N} \exp \left(-\frac{\left\|x_j-x_{i}\right\|^{2}}{2 \sigma^{2}}\right) \end{aligned}
若給定訓練集中不存在在同一位置的兩個點,即我們可以認爲xixjϵ\|x_i-x_j\|\ge \epsilon,其中ϵ\epsilon是一個非0的數。
ϵ22σ2=logN\frac{\epsilon^{2}}{2 \sigma^{2}}=\log N \Rightarrow
i=1,ijNexp(xjxi22σ2)i=1,ijNexp(ϵ22σ2)=i=1,ijNexp(logN)=i=1,ijN1N=N1N<1 \begin{aligned} \sum_{i=1,i\not=j}^{N} \exp \left(-\frac{\left\|x_j-x_{i}\right\|^{2}}{2 \sigma^{2}}\right) &\le \sum_{i=1,i\not=j}^{N} \exp \left(-\frac{\epsilon^{2}}{2 \sigma^{2}}\right)\\ &=\sum_{i=1,i\not=j}^{N} \exp \left(-\log N\right)\\ &=\sum_{i=1,i\not=j}^{N}\frac{1}{N}=\frac{N-1}{N}<1 \end{aligned}
所以,對於任意一個樣本xjx_j,它的預測結果y^(xj)\hat y(x_j)和真實結果yjy_j的距離小於1,即當真實標籤yj=1y_j=1y^(xj)>0,sign(y^(xj))=1\hat y(x_j)>0,\operatorname{sign}(\hat y(x_j))=1,即預測正確。同理真實標籤yj=1y_j=-1也預測正確。
綜上,我們可以找到這樣一組αi,b,σ2\alpha_i,b,\sigma^2得到訓練誤差爲0.
但是這組參數不一定是SVM的解。

1.4.2 訓練誤差爲0的SVM分類器一定存在嗎:是

SVM的解要求yjy^(xj)=yj(wxj+b)1y_j\cdot\hat y(x_j)=y_j(w\cdot x_j +b)\ge1,這比前述的預測正確的條件更強。
我們仍然固定b=0b=0
yjy^(xj)=yji=1NαiyiK(xj,xi)=i=1,ijNαiyjyiK(xj,xi)+αjyjyjK(xj,xj)=i=1,ijNαiyjyiK(xj,xi)+αj \begin{aligned} y_j\cdot\hat y(x_j)&=y_j\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} K(x_j,x_i)\\ &=\sum_{i=1,i\not=j}^{N} \alpha_{i}^{*}y_j y_{i} K(x_j,x_i)+\alpha_{j}^{*}y_j y_{j} K(x_j,x_j)\\ &=\sum_{i=1,i\not=j}^{N} \alpha_{i}^{*}y_j y_{i} K(x_j,x_i)+\alpha_{j} \end{aligned}
取很大的αj\alpha_j,同時很小的σ\sigma是的核映射項很小,則很大的、占主導地位的項αj\alpha_j一定大於1,滿足SVM的解的約束。
因此,存在SVM最優解分類誤差爲0.

1.4.3 加入鬆弛變量的SVM的訓練誤差可以爲0嗎:不一定

使用SMO算法訓練的加入鬆弛變量的SVM不一定能得到訓練誤差爲0的模型。
當鬆弛參數CC選取較小的值,(正則項)12w2\frac{1}{2}\|w\|^2將佔據優化目標函數的較大比重。這樣,一個帶有訓練誤差、但參數較小的點將成爲更優的結果。
一個簡單的特例是,當C取0時,w也取0即可達到優化目標,但是顯然此時我們的訓練誤差不一定能達到0。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章