源自知乎的一個答案,網上很多關於PCA的文章,不過很多都只講到了如何理解方差的投影,卻很少有講到為什么特征向量就是投影方向。本文從形象角度談一談,因為沒有證明,所以不會嚴謹,但是應該能夠幫助形象理解PCA背后的原理。
一、先從旋轉和縮放角度,理解一下特征向量和特征值的幾何意義
從定義來理解特征向量的話,就是經過一個矩陣變換后,空間沿着特征向量的方向上相當於只發生了縮放,比如我們考慮下面的矩陣:
求這個變換的特征向量和特征值,分別是:\(U=\begin{bmatrix} 0.85 & -0.53\\ 0.53 & 0.85 \end{bmatrix}\)(列向量)和1.81,0.69
用一個形象的例子來說明一下幾何意義,我們考慮下面笑臉圖案:
為方便演示笑臉圖案在0,0和1,1圍起來的單位正方形里,同時也用兩個箭頭標出來了特征向量的方向。經過\(\begin{bmatrix} 1.5 & 0.5\\ 0.5 & 1.0 \end{bmatrix}\)變換,也就是用這個圖案中的每個點的坐標和這個矩陣做乘法,得到下面圖案:
可以看到就是沿着兩個正交的,特征向量的方向進行了縮放,這就是特征向量的一般的幾何理解。
這個理解雖然清晰,但是並沒有特別形象。我們也可以分解一下,從旋轉和沿軸縮放的角度理解,分成三步:
第一步,把特征向量所指的方向分別轉到橫軸和縱軸這一步相當於用U的轉置,也就是\(U^{T}\)進行了變換
第二步,然后把特征值作為縮放倍數,構造一個縮放矩陣$\begin{bmatrix}
1.81 & 0\
0 & 0.69
\end{bmatrix}$,矩陣分別沿着橫軸和縱軸進行縮放:
第三步,很自然地,接下來只要把這個圖案轉回去,也就是直接乘U就可以了
所以,從旋轉和縮放的角度,一個矩陣變換就是,旋轉-->沿坐標軸縮放-->轉回來,的三步操作,表達如下:
多提一句,這里給的是個(半)正定矩陣的例子,對於不鎮定的矩陣,也是可以分解為,旋轉-->沿坐標軸縮放-->旋轉,的三步的,只不過最后一步和第一步的兩個旋轉不是轉回去的關系了,表達如下:
這個就是SVD分解,就不詳細說了。另外,這個例子是二維的,高維類似,但是形象理解需要腦補。
二、協方差矩陣的特征向量PCA的意義
一句話概括PCA的話就是找到方差在該方向上投影最大的那些方向,比如下邊這個圖是用\(\begin{bmatrix} 1 & 0.5\\ 0.5 & 1 \end{bmatrix}\)作為些協方差矩陣產生的高斯分布樣本:
大致用個橢圓圈出來分布,相關性最強的(0.707,0.707)方向就是投影之后方差最大的方向。接下來我們不嘗試嚴格證明,而是從旋轉和縮放的角度形象理解一下,我們可以考慮把這個分布也旋轉一下,讓長軸在x軸上,短軸在y軸上,變成如下:
然后再沿着x軸和y軸,除以標准差,縮放成標准差為1的單位分布:
注意,在這個除以標准差的過程中,標准差最大的軸,就對應着原空間中,樣本投影后方差最大的方向。接下來,假設這個分布中的樣本為\(X_U\),則我們可以把一開始的樣本表示為:
用這么別扭的表示方式主要是為了接下來推公式方便,所以接下來推個簡單的公式:
協方差矩陣,用S表示,則有
因為這個分布里兩個維度的均值都是0,所以有
所以
其中N是樣本數,根據前面的\(X=ULX_U\),進一步展開這個公式:
因為\(X_U\)是個單位方差的且無相關性的樣本,所以
另外L是個對角矩陣所以有
這個公式上一部分已經說過了。所以對角線上的元素對應的就是方差的大小,而縮放倍數就是標准差的大小,也就是特征值的開根號,而U就是要沿着縮放的方向,也就是問題中投影的方向,正是特征向量。