1. 程式人生 > >支持向量機——內核

支持向量機——內核

mage 技術分享 選擇 想要 線性 情況下 是什麽 的區別 分享

對於非線性“Decision Boundary”

技術分享圖片

如果用傳統的多項式回歸,有

\[{h_\theta }\left( x \right) = {\theta _0} + {\theta _1}{x_1} + {\theta _2}{x_2} + {\theta _3}{x_1}{x_2} + {\theta _4}x_1^2 + {\theta _5}x_2^2 + \cdot \cdot \cdot \]

並且,想要

\[{h_\theta }\left( x \right) = \left\{ {\begin{array}{*{20}{c}}
{\begin{array}{*{20}{c}}
1&{{\theta _0} + {\theta _1}{x_1} + \cdot \cdot \cdot \ge 0}
\end{array}}\\
{\begin{array}{*{20}{c}}
0&{{\theta _0} + {\theta _1}{x_1} + \cdot \cdot \cdot < 0}
\end{array}}
\end{array}} \right.\]

這時,把hθ(x)寫成如下形式

\[\begin{array}{l}
{h_\theta }\left( x \right) = {\theta _0} + {\theta _1}{f_1} + {\theta _2}{f_2} + {\theta _3}{f_3} + {\theta _4}{f_4} + {\theta _5}{f_5} + \cdot \cdot \cdot \\
{f_1} = {x_1},{f_2} = {x_2},{f_3} = {x_1}{x_2},{f_4} = x_1^2,{f_5} = x_2^2,...
\end{array}\]

那麽問題來了,有沒有與這些f不同或比現在這些f更好的選擇呢?(比“相乘”、“平方”等更好或不同)


內核

這裏為了方便理解,在給定x的情況下,只計算三個新的特征。

這三個特征是根據三個給定的“landmarks”:l(1),l(2),l(3)計算出來的(“landmarks”如何確定稍後再說)。

技術分享圖片

這裏假設x只有兩個特征x1和x2(這裏忽略x0=1)

給出x後,分別計算x與l(1),l(2),l(3)的“similarity”

\[\begin{array}{l}
{f_1} = similarity\left( {x,{l^{\left( 1 \right)}}} \right) = \exp \left( { - \frac{{{{\left\| {x - {l^{\left( 1 \right)}}} \right\|}^2}}}{{2{\sigma ^2}}}} \right)\\
{f_2} = similarity\left( {x,{l^{\left( 2 \right)}}} \right) = \exp \left( { - \frac{{{{\left\| {x - {l^{\left( 2 \right)}}} \right\|}^2}}}{{2{\sigma ^2}}}} \right)\\
{f_3} = similarity\left( {x,{l^{\left( 3 \right)}}} \right) = \exp \left( { - \frac{{{{\left\| {x - {l^{\left( 3 \right)}}} \right\|}^2}}}{{2{\sigma ^2}}}} \right)
\end{array}\]

這裏的“similarity”函數就是“內核”,這種內核又稱為“高斯內核”。

這個內核函數的作用是什麽?

對於

\[{f_1} = similarity\left( {x,{l^{\left( 1 \right)}}} \right) = \exp \left( { - \frac{{{{\left\| {x - {l^{\left( 1 \right)}}} \right\|}^2}}}{{2{\sigma ^2}}}} \right) = \exp \left( { - \frac{{\sum\limits_{j = 1}^n {{{\left( {{x_j} - l_j^{\left( 1 \right)}} \right)}^2}} }}{{2{\sigma ^2}}}} \right)\]

當x≈l(1)時:

\[{f_1} \approx \exp \left( { - \frac{{{0^2}}}{{2{\sigma ^2}}}} \right) \approx 1\]

當x距離l(1)比較遠時

\[{f_1} \approx \exp \left( { - \frac{{l\arg enumbe{r^2}}}{{2{\sigma ^2}}}} \right) \approx 0\]

同理,可以得到x與經過“內核”函數後的結果。

用圖比較直觀的理解

假設

\[\begin{array}{l}
{l^{\left( 1 \right)}} = \left[ {\begin{array}{*{20}{c}}
3\\
5
\end{array}} \right]\\
{f_1} = \exp \left( { - \frac{{{{\left\| {x - {l^{\left( 1 \right)}}} \right\|}^2}}}{{2{\sigma ^2}}}} \right)
\end{array}\]

當σ2=1時

技術分享圖片

內核函數的示意圖如圖中上半部分,可以看出當x距離l(1)越近,f1越接近於1,越遠越接近於0.

而對於不同的σ來說,圖形的形狀不相同

當σ2=0.5時

技術分享圖片

當σ2=3時

技術分享圖片

它們的區別在於當x距離l距離變化時f的變化“快慢”不同。


舉具體例子

技術分享圖片

給出x;給出l(1),l(2),l(3)

支持向量機會計算f1,f2,f3

現假設經過訓練後得到的參數值θ0=-0.5,θ1=1,θ2=1,θ3=0。

則當x距離l(1)較近時(圖中紅點)f1≈1,f2≈0,f3≈0,hθ(x)≈0.5≥0,則預測結果為1

同理當為圖中綠點時,預測結果為0;黃點時,預測結果為1.

最終支持向量機會得到如圖黑色曲線那樣的“Decision Boundary”。


如何選定l?

支持向量機會選取所有的樣本作為l,也就是如果有m個樣本,既有m個l(1),...,l(m)

經過處理後,支持向量機現在的任務是

\[\underbrace {\min }_\theta \left\{ {C\left[ {\sum\limits_{i = 1}^m {{y^{\left( i \right)}}{\mathop{\rm Cos}\nolimits} {t_1}\left( {{\theta ^T}{f^{\left( i \right)}}} \right) + \left( {1 - {y^{\left( i \right)}}} \right){\mathop{\rm Cos}\nolimits} {t_0}\left( {{\theta ^T}{f^{\left( i \right)}}} \right)} } \right] + \frac{1}{2}\sum\limits_{j = 1}^n {\theta _j^2} } \right\}\]


SVM的參數選擇

對於C(相當於1/λ):

  • 比較大的C,會出現“低偏差”,“高方差”。這會陷入“過擬合”情況;
  • 比較小的C,會出現“高偏差”,“低方差”,這會陷入“欠擬合”情況。

對於σ2

比較大的σ2,特征f會變化的比較“順滑”,會出現“高偏差”,“低方差”,這會陷入“欠擬合”情況;

比較小的σ2,特征f會變化的比較“快速”,會出現“低偏差”,“高方差”。這會陷入“過擬合”情況。


內核選擇

除了高斯內核,還有“線性內核”也就是沒有內核(θTx)。

支持向量機——內核