回顧我們之前的問題:
之前我們說到,假設我們了
那麼就得到了這個分類面
這裏我們可以看出,新的數據點只需與那些
先說一下直觀理解吧(不一定正確,僅作直觀理解),核函數就是把低維特徵映射到高維,從而使得在低維情況下線性不可分的數據在高維情況下有可能能夠找到那個分類面
特定情況下,如果我們需要,可以將一個一維特徵加以變換成多維
比如說要擬合曲線的時候,我們可以用一個自變量的多次方程去擬合
比如在一個迴歸問題中,觀察到
就可以用如下變換,將
如果有原來變量的內積,如
這裏只是簡單列舉一個形式化表出的例子,沒有直接關聯原問題,但是這裏可以理解,我們可以通過這個和函數,讓SVM學習更高維度的特徵
這裏還產成了一個問題:是不是每一個核函數都能表出爲類似
ϕ(x)Tϕ(z) 的形式呢?其實我初步的思考爲,只有在原低維特徵向量有做內積的運算時,我們這樣構造和轉化會方便
(好像有點廢話,因爲後面看到高斯核的時候在想是不是也能轉化…不過是可以轉化的,高斯核將低維特徵轉化成了無線維的特徵)
Andrew 在課上講了這樣一句話:每當你在原問題中遇到
<x,z> ,也就是內積的形式時,你都可以把它轉化成K(x,z) ,當你在做這個轉化的時候,你就將低維特徵映射到了高維。嗯,學到後面就清晰了,這個就是核函數有效性的問題
這裏說明一個核函數減少計算複雜度的例子:
假設,
不要疑惑,這裏的
ϕ(x) 並不是上文的,而是如下:
ifn=3:
ϕ(x)=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢x1x1x1x2...x3x3⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥
顯然,
顯然,
但是如果我們直接計算