數據與特徵

維度災難(curse of dimensionality)

/ KURS uv dih-men-shun-AL-ih-tee /

維度災難,指的是這樣一件違反直覺的怪事:給你的資料增添更多特徵(更多維度),反而讓學習變得更難、而非更易。它的口號是:在高維空間裡,萬物彼此相隔遙遠,而空間則大半是空的。

直覺是這樣的。設想把100個點撒在一米長的線段上——它們挨得挺近,大約每隔一厘米一個。把這同樣的100個點鋪到一平方米的正方形裡,就稀疏了;鋪進一立方米的正方體裡,則更稀疏。每增加一個維度,需要填滿的體積就翻倍,於是為了讓空間保持「人丁興旺」所需的資料量便爆炸式增長——大致隨特徵數呈指數增長。當特徵眾多而資料有限時,點會散得太開,以至於「最近鄰」這類概念都失去了意義,因為最近的點和最遠的點幾乎一樣遠。模型於是難以在這片空曠中找到真實的規律,並極易過擬合。

為何重要:它解釋了為何「特徵越多」並不自動等於「越好」、為何基於距離的方法在高維下會退化,也解釋了為何人們要花大力氣去做降維(如主成分分析這類把資料壓進更少、更有意義維度的技術)和特徵選擇(只保留那些攜帶真實訊號的欄)。一個誠實的結論是:資料是一種有限的資源,卻被鋪撒在一個增長得殘酷迅猛的空間裡,所以增添那些你無法稠密填滿的維度,往往是有害的。

要以「每單位10個採樣點」的密度覆蓋一條一維線段,需要10個點。一個二維正方形需要10×10=100個;一個三維正方體需要1000個;一個十維空間則需要100億個。增加維度,會讓你為保持「稠密」所需的資料量爆炸,於是在資料固定的情況下,你的點會變得無可救藥地稀疏。

10 → 100 → 1000 → 100億:高維空間為何大半是空的。

特徵更多反而可能有害。過了某個臨界點,每多一個維度都只是在稀釋你的資料、卻不增添訊號,所以「降維」或「只挑選有資訊量的特徵」往往勝過把一切都一股腦塞給模型。

又稱
dimensionality curse维度灾难维数灾难維度詛咒維數災難