在機器學(xué)習(xí)領(lǐng)域,處理高維向量不僅常見,而且至關(guān)重要。以流行的模型如Transformers架構(gòu)為例,比如BERT模型就使用768維向量來編碼它處理的輸入序列的令牌,以更好地捕捉數(shù)據(jù)中的復(fù)雜模式。考慮到我們的大腦難以將視覺超過三維,使用768維向量確實令人驚嘆!

盡管一些機器學(xué)習(xí)和深度學(xué)習(xí)模型在這些高維場景中表現(xiàn)出色,但它們也帶來了許多挑戰(zhàn)。在本文中,我們將探索“維數(shù)詛咒(curse of dimensionality”的概念,解釋與之相關(guān)的一些有趣現(xiàn)象,深入了解這些現(xiàn)象背后的數(shù)學(xué)原理,并討論它們對機器學(xué)習(xí)模型的一般影響。

什么是維數(shù)詛咒?

人們常常假設(shè)在三維空間中熟悉的幾何概念在更高維度空間中的行為類似。實際并非如此。隨著維度的增加,許多有趣和違反直覺的現(xiàn)象會出現(xiàn)。維數(shù)詛咒是由著名數(shù)學(xué)家理查德·貝爾曼創(chuàng)造的一個術(shù)語,指的是所有這些令人驚訝的效應(yīng)。

高維的特別之處在于空間的“體積”(我們很快會更詳細地探索這一點)呈指數(shù)級增長。以一維空間中的1到10的數(shù)軸為例,這條線上有10個整數(shù)。如果將其擴展到二維,就變成了一個點數(shù)為10×10=100的正方形。現(xiàn)在考慮“僅”80維,將得到10^80個點,這個數(shù)字是宇宙中原子的數(shù)量。

換句話說,隨著維度的增加,空間的體積呈指數(shù)增長,導(dǎo)致數(shù)據(jù)變得越來越稀疏。

高維空間是“空的”

考慮另一個例子。我們想計算單位超立方體(每個邊長為1)中兩點之間的最遠距離:

  • 在一維中(超立方體是從0到1的線段),最大距離簡單地是1。
  • 在二維中(超立方體形成一個正方形),最大距離是對角線上[0,0]和[1,1]兩點之間的距離,通過勾股定理計算得出√2。
  • 將此概念擴展到n維,點[0,0,...,0]和[1,1,...,1]之間的距離是√n。這個公式的出現(xiàn)是因為每增加一個維度,都會在平方根的求和中增加一個1的平方(同樣通過勾股定理得出)。

有趣的是,隨著維度n的增加,超立方體內(nèi)的最大距離以O(shè)(√n)的速度增長。這種現(xiàn)象說明了遞減效應(yīng),即維度空間的增加導(dǎo)致空間距離的增加比例較小。這種效應(yīng)及其影響將在本文接下來的部分中進一步探討。

高維中的距離概念

我們已經(jīng)初步了解了高維空間如何使距離概念幾乎變得無意義。但這究竟是什么意思,我們能否用數(shù)學(xué)來形象地描述這一現(xiàn)象?

讓我們考慮一個實驗,使用之前定義的同一個n維單位超立方體。首先,我們通過在這個立方體中隨機抽取許多點來生成一個數(shù)據(jù)集:實際上是在模擬一個多變量均勻分布。然后,我們從該分布中抽取另一個點(一個“查詢”點),并觀察其與數(shù)據(jù)集中最近和最遠鄰居的距離。

以下是相應(yīng)的Python代碼:

我們還可以繪制這些距離:

  • 隨著維度n增加,到最近點和最遠點的距離

使用對數(shù)尺度,我們觀察到到最近鄰居和最遠鄰居的距離的相對差隨著維度的增加而減小。

這是一種非常不直觀的行為:如前一節(jié)所述,由于空間體積的指數(shù)增長,各點之間非常稀疏,但與此同時,點與點之間的相對距離卻變得更小。

最近鄰概念的消失

這意味著隨著空間維度的增加,距離的概念變得越來越不相關(guān)和不具區(qū)分性。如你所想,這對于完全依賴距離的機器學(xué)習(xí)算法,如kNN,構(gòu)成了問題。

數(shù)學(xué):n維球體

現(xiàn)在我們將討論一些其他有趣的現(xiàn)象。為此,我們需要了解n維球體。n維球體是在n維空間中球體的推廣。半徑為R的n維球體可以視為原點為中心,所有點到原點的直線距離不大于R的一個幾何體。

考慮半徑為1的情況。1維球體是線段[-1, 1]。2維球體是由單位圓界定的圓盤,其方程為x2 + y2 ≤ 1。3維球體(我們通常稱之為“球體”)的方程是x2 + y2 + z2 ≤ 1。如你所見,我們可以將這個定義擴展到任何維度:

現(xiàn)在的問題是:這個球體的體積是多少?這并非一個簡單的問題,需要大量的數(shù)學(xué)計算,這里不予詳述。

經(jīng)過一番有趣的(積分)計算,你可以證明n維球體的體積可以如下表示,其中Γ表示伽馬函數(shù)。

伽馬函數(shù)(Gamma function)是階乘概念在實數(shù)和復(fù)數(shù)上的推廣。伽馬函數(shù)在數(shù)學(xué)的許多領(lǐng)域都非常重要,特別是在概率論、統(tǒng)計學(xué)、組合數(shù)學(xué)以及物理中的量子物理和熱力學(xué)等領(lǐng)域。在高維幾何和積分中,伽馬函數(shù)還用來計算多維球體的體積。

例如,當(dāng)R = 1且n = 2時,體積是πR2,因為Γ(2) = 1。這確實是2維球體的“體積”(在這種情況下也稱為圓的“面積”)。

然而,除了是一個有趣的數(shù)學(xué)挑戰(zhàn)之外,n維球體的體積還具有一些非常令人驚訝的屬性。

隨著維度n的增加,n維球體的體積趨于0。

這對所有半徑都成立,但讓我們用幾個R的值來直觀地觀察這一現(xiàn)象。

  • 隨著維度增加,不同半徑的n維球體的體積

如你所見,它不僅趨于0,而且開始增加后又減少到0。對于R = 1,體積最大的是5維球體,而達到最大值的n值隨著R的增加而向右移動。

下面是單位n維球體體積的前10個值。

  • 不同n值的單位n維球體的體積
高維空間中單位球體的體積主要集中在其表面附近。

在小維度時,球體的體積看起來相當(dāng)“均勻”:在高維度中情況并非如此。

  • 球殼

考慮一個半徑為R的n維球體和另一個半徑為R-dR的n維球體,其中dR非常小。位于這兩個球體之間的n維球體的部分稱為“球殼”,對應(yīng)于球體表面附近的部分。我們可以計算球體“內(nèi)部”體積與薄球殼體積的比率。

  • 隨著n的增加,(內(nèi)部體積/總體積)比率

正如我們所看到的,它非??斓刳吔?:在高維空間中,幾乎所有的體積都集中在薄球殼中。例如,對于R = 1,dR = 0.05,且n = 50,大約92.3%的體積集中在薄球殼中。這表明在更高的維度中,體積存在于“角落”。這再次與我們之前看到的距離概念的扭曲相關(guān)。

注意,單位超立方體的體積(這里,指以零為中心,邊長為2的立方體)是2^n。而在非常高的維度中,單位球體基本上是“空的”,與之相對的,單位超立方體的點數(shù)呈指數(shù)增加。再次,這表明點的“最近鄰居”的概念因為在大的n時,幾乎沒有點在查詢點q的距離R內(nèi),而失去了效力。

維數(shù)詛咒、過擬合和奧卡姆剃刀原理

維數(shù)詛咒與過擬合原理密切相關(guān)。由于空間體積隨維度呈指數(shù)增長,我們需要非常大的數(shù)據(jù)集來充分捕捉和建模高維模式。更糟糕的是:為了克服這一限制,我們需要的樣本數(shù)量也需要隨著維度指數(shù)增長。這種特征眾多但數(shù)據(jù)點相對較少的情況,特別容易發(fā)生過擬合。

奧卡姆剃刀原理建議,相較于復(fù)雜模型,簡單模型通常更優(yōu),因為它們不太可能發(fā)生過擬合。這一原理在高維環(huán)境(維數(shù)詛咒發(fā)揮作用的地方)尤為相關(guān),因為它鼓勵降低模型復(fù)雜度。

在高維場景中應(yīng)用奧卡姆剃刀原理可能意味著通過降維(如通過PCA、特征選擇等方法),從而減輕維數(shù)詛咒的某些影響。簡化模型結(jié)構(gòu)或特征空間有助于管理稀疏數(shù)據(jù)分布,并使距離度量再次變得有意義。例如,降維通常是應(yīng)用kNN算法之前的一個常見初步步驟。更現(xiàn)代的方法,如近似最近鄰(ANNs)也作為處理高維場景的一種方式出現(xiàn)。

高維的優(yōu)勢

盡管我們已經(jīng)概述了機器學(xué)習(xí)中高維設(shè)置的挑戰(zhàn),但也存在一些優(yōu)勢!

  • 高維可以增強線性可分性,使得像kernel methods這樣的技術(shù)更有效。
  • 此外,深度學(xué)習(xí)架構(gòu)特別擅長在高維空間中導(dǎo)航和提取復(fù)雜模式。

如同機器學(xué)習(xí)領(lǐng)域常見的,這是一種權(quán)衡:利用這些優(yōu)勢需要平衡增加的計算需求與潛在的模型性能提升。

希望這能讓你了解高維中“怪異”幾何的本質(zhì)以及它為機器學(xué)習(xí)模型開發(fā)帶來的許多挑戰(zhàn)。我們看到,在高維空間中,數(shù)據(jù)非常稀疏,但也傾向于集中在角落,且距離失去了其用途。

雖然“維數(shù)詛咒”突出了高維空間中的重大限制,但令人興奮的是,看到現(xiàn)代深度學(xué)習(xí)模型越來越善于應(yīng)對這些復(fù)雜性。例如,考慮使用非常高維向量的嵌入模型或最新的大型語言模型(LLMs),它們更有效地識別和建模文本模式。