1. 程式人生 > 其它 >Online PCA for Contaminated Data

Online PCA for Contaminated Data


發表時間:2013(NIPS 2013)
文章要點:這篇文章提出了一個online robust PCA演算法。在online case下,需要根據資料流不斷更新Principal Component,但是資料流裡面可能有異常值,如果不剔除就會影響Principal Component的估計效果。作者的想法是來了一個sample之後,先根據當前的Principal Component張成的子空間去計算一下這個sample的距離

這裡的距離其實像是一個餘弦距離,所以如果太小,就可以認為是異常值。不過作者計算這個值並不直接設定閾值剔除,而是根據概率來接受或者拒絕。這裡有個normalized的假設,所以這個值在0-1之間,就可以當成取樣的概率來用,虛擬碼裡用\(\delta_i\)

表示。如果不是異常值(authentic samples),\(\delta_i\)就會比較大,被接受的概率就大,如果是異常值(outlier),\(\delta_i\)就會很小,被接受的概率就會小。然後就用接受的樣本去做online PCA的更新。然後整個流程一直做下去。
總結:很不錯的思路,感覺貌似所有的robust的估計都會用相似的想法做一下,就是先排除一些異常值,然後去做更新。
疑問:文章裡面第一個PCA的計算會嚴重依賴第一個batch的樣本,這個batch裡的異常值是沒有被剔除的,對初始Principal Component的估計會不會影響很大?
證明沒看。