前面一篇介紹了svm的基本原理和**實現。其中提到了原始的svm對資料對好要線性可分的假設太嚴格了,很多資料在一定程度上都不是線性可分的。那麼這篇我們就要好好說說svm對於線性不可分的情況是怎麼處理的。
線性不可分簡單來說就是你乙個資料集不可以通過乙個線性分類器(直線、平面)來實現分類。這樣子的資料集在實際應用中是很常見的,例如:人臉影象、文字文件等。下面的幾個資料都是線性不可分的:
我們不可以使用乙個直線或者乙個直面把上面影象中的兩類資料很好的劃分。這就是線性不可分。
現在流行的解決線性不可分的方法就是使用核函式(kernel)。這個技術加在任何分類演算法上幾乎都可以提高一些效果,不過也給程式帶來了一些不便(例如多了模型的選擇和引數的調節)。
核函式解決線性不可分的本質思想就是把原始的樣本通過核函式對映到高維空間中,讓樣本在高維特徵空間中是線性可分的,然後再使用常見的線性分類器,如svm就可以很好的分類了。
那麼什麼是「通過核函式對映到高維空間」呢?針對上面兩個線性不可分的資料例子我們說一下各自的對映過程,如下圖:
說明:圖中開口向上的二次拋物線就是核函式,正類樣本(紅色)對映到該拋物線中得到的函式值都是小於0的,負類樣本(藍色)對映得到的函式值都是大於0的,這個時候就線性可分了。那麼為什麼說對映之後就是高維空間了,解釋如下: (
上述核函式是拋物線,函式模型為
)下面是另外乙個例子的對映到高維空間的圖示。
可以發現其中要計算兩個樣本特徵向量之間的內積。核函式就是從這裡入手!
根據這個切入點,有兩種思路:
1)將輸入的空間中樣本對映到新的空間中,在新的空間中求內積;
2)找到乙個核函式,它不需要將輸入空間中的樣本對映到新的空間中去,在輸入空間中就可以直接計算出內積了。
我們先看第一種,乙個二維非線性空間要展開變成線性的,就會成為5維的,然後問題就變得線性可分。這種轉化帶來的問題就是維度變高了,後續的計算會變得非常複雜。對於學習期而言就是特徵空間維數可能最終無法計算,而他的泛化能力會隨著位數的增長而大大降低,最終可能會使得內積無法求出,後果也就失去了這種轉化的優勢。
第二種方法,它其實是對輸入空間向高維空間的一種隱式對映(注意,這也是低維空間到高維空間的一種對映)。他不需要給出那個對映,而在輸入空間中就可以計算內積,這就是我們這節要講的核函式方法。
核函式k,對於所有的x1,x2滿足:
再說的直接一點,核函式可以簡化對映空間中的內積運算,而我們的svm演算法中最需要計算的地方恰恰就是特徵向量之間的內積演算法,這也是我們剛才說的切入點。
引入了核函式之後,我們的目標函式就成為了:
其中的內積直接替換成了核函式。其實注意觀察這兩個方式就可以發現:顯式對映就是先對映到高維空間,再求內積,此時往往由於過於高維,使得無法求得內積;隱式對映是先在核函式中求內積,然後再到高維,這個時候內積就是在輸入空間中求的,不怕維數災難了。
多項式核函式:
線性核函式:
高斯核函式等。
理解SVM(二) 線性不可分的情況
前面一篇介紹了svm的基本原理和 實現。其中提到了原始的svm對資料對好要線性可分的假設太嚴格了,很多資料在一定程度上都不是線性可分的。那麼這篇我們就要好好說說svm對於線性不可分的情況是怎麼處理的。線性不可分簡單來說就是你乙個資料集不可以通過乙個線性分類器 直線 平面 來實現分類。這樣子的資料集在...
理解線性可分和線性不可分與機器學習什麼叫線性模型
首先大家不要直觀理解線性可分就一定要是一條直線,線性可分指的是可以用乙個線性函式將兩類樣本分開 注意這裡是線性函式 比如在二維空間中的直線,三位空間中的平面以及高維空間中的線性函式。這裡指的可分是沒有一絲誤差的分開,線性不可分指的就是部分樣本用線性分類面 這個看清楚 劃分時會產生分類錯誤的現象。這裡...
BP神經網路,從線性不可分到非線性分類的完美跨越
神經網路全稱為人工神經網路 ann 它 於人類對自身大腦認知能力的研究與模仿,神經網路的理論與相關技術就是為了實現對人類思維的認知。因此,神經網路它是一門涉及到神經生理科學 數理科學 資訊科學以及電腦科學等學科的綜合交叉學科。它是由大量類似於生物神經元的處理單元相互連線而成的非線性複雜網路系統。它是...