1. 程式人生 > >深度學習與支援向量機的分類原理異同

深度學習與支援向量機的分類原理異同

深度學習利用神經網路對資料進行分類,我們來看看其分類的本質是什麼。

下面我們來看一個2層的神經網路中的第1層:


輸入a可以看作三維空間的一個點,輸出z可以看作兩維空間的點。從輸入a到輸出z,首先輸入向量a左乘了一個變換矩陣w,經歷了座標變換被壓縮了一維,然後再進行了一個sigmoid函式對映,實質上是對二維空間進行了扭曲(非線性化)。


然後再進行一個二維座標變換和sigmoid對映,最後輸出結果。

很明顯,就是線性變換-非線性化-線性變換-非線性化-結果。

其實這個例子不太恰當,我更喜歡低維的向量對映到高維空間中,這樣更好理解。

比如一個二維向量,通過三維變換(當然第z維可以任選,因為二維向量的三維座標為0)對映到高維空間中,通過啟用函式(如tanh,sigmoid)非線性化後,即可用平面或超平面對資料進行線性分類。

這個線性的超平面通過非線性化和座標變換的逆變換後回到正交標準座標系中,會變成一個非線性化的超平面,直接上圖:


上圖是在標準正交座標系下的曲線與分類介面,這個座標系經過線性變換與啟用函式非線性變換後,變成如下座標系:


在這個非線性座標系上,曲線反而能被線性平面分開了。線性分介面再逆變換回去,就變成上上圖的非線性分介面。

本質上,深度學習是將要分類的物件經過多次線性變換,對映到高維和低維空間後再進行非線性變換,把空間扭成麻花後,正好可以用一個線性超平面把不能在標準正交座標系中線性分類的資料,進行了線性分類。在分類時,不用把這個線性分類平面變換回標準正交座標系,直接把需要分類的資料變換到麻花座標系中即可。

線性變換的空間維數即每一層的神經元個數。我感性上認為從低維對映到高維空間後更容易分類。

多說一句,即使做一萬個線性變換,不能線性分類的資料還是不能分,一定要有啟用函式進行非線性變換後,資料才有可能進行線性分類。

對於支援向量機,首先說一個小故事:

華山腳下的1個小酒館裡、1個大俠正在喝酒!桌上的花生和大棗按照【胡亂分佈】著。。。突然大俠猛1拍桌子、花生和大棗騰空而起、但是根據亞里士多德【重的東東落的快輕的東東落的慢】原理,大俠用內力把桌布張成一個平面在空中1放、就把花生和大棗分開啦!!:):)
作者:米牛牛 來源:知乎連結:https://www.zhihu.com/question/21094489/answer/235482954基本就是這麼個意思。對於低維度空間上的資料,把它對映到高維度空間中,然後再用線性超平面進行分類。注意只能是低維度空間對映到高維度空間,而且是通過核函式一步進行非線性對映,而不是像深度學習中那樣分為兩步。舉個非線性對映的例子:
就比如上面那個情況,我們可以人為計算出這種對映,比如一個樣本點是用座標表示的(x1,x2),它有個類標籤,假設為1,那麼把這個點對映到三維中變成
,對每個點我都這麼去對映。
參考資料

因此,支援向量機只能從低維對映到高維,通過非線性對映後,對資料進行線性分類。

還有一個不同點,支援向量機只能二分類,而深度學習可以多分類。這是由它們的分類原理決定的。支援向量機是使分類超平面離兩個最近的不同類的點的距離相等,來確定超平面的,而深度學習是計算需要分類的資料與分類類別的相似度來實現分類的。

深度學習中的某一個類別比如貓,包含了訓練資料中所有貓的特徵,站立,躺臥,行走,蜷縮等,但它為什麼能判斷某一個特定影象中的貓呢,這和啟用函式有關。啟用函式不僅提供非線性,而且在判別的過程中,如果影象中是站立的貓,那麼分類模型中躺臥、蜷縮等特徵是不被啟用的,只有站立的特徵才啟用。站立特徵匹配度很高的時候,輸出的相似度資料也很高。至於具體怎麼實現的,我目前也沒琢磨明白。

結論:

深度學習與支援向量機的分類原理相同之處:都是通過非線性矩陣變換後,用線性超平面對資料進行分類。

不同之處:深度學習可以向低維和高維空間進行變換,而線性變換和非線性變換是分兩步走的,支援向量機只能由低維向高維對映,其變換是通過核函式一步完成的。深度學習可以多分類,支援向量機只能二分類。