【機器學習系列博客】1. 維度的詛咒

The Curse of Dimensionality

作者:相國大人
E-mail: [email protected]

1. 三個問題

在開始本文的講解之前,我想問大家幾個很簡單的問題,簡單到我們平日工作中似乎根本沒有任何的考慮而當成了理所應當。

在實際工作中,我們似乎都認同這樣一個事實:如果你增加數據提取的特徵維度,或者說如果你的模型需要更高維度的輸入,那麼相應的,你也需要增加你的訓練數據。例如在我們人工提取特徵的時候,如果你結合了多個特徵,最後的求解模型的訓練往往也需要更多的數據。又如在深度神經網絡中,由於輸入維度過高,我們往往需要增加大量的訓練數據,否則模型會“喂不飽”。

我的第一個問題是:爲什麼會“喂不飽”?
這個問題你有仔細認真的想過嗎?或者說,你能給我一個有理有據的解釋嗎?


第二個事實是: 如果你瞭解SVM(支持向量機)的話,你就會知道,SVM是通過核函數,把低緯度樣本映射到高維空間裏的,從而獲得更好的分類效果。然而,於此相反的是,絕大多數深度神經網絡是把高維的輸入映射到低緯度空間,最後把幾百萬,幾千萬維的輸入壓縮成了一個幾百維的向量,卻也獲得了更好的分類效果。這是什麼原因呢?

我的第二個問題是:爲什麼我們不可以仿照SVM,把深度神經網絡的輸入映射到更高偉的空間?
有人說SVM適用於低維度數據,深度神經網絡使用於大規模數據,SVM與深度神經網絡的本質區別又是什麼呢,你能解釋清楚嗎?


第三個事實是:我們見到的幾乎所有的深度神經網絡,最後的分類層往往都是softmax(羅輯思特迴歸適應於多分類的變種)。似乎沒有人把最後的分類器換成帶有核變換的SVM。儘管有一些論文似乎確實是把SVM作爲了後端,但是這個SVM往往也不是帶有核函數的SVM,本質上仍是一個線性分類器,與softmax在性能上差不多。

因此,我的第三個問題:既然深度網絡具有很強的表示能力,SVM具有很強的分類能力,爲什麼我們看到的絕大多數深度網絡後面的分類層都是softmax而不是SVM?

以上三個問題,在看完我們接下來的關於維度詛咒的講解後,相信你會有更好的認識。

2. n維空間的膨脹

理想情況下,我們如果把一些樣本映射到n維空間,這n維空間的n個座標軸是相互正交的(線性無關),那麼我們就需要考察一下,樣本數據在n維空間究竟是如何分佈的呢?

首先,我們不加證明的給出n-1維球面所包圍的體積(n維超球體體積)公式:

Vn=πn2RnΓ(n2+1)=CnRn
其中:
Cn=πkk! when n=2k,k爲整數Cn=22k+1k!πk(2k+1)! when n=2k+1,k爲整數

接下來我們可以用這個公式考察一下n維空間單位超球體(即從原點出發,半徑爲1的超球)的體積:

V0=1V1=2V2=π3.1416V3=4π34.1888V4=π224.9348V5=8π2155.2638V6=π365.1677V7=16π31054.7248V8=π4244.0587

但是當n趨向於無窮大時,VnRn 趨向於0,即隨着維度的增加,單位超球體的體積在縮水(shrink)。

這裏寫圖片描述
關於單位超球體的體積縮水,我們也可以這樣看:

單位n維球面的外切超正方體的邊長爲2,因此體積爲2n ;當維度增加時,n維球面的體積與外切於它的超正方體的體積之比單調減少。


單位超球體體積縮水,與此等價的一段表述是:隨着維度的增加,想要維護同樣的體積,單位空間的半徑必須增大。這樣的一個直觀現象就是:當維度增加時,n維空間的體積極速膨脹,以至於已有的樣本數據變得稀疏了。

我們把這一現象,叫做維度詛咒(The curse of dimensionality)

3. 問題的解答

現有的統計模型,本質上是在n維空間裏檢索一個區域,這個區域的樣本具有相似的性質。然而,到了高維空間後,由於體積膨脹,樣本分佈變得極其稀疏,所有的樣本在各種度量方案上都不在具有相似性,這就阻礙了數據高校的組織與處理。

由上所述相國在這裏問大家的前兩個問題其實是等價的:

  1. 由於高緯度空間膨脹,原來樣本變得稀疏,原來距離相近的一些樣本也都變得距離極遠。此時相似性沒有意義,需要添加數據使得樣本稠密。
  2. SVM通過核函數把低緯度輸入映射到高緯度,取得了更好的分類效果。這是因爲在低維空間下,原有的樣本聚在了一起,線性不可分,因此需要映射到高維度,將樣本分佈拉伸,從而更好的分類。因此,帶有核的SVM處理的數據一般是低緯度的數據,即便通過核函數映射到高維空間也是有限的,需要更多的數據進行訓練。而深度神經網絡的輸入一般是高維的數據。例如一個單詞如果定義爲300維的詞向量,我們把一段1000個單詞的文本作爲一個樣本,這就是一個擁有300×1000=300,000 個entries的矩陣,這麼高維度的空間裏,樣本之間的相似性難以被挖掘,因此我們使用深度網絡對維度進行壓縮,使得樣本分佈更加稠密,便於下游分類器分類。

由此可見,SVM和深度神經網絡一個是“拉”,一個是“壓”,“拉壓”結合,體現了自然哲學的辯證法。使用哪一種方法取決於你對於樣本數據的瞭解情況。

既然如此,第三個問題就好解釋了。深度網絡加上帶有核變換的SVM,這說明前端深度網絡壓縮過度。實際上使用softmax就足夠了。從一些論文中我們也可以看到,有些論文後端使用的是SVM,但是僅僅是簡單的SVM,沒有假如核變換,這個時候其性能與softmax相比差不多。當然,這裏還有其他的一些考慮,讀者可以查閱相關文獻做進一步的閱讀(知乎)


寫這篇博文用了很多時間和精力,如果這篇博文對你有幫助,希望您可以打賞給博主相國大人。哪怕只捐1毛錢,也是一種心意。通過這樣的方式,也可以培養整個行業的知識產權意識。我可以和您建立更多的聯繫,並且在相關領域提供給您更多的資料和技術支持。


賞金將用於拉薩兒童圖書公益募捐
All donation will be used to the library of charity for children in Lhasa.
社會公益,聽IT人的聲音

手機掃一掃,即可:

春天裏,我們的拉薩兒童圖書館,需要大家的幫助

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