一.引言
這裡我們將要討論所謂的「維數災難」,同時結合過擬合現象來解釋它在分類器學習中的重要性。
舉乙個分類應用的簡單例子,假設我們有一系列的,每張的內容可能是貓也可能是狗;我們需要構造乙個分類器能夠對貓、狗自動的分類。首先,要尋找到一些能夠描述貓和狗的特徵,這樣我們的分類演算法就可以利用這些特徵去識別物體。貓和狗的皮毛顏色可能是乙個很好的特徵,考慮到紅綠藍構成影象的三基色,因此用三基色各自的平均值稱得上方便直觀。這樣就有了乙個簡單的fisher分類器:
if 0.5*red + 0.3*green + 0.2*blue > 0.6 : return cat;
else return dog;
但是,使用顏色特徵可能無法得到乙個足夠準確的分類器,如果是這樣的話,我們不妨加入一些諸如影象紋理(影象灰度值在其x、y方向的導數dx、dy),我們就有5個特徵(red、blue、green、dx、dy)來設計我們的分類器了。
接下來,也許分類器準確率依然無法達到要求,我們可以加入更多的特徵,比如顏色、紋理的統計資訊等等,如此下去,我們也許可能會得到上百個特徵。那是不是我們的分類器效能會隨著特徵數量的增加而逐步提高呢?答案也許有些讓人沮喪,事實上,當特徵數量達到一定規模後,分類器的效能是在下降的。隨著維度(特徵數量)的增加,分類器的效能可以用下圖來描述:
figure 1 隨著維度的增加,分類器效能逐步上公升,到達某點之後,其效能便逐漸下降
接下來,我們簡要介紹這種現象發生的原因,進一步討論如何避免維數災難的發生:
維數災難與過擬合:
在上面這個分類的例子中,我們假設貓和狗的數量是有限的(實際上也確實如此,樣本數量總是有限的),就假設有10張吧,接下來我們就用這僅有的10張來訓練我們的分類器。
首先從乙個最為簡單的線性分類器開始,這裡我們僅僅使用單一特徵(1維),比如紅色,來進行訓練
figure 2 單一特徵的分類器,在訓練集上表現並不好
接下來,我們增加乙個特徵,比如綠色,這樣特徵維數擴充套件到了2維:
figure 3 增加乙個特徵後,我們依然無法找到一條簡單的直線將它們有效分類
為此,我們再增加乙個特徵,比如藍色,擴充套件到3維特徵空間後:
figure 4 增加乙個特徵形成的3維特徵空間及樣本分佈
在3維特徵空間中,我們很容易找到乙個分類平面,能夠在訓練集上有效的將貓和狗進行分類:
figure 5 在高維空間中,我們似乎能得到更優的分類器效能
從1維到3維,給我們的感覺是:維數越高,分類效能越優。然而,在figure 1中,我們說維數過高將導致一定的問題:具體來說,在一維特徵空間下,我們假設乙個維度的寬度為5個單位,這樣樣本密度為10/5=2;在2維特徵空間下,10個樣本所分布的空間大小5*5=25,這樣樣本密度為10/25=0.4;在3維特徵空間下,10個樣本分佈的空間大小為5*5*5=125,樣本密度就為10/125=0.08.
如果我們繼續增加特徵數量,隨著維度的增加,樣本將變得越來越稀疏,在這種情況下,也更容易找到乙個超平面將目標分開。然而,如果我們將高維空間向低維空間投影,高維空間隱藏的問題將會顯現出來:
figure 6 過多的特徵導致的過擬合現象:訓練集上表現良好,但是對新資料缺乏泛化能力
高維空間訓練形成的分類器,相當於在低維空間的乙個複雜的非線性分類器,這種分類器過多的強調了訓練集的準確率甚至於對一些錯誤/異常的資料
也進行了學習,而正確的資料卻無法覆蓋整個特徵空間。為此,這樣得到的分類器在對新資料進行**時將會出現錯誤。這種現象稱之為過擬合,同時也是維災難的直接體現。
下圖展示了用2個特徵代替三個特徵進行分類器的學習:
figure 7 儘管訓練集上分類準確率不如3維下的高,但是具備更好的泛化能力
儘管如圖7中所示,乙個簡單的線性分類器在訓練資料上的表現不如非線性分類器,但由於線性分類器的學習過程中對雜訊沒有對非線性分類器敏感,因此對新資料具備更優的泛化能力。換句話說,通過使用更少的特徵,避免了維數災難的發生(也即避免了高維情況下的過擬合)
在換個角度來解釋維數災難,圖8展示了由於高維而帶來的資料稀疏性問題:假設有乙個特徵,它的取值範圍d在0到1之間均勻分布,並且對狗和貓來說其值都是唯一的,我們現在利用這個特徵來設計分類器。如果我們的訓練資料覆蓋了取值範圍的20%(e.g 0到0.2),那麼所使用的訓練資料就佔總樣本量的20%。上公升到二維情況下,覆蓋二維特徵空間20%的面積,則需要在每個維度上取得45%的取值範圍。在三維情況下,要覆蓋特徵空間20%的體積,則需要在每個維度上取得58%的取值範圍...在維度接近一定程度時,要取得同樣的訓練樣本數量,則幾乎要在每個維度上取得接近100%的取值範圍,或者增加總樣本數量,但樣本數量也總是有限的。
figure 8 取得相同數量樣本需要的空間大小
換句話說,如果一直增加特徵維數,由於樣本分佈越來越稀疏,如果要避免過擬合的出現,就不得不持續增加樣本數量。
先翻譯到這裡,後續還有高維空間的樣本分佈與如何避免維數災難的問題。
原文:分類中的維數災難
接上文:
在上面的例子中,我們通過演示資料的稀疏性展示了維數災難,即:在分類中我們使用的特徵數量越多,那麼由於高維下資料的稀疏性我們不得不需要更多的訓練資料來對分類器的引數進行估計(高維數下分類器引數的估計將變得更加困難)。維數災難造成的另外乙個影響是:資料的稀疏性致使資料的分布在空間上是不同(實際上,資料在高維空間的中心比在邊緣區域具備更大的稀疏性,資料更傾向於分布在空間的邊緣區域)。舉個栗子更好理解:
考慮乙個二維情況下(即二特徵)的單位空間,
如何避免維度災難與過擬合
簡而言之,當訓練樣本數量不變,分類器效能會隨著選取的特徵維度的增大先增大後減小,也就是說只有在特徵維度數量和樣本數量穩定在一定範圍內,分類器效能才會最優,但目前沒有什麼固定的方法去計算二者之間的關係。過擬合就是當訓練樣本數量不變,分類器效能隨著特徵維度增大而減小,直觀的體現就是測試訓練樣本分數很高,...
十七 離散與維數災難
在上一講中我們介紹了mdp模型,但上一講中的情況只適應於狀態集和動作集都有限的情況,今天我們將介紹如何解決狀態集無限 連續 而動作集有限的情況。一種簡單的方法是將連續的狀態離散成有限個狀態,當狀態位於某一區間內時,均將其視為同一狀態,然後進行求解。可以想到,這一方法的計算結果受到離散方式 原有狀態集...
curse of dimension維數災難
維數災難 即高維情況下的過擬合 為了獲得更精準的分類,可以新增更多特徵。也許特徵達到一定維度,我們會得到乙個堪稱完美的分類器?其實不然,因為當特徵達到一定維度後,再去增加維度會導致分類器的效能下降,這便是經常提到的 curse of dimension 在得到乙個效能優良的分類器前,增加特徵便會有更...