「人工智能」No.9 特徵工程之降維

【導讀:當今人類即將或者已然了進入智能時代,這是·情報通·人工智能科普系列第[9]篇文章,歡迎閱讀和收藏!】

1 基本概念

降維的意思是能夠用一組個數為 d 的向量 z i 來代表個數為 D 的向量 x i 所包含的有用信息,其中 dx i ,跟 svm 的參數相乘。假如能夠將 512*512 的向量在保留有用信息的情況下降維到 100 ,那麼存儲輸入和參數的空間會減少很多,計算向量乘法的時間也會減少很多。所以降維能夠有效的減少計算時間。而高維空間的數據很有可能出現分佈稀疏的情況,即 100 個樣本在 100 維空間分佈肯定是非常稀疏的,每增加一維所需的樣本個數呈指數級增長,這種在高維空間中樣本稀疏的問題被稱為維數災難。降維可以緩解這種問題。

「人工智能」No.9 特徵工程之降維

而為什麼可以降維,這是因為數據有冗餘,要麼是一些沒有用的信息,要麼是一些重複表達的信息,例如一張 512*512 的圖只有中心 100*100 的區域內有非 0 值,剩下的區域就是沒有用的信息,又或者一張圖是成中心對稱的,那麼對稱的部分信息就重複了。正確降維後的數據一般保留了原始數據的大部分的重要信息,它完全可以替代輸入去做一些其他的工作,從而很大程度上可以減少計算量。例如降到二維或者三維來可視化。

2 從什麼角度出發來降維

一般來說可以從兩個角度來考慮做數據降維,一種是直接提取特徵子集做特徵抽取,例如從 512*512 圖中只取中心部分,一種是通過線性 / 非線性的方式將原來高維空間變換到一個新的空間,這裡主要討論後面一種。後面一種的角度一般有兩種思路來實現,一種是基於從高維空間映射到低維空間的 projection 方法,其中代表算法就是 PCA ,而其他的 LDA 、 Autoencoder 也算是這種,主要目的就是學習或者算出一個矩陣變換 W ,用這個矩陣與高維數據相乘得到低維數據。另一種是基於流形學習的方法,流形學習的目的是找到高維空間樣本的低維描述,它假設在高維空間中數據會呈現一種有規律的低維流形排列,但是這種規律排列不能直接通過高維空間的歐式距離來衡量,如下左圖所示,某兩點實際上的距離應該是下右圖展開後的距離。如果能夠有方法將高維空間中流形描述出來,那麼在降維的過程中就能夠保留這種空間關係,為了解決這個問題,流形學習假設高維空間的局部區域仍然具有歐式空間的性質,即它們的距離可以通過歐式距離算出 (Isomap) ,或者某點座標能夠由臨近的節點線性組合算出 (LLE) ,從而可以獲得高維空間的一種關係,而這種關係能夠在低維空間中保留下來,從而基於這種關係表示來進行降維,因此流形學習可以用來壓縮數據、可視化、獲取有效的距離矩陣等。

3 降維方法流程

主要的方法是 線性映射 非線性映射 方法兩大類,下面介紹幾種常用方法。其中初學者對公式的理解是其次,關鍵是對原理的理解,才對深入學習有所幫助。

3.1 線性映射

線性映射方法的代表方法有: PCA ( Principal Component Analysis ) LDA ( Discriminant Analysis )

3.1.1 主成分分析算法( PCA )

最常用的線性降維方法,它的目標是通過某種線性投影,將高維的數據映射到低維的空間中表示,並期望在所投影的維度上數據的方差最大,以此使用較少的數據維度,同時保留住較多的原數據點的特性。

3.1.2 線性判別分析( LDA )

判別分析 (Discriminant Analysis) 所追求的目標與 PCA 不同,不是希望保持數據最多的信息,而是希望數據在降維後能夠很容易地被區分開來。後面會介紹 LDA 的方法,是另一 種常見的線性降維方法。另外一些非線性的降維方法利用數據點的局部性質,也可以做到比較好地區分結果,例如 LLE , Laplacian Eigenmap 等。

LDA 是一種有監督的( supervised )線性降維算法。與 PCA 保持數據信息不同,核心思想:往線性判別超平面的法向量上投影,是的區分度最大(高內聚,低耦合)。 LDA 是為了使得降維後的數據點儘可能地容易被區分!

3.2 非線性映射

非線性映射方法的代表方法有:核方法(核 + 線性),二維化和張量化(二維 + 線性),流形學習( ISOMap , LLE , LPP )

3.2.1 基於核的非線性降維

代表方法有: KPCA , KFDA 。

KPCA 的基本思想:通過 Kernel trick 將 PCA 投影的過程通過內積的形式表達出來。將高維向量 ϕ(x) 與對應特向 βϕ(x) 與對應特向 β 的內積轉換成低維的核函數表示。

3.2.2 流形學習

流形學習的主要算法有: ISOMap (等距映射)、 LE (拉普拉斯特徵映射)、 LLE (局部線性嵌入)。

流形:直線或者曲線是一維流形,平面或者曲面是二維流形,更高維之後是多維流形。一個流形好比是 d 維的空間,是一個 m 維空間( m>n )被扭曲之後的空間。流形並不是一個 “ 形狀 ” ,而是一個 “ 空間 ”流形學習的假設:數據採樣於某一流形上。


分享到:


相關文章: