1. 程式人生 > >機器學習:降維演算法-主成分分析PCA演算法兩種角度的推導

機器學習:降維演算法-主成分分析PCA演算法兩種角度的推導

若把高維空間的樣本點(可以想象是一個3維的)對映到一個超平面,怎樣的超平面可以認為是“好的”,可以想到這個超平面大概有這樣的性質:

  1. 最近重構行:樣本點到超平面的距離都足夠近;(樣本點變化儘可能小,丟失的資訊儘可能少)
  2. 最大可分性:樣本點在這個超平面上的投影儘可能分開.(樣本點在低維空間區分度儘可能高)

神奇的是,從兩個角度出發,可以分別得到主成分分析PCA演算法的兩種等價推導

根據最近重構性推導

假設樣本進行了中心化,即:

\sum _{i=1}^{m}x_{i} = 0.

假設投影變換後新的座標系為W={w_{1},w_{2},...,w_{d}},其中w_{i}是標準正交基向量,\left \| w_{i} \right \|_{2} = 1,w_{i}^{T}w_{j} = 0(i\neq j).

若丟棄座標系中部分座標,即將維度降低到d'<d,得到W'={w_{1},w_{2},...,w_{d'}},則樣本點x_{i}在低維座標系中的投影為z_{i} = \{z_{i1},z_{i2},...,z_{id'}\}

,其中z_{ij} = w_{j}^{T}x_{i}.若基於z_{i}來重構x_{i},則會得到:

\hat{x}_{i} = \sum _{j=1}^{d'}z_{ij}w_{j}

(上式\hat{x}_{i}只是原樣本點x_{i}的的近似,因為丟棄了部分座標w_{d'+1},...,w_{d}).

對於整個樣本集,原樣本點x_{i}和基於投影重構的樣本點\hat{x}_{i}間的距離為:

\begin{align*} \sum_{i=1}^{m}\left \| \sum_{j=1}^{d'}z_{ij}w_{j} - x_{i} \right \|_{2}^{2} &= \sum_{i=1}^{m} \left \| W'z_{i} - x_{i} \right \|_{2}^{2} \\ &=\sum _{i=1}^{m}\left \| W'z_{i} \right \|_{2}^{2} - 2\sum_{i=1}^{m}(W'z_{i})^{T}x_{i} + \sum_{i=1}^{m}\left \| x_{i} \right \|_{2}^{2} \\ &= \sum_{i=1}^{m}z_{i}^{T}W'^{T}W'z_{i} - 2\sum_{i=1}^{m}z_{i}^{T}z_{i} + \sum_{i=1}^{m}x_{i}^{T}x_{i} \\ &=-\sum_{i=1}^{m}z_{i}^{T}z_{i} + \sum_{i=1}^{m}x_{i}^{T}x_{i} \\ &= -\sum_{i=1}^{m}tr(z_{i}z_{i}^{T}) + \sum_{i=1}^{m}x_{i}^{T}x_{i} \\ &= -tr(\sum_{i=1}^{m}z_{i}z_{i}^{T}) +\sum_{i=1}^{m}x_{i}^{T}x_{i} \\ &= -tr(\sum_{i=1}^{m}W'^{T}x_{i}x_{i}^{T}W') + \sum_{i=1}^{m}x_{i}^{T}x_{i} \\ &= -tr(W'^{T}(\sum_{i=1}^{m}x_{i}x_{i}^{T})W') + \sum_{i=1}^{m}x_{i}^{T}x_{i} \\ &= -tr(W'^{T}XX^{T}W') + \sum_{i=1}^{m}x_{i}^{T}x_{i} \end{align*}.

根據最近重構性,上式應被最小化,得到主成分分析的優化目標

\min_{W'} -tr(W'^{T}XX^{T}W')

s.t.  W'^{T}W' = I.

根據最大可分性推導

投影后,樣本點的方差之和為(樣本X已中心化:(\sum _{i=1}^{m}x_{i} = 0),所以投影后的Z也是中心化的):

\begin{align*} tr(\sum_{i=1}^{m}z_{i}z_{i}^{T}) &= tr(\sum_{i=1}^{m}W'^{T}x_{i}x_{i}^{T}W') \\ &= tr(W'^{T}(\sum _{i=1}^{m}x_{i}x_{i}^{T})W')\\ &= tr(W'^{T}XX^{T}W') \end{align*}.

根據最大可分性,投影后的樣本點應儘量分開,所以方差應儘量大,於是從最大可分性角度得到主成分分析的優化目標

\max_{W'} tr(W'^{T}XX^{T}W')

s.t.  W'^{T}W' = I.

顯然,跟從最近重構性角度得到的優化目標是等價的。

發現w_{i}須是XX^{T}的特徵向量。於是,對XX^{T}進行特徵值分解,將求得的特徵值排序:\lambda_{1}\geqslant \lambda_{2}\geqslant ...\geqslant\lambda_{d},取前d'個特徵值對應的特徵向量構成W'

={w_{1},w_{2},...,w_{d'}}(個人覺得,這裡還需保證w_{1},w_{2},...,w_{d'}相互正交,才能滿足約束,因為如果有相同的特徵值,那麼其對應的特徵向量不一定正交。順便補充一個定理:對稱矩陣不同特徵值對應的特徵向量相互正交),這就是主成分分析的解。

演算法描述如下:

其他補充:

有三種方法確定降維後的維度d':

  1. 人為指定;
  2. 在d'值不同的低維空間對k近鄰分類器(或其他開銷較小的學習器)進行交叉驗證來選取較好的d'值;
  3. 設定一個重構閾值,如t = 95%,然後選取使 \frac{\sum_{i=1}^{d'}\lambda_i}{\sum_{i=1}^{d}\lambda_{i}}\geqslant t成立的最小d'值.

PCA演算法除了儲存投影矩陣W',還需儲存樣本的均值向量,這是為了對新樣本同樣進行中心化。PCA降維看似捨棄了一部分資訊,但這麼做是必要的:1、這樣做使樣本的取樣密度增大

;2、當資料受到噪聲影響時,最小特徵值對應的特徵向量往往與噪聲有關

參考資料:

周志華《機器學習》

參考博文:

相關博文: