本文簡單整理了以下內容:
(一)維數災難
(二)特征提取——線性方法
1. 主成分分析PCA
2. 獨立成分分析ICA
3. 線性判別分析LDA
(一)維數災難(Curse of dimensionality)
維數災難就是說當樣本的維數增加時,若要保持與低維情形下相同的樣本密度,所需要的樣本數指數型增長。從下面的圖可以直觀體會一下。當維度很大樣本數量少時,無法通過它們學習到有價值的知識;所以需要降維,一方面在損失的信息量可以接受的情況下獲得數據的低維表示,增加樣本的密度;另一方面也可以達到去噪的目的。
圖片來源:[1]
有兩種辦法試圖克服這個問題:首先是特征提取(Feature extraction),通過組合現有特征來達到降維的目的;然后是特征選擇,從現有的特征里選擇較小的一些來達到降維的目的。下面開始介紹特征提取。
(二)特征提取——線性方法
首先約定一下記號:
樣本矩陣 $X=(\textbf x_1,\textbf x_2,...,\textbf x_N)=({\textbf x^{(1)}}^{\top};{\textbf x^{(2)}}^{\top};...;{\textbf x^{(d)}}^{\top})\in\mathbb R^{d\times N}$ ,$X_{ji}=x_i^{(j)}$;
$N$ 是訓練集的樣本數,每個樣本都表示成 $\textbf x_i=(x_i^{(1)},x_i^{(2)},...,x_i^{(d)})\in\mathbb R^d$ 的列向量,樣本矩陣的每一列都是一個樣本;如果出現了 $\textbf x$ 這樣沒有上下標的記號就泛指任一樣本,相當於省略下標;
$d$ 是特征的維數,每維特征都表示成 $\textbf x^{(j)}=(x_1^{(j)},x_2^{(j)},...,x_N^{(j)})\in\mathbb R^N$ 的列向量;如果出現了 $x^{(j)}$ 這樣的記號就泛指任一樣本的第 $j$ 維特征,相當於省略下標;
降維之后的樣本矩陣 $Z\in\mathbb R^{k\times N}$ ,$k$ 是降維之后的特征維數,所以 $k\ll d$ ;每個樣本被降維后都表示成 $\textbf z_i=(z_i^{(1)},z_i^{(2)},...,z_i^{(d)})\in\mathbb R^k$ 的列向量。
一、主成分分析(Principal component analysis,PCA)
PCA也叫主元分析,可謂是非常常用的一種線性降維方式,比如在人臉識別中的“特征臉”(Eigenfaces)。降維之后的每個“新”特征都被稱為主成分。這是一種無監督的降維方法,沒有用到樣本的標記信息。
1. 定義:線性投影
下圖是一個二維的例子,圖示的兩個方向為兩個主成分的基底,我們可以通過PCA將它降成一維,也就是只保留一個基底。
圖片來源:[6]
將原始數據 $X\in\mathbb R^{d\times N}$ 通過變換矩陣 $W=(\textbf w_1,\textbf w_2,...,\textbf w_k)\in\mathbb R^{d\times k}$ 投影到低維空間,得到變換后的數據 $Z\in\mathbb R^{k\times N}$
$$\begin{aligned}Z&=W^{\top}X\\&=(\textbf z_1,\textbf z_2,...,\textbf z_N)\\&=({\textbf z^{(1)}}^{\top};{\textbf z^{(2)}}^{\top};...;{\textbf z^{(d)}}^{\top})\end{aligned}$$
樣本 $\textbf x_i$的經過映射后的得到的“新”樣本 $\textbf z_i$ 為
$$\textbf z_i=W^{\top}\textbf x_i$$
分量表示為
$$z_i^{(j)}={\textbf w_j}^{\top}\textbf x_i,\quad j=1,2,...,d$$
可以直觀看出,每個新的特征都是原先全部特征的線性組合。
“新”特征 $\textbf z^{(1)}={\textbf w_1}^{\top}X$ 稱為第一主成分,隨后是第二主成分 $\textbf z^{(2)}$,第三主成分……,只保留 $k$ 個主成分,構成樣本 $\textbf x_i$ 降維后的表示 $\textbf z_i$ 。
2. 問題描述:矩陣分解
將變換矩陣記成 $W=(\textbf w_1,\textbf w_2,...,\textbf w_k)$ ,這是低維空間的一組標准正交基,每一列 $\textbf w_i\in\mathbb R^d$ 與其他列之間是互相正交的,而列本身的模為1。換句話說,矩陣 $W$ 需要滿足正交約束(不能叫正交矩陣,因為只有方陣才談得上是不是正交矩陣):
$$W^{\top}W=I$$
這樣看的話,PCA 其實就是正交約束下的矩陣分解問題:
$$X=WZ$$
$$\textbf x_i=W\textbf z_i$$
3. 求解方法:協方差矩陣的特征值分解
現在的問題是,怎樣確定出變換矩陣 $W$ 。PCA的基本做法是,在原始數據 $X$ (要去均值,也就是中心化)的協方差矩陣 $\varSigma_X$ 做特征值分解(實對稱矩陣一定能找到一個正交矩陣使其對角化,這個正交矩陣正是由其特征值對應的特征向量所組成),將特征值從大到小排序,其中最大的特征值 $\lambda_1$ 所對應的特征向量 $\textbf w_1$ 作用在樣本 $X$ 所得到的“新”特征 $\textbf z^{(1)}={\textbf w_1}^{\top}X$ 稱為第一主成分,隨后是第二主成分 $\textbf z^{(2)}$,第三主成分……,只保留 $k$ 個主成分,構成樣本 $\textbf x_i$ 降維后的表示 $\textbf z_i$ 。$k$ 的值可通過下式來確定:
$$\frac{\sum\limits_{i=1}^k\lambda_i}{\sum\limits_{i=1}^d\lambda_i}\geq 95\%$$
4. PCA的motivation
為什么 PCA 要對協方差矩陣 $\varSigma_X$ 做特征值分解來得到主成分?下面簡單說兩種角度。
1) 最大投影方差
假設訓練集樣本的每一維特征都進行了去均值處理,使得 $\boldsymbol\mu (X)=\frac1N\sum_{i=1}^N\textbf x_i=\textbf 0\in\mathbb R^d$(需要注意,測試集的樣本在做去均值操作時去掉的是訓練集的均值,所以這個操作中得到的訓練集的均值向量要保留)。
直接求解
考慮到降維到 $k$ 維的情況:希望投影后的每一維都盡可能地分開。
所以我們求取投影后的樣本的協方差矩陣:
$$\begin{aligned}\varSigma_Z&=\frac{1}{N-1}\sum_{i=1}^N(\textbf z_i - \boldsymbol\mu(Z))(\textbf z_i - \boldsymbol\mu(Z))^{\top}\\&=\frac{1}{N-1}\sum_{i=1}^N\textbf z_i\textbf z_i^{\top}\\&=\frac{1}{N-1}ZZ^{\top}\\&=\frac{1}{N-1}W^{\top}XX^{\top}W\end{aligned}$$
因為
$$\varSigma_X=\frac{1}{N-1}\sum_{i=1}^N\textbf x_i\textbf x_i^{\top}=\frac{1}{N-1}XX^{\top}$$
不難看出 $\varSigma_X$ 就是樣本去均值之后的協方差矩陣。所以有
$$\varSigma_Z=W^{\top}\varSigma_X W$$
這個形式很眼熟:首先,這和高斯分布經線性變換后的協方差矩陣形式一樣,即原始協方差矩陣的二次型;其次,如果不降維的話(也就是說 $W$ 是個正交方陣),單從代數的角度來看,這里我們需要求取的 $\varSigma_Z$ ,不正是把協方差矩陣 $\varSigma_X$ 對角化嗎?所以 $W$ 已經很顯然了,就是 $\varSigma_X$ 的特征向量構成的矩陣。
由於 $\varSigma_Z$ 的對角線元素就代表了各維的方差,所以PCA的優化目標就是
$$\max_W\quad\text{tr}(W^{\top}\varSigma_X W)$$
約束是 $W^{\top}W=I$ ,然后用拉格朗日乘數法求解。但我覺得這樣不直觀,接下來從降維到一維入手,逐步求解主成分。
逐步求解
不妨先實現一個小目標:我們需要降維到一維,樣本點在投影到一維之后,能夠盡可能地“分開”——也就是投影后的方差最大。這時變換矩陣 $W$ 退化為一個向量 $\textbf w_1$ ,樣本 $\textbf x_i$ 投影的結果為 $\textbf z_i =\textbf w_1^{\top}\textbf x_i\in\mathbb R$。
投影后的方差為:
$$\begin{aligned}&\frac{1}{N-1}\sum_{i=1}^N\textbf z_i\textbf z_i^{\top}\\=&\frac{1}{N-1}\sum_{i=1}^N(\textbf w_1^{\top}\textbf x_i)(\textbf w_1^{\top}\textbf x_i)^{\top}\\=&\textbf w_1^{\top}(\frac{1}{N-1}\sum_{i=1}^N\textbf x_i\textbf x_i^{\top})\textbf w_1\\=&\textbf w_1^{\top}\varSigma_X\textbf w_1\end{aligned}$$
為了實現上面降維到一維后方差最大的這個小目標,我們需要求解如下的約束最優化問題:
$$\max_{\textbf w_1}\quad\textbf w_1^{\top}\varSigma_X\textbf w_1$$
$$\text{s.t.}\quad\quad\|\textbf w_1\|=1$$
使用拉格朗日乘數法,那么問題的解就是拉格朗日函數 $L$ 的偏導數等於零這個方程的解:
$$L=\textbf w_1^{\top}\varSigma_X\textbf w_1-\lambda(\textbf w_1^{\top}\textbf w_1-1)$$
$$\frac{\partial L}{\partial \textbf w_1}=2\varSigma_X\textbf w_1-2\lambda\textbf w_1=0$$
$$\varSigma_X\textbf w_1=\lambda\textbf w_1$$
所以問題的解需要是 $\varSigma_X$ 的特征向量。優化目標 $\textbf w_1^{\top}\varSigma_X\textbf w_1=\textbf w_1^{\top}\lambda\textbf w_1=\lambda$ ,若要使它最大化,便要使 $\lambda$ 最大化。所以問題的解是 $\varSigma_X$ 的最大特征值所對應的特征向量。
現在已經證明了,第一主成分怎樣得來。那么考慮到 $k$ 個主成分的情況:如何證明,最大的 $k$ 個特征值對應的特征向量所組成的矩陣 $W$ ,滿足投影后的各維方差都盡可能大?
當然是數學歸納法:現在 $k=1$ 時成立(歸納基礎),我們假設 $k=m$ 時成立,只要論證出 $k=m+1$ 時仍成立,那結論就是成立的。
現在已知 $\textbf w_1,\textbf w_2,...,\textbf w_m$ 是一組在新空間的維度為 $m$ 下滿足投影方差最大的基底。$\textbf w_{m+1}$ 要滿足的條件有:
(1) 模為1,$\|\textbf w_{m+1}\|=1$;(2) 與 $\textbf w_1,\textbf w_2,...,\textbf w_m$ 都正交,$\textbf w_{m+1}^{\top}\textbf w_j=0$ ;(3) $\textbf w_{m+1}^{\top}X$ 的方差最大
寫成約束最優化的形式,就是
$$\max_W\quad \textbf w_{m+1}^{\top}\varSigma_X\textbf w_{m+1}$$
$$ \begin{aligned} \text{s.t.}\quad & \|\textbf w_{m+1}\|=1 \\& \textbf w_{m+1}^{\top}\textbf w_j=0,\quad j=1,2,...,m \end{aligned} $$
使用拉格朗日乘數,可得
$$L=\textbf w_{m+1}^{\top}\varSigma_X\textbf w_{m+1}-\lambda (\textbf w_{m+1}^{\top}\textbf w_{m+1}-1)-\sum_{j=1}^m\eta_j\textbf w_{m+1}^{\top}\textbf w_j$$
$$\frac{\partial L}{\partial \textbf w_1}=2\varSigma_X\textbf w_{m+1}-2\lambda\textbf w_{m+1}-\sum_{j=1}^m\eta_j\textbf w_j=0$$
將等式兩邊依次右乘 $\textbf w_j, j=1,2,...,m$ ,就可以依次得到 $\eta_j=0, j=1,2,...,m$,所以有
$$\varSigma_X\textbf w_{m+1}=\lambda\textbf w_{m+1}$$
這樣就論證了 $\textbf w_{m+1}$ 就是協方差矩陣的第 $m+1$ 大的特征值所對應的特征向量。
2) 最小均方重建誤差(mean square reconstruction error,MSRE)
我們知道,如果要從 $Z$ 再重建到原先數據所在的空間中,需要做的變換是 $WZ$ 。最小均方重建誤差的優化目標為 $\min_W\quad\|X-WW^{\top}X\|^2$ ,約束為 $W^{\top}W=I$ 。可以推導出,優化目標等價於 $\max_W\quad\text{tr}(W^{\top}\varSigma_X W)$ 。也就是說和最大投影方差的優化目標一致。
3) 除此之外...
PCA還有另外若干種理解角度,如高斯隨機采樣。從這種角度理解可以參考[2],此外還介紹了PCA在指數族分布上的推廣。
5. PCA 和 SVD 的關系
參考知乎的這個回答。
關於SVD,曾經在介紹 LSA 模型時提到過:
$$X=U\varSigma V^{\top}$$
那么就可以得到
$$XX^{\top}=U\varSigma \varSigma^{\top}U^{\top}$$
所以對比一下
$$\varSigma_X=W\varSigma_Z W^{\top}$$
就知道 U 和 W 的地位是一樣的。
這反映出了奇異值與特征值的關系:矩陣 $X$ 的奇異值對應於 $XX^{\top}$ 的特征值的平方根,$X$ 的左奇異向量對應於 $XX^{\top}$ 的特征向量。
6. 其他說明
對於測試集,中心化操作中所減去的均值是訓練集的;降維操作中的矩陣使用的是訓練集的 $W$ 。機器學習方法中所有的預處理、調超參數等操作都不能混入任何測試集的信息,不妨想象:測試集就一個樣本。
變換矩陣 $W$ 可以通過一個單隱層的AutoEncoder來求解,隱層神經元個數就是所謂的 $k$ ,這樣就可以用神經網絡那一套來訓練了。這招是從 [1] 看的,恍然大悟的感覺,閱讀經典的專著總會有意想不到的收獲。
在實際的工業生產環境下,往往要面對數據量很大的情況,需要在線計算協方差矩陣,使得主成分隨着新數據的到來而實時更新。方法是Oja’s Rule。
降維效果好壞的比較,應該還是從具體任務上的分類效果孰優孰劣來比較的。從低維的圖里可以看出來,PCA還是比較適合於樣本服從高斯分布,所以有些時候PCA降維后未必有很好的效果。
下面這個圖是我本科畢設的實驗,虛線的是PCA之前的,可見在這個特征空間下PCA降維對每個類的效果都有提升。
二、獨立成分分析(Independent component analysis,ICA)
ICA相比於PCA,其追求的效果是不一樣的:ICA尋找的是最能使數據的相互獨立的方向,而PCA僅要求方向是不相關的。我們知道,獨立可以推出不相關,反之則不可以,而高斯分布的情況下獨立等價於不相關。因此ICA需要數據的高階統計量,PCA則只需要二階統計量。
圖片來源:[6]
1. 背景
考慮盲信號分離(Blind signal separation)的問題:設有 $d$ 個獨立的標量信號源發出聲音,其在時刻 $t$ 發出的聲音可表示為 $\textbf s_t=(s_t^{(1)},s_t^{(2)},...,s_t^{(d)})^{\top}\in\mathbb R^d$ 。同樣地,有 $d$ 個觀測器在進行采樣,其在時刻 $t$ 記錄的信號可表示為:$\textbf x_t\in\mathbb R^d$ 。認為二者滿足下式,其中矩陣 $A\in\mathbb R^{d\times d}$ 被稱為mixing matrix,反映信道衰減參數:
$$\textbf x_t=A\textbf s_t$$
顯然,有多少個采樣時刻,就可以理解為有多少個樣本;而信號源的個數可以理解為特征的維數。ICA的目標就是從 $\textbf x$ 中提取出 $d$ 個獨立成分,也就是找到矩陣unmixing matrix $W$ :
$$\textbf s_t=W\textbf x_t,\quad W=A^{-1}$$
圖片來源:[1]
將矩陣 $W$ 記為 $W=({\textbf w_1}^{\top};{\textbf w_2}^{\top};...;{\textbf w_d}^{\top})$ ,也就是它的第 $j$ 行是 ${\textbf w_j}^{\top}$ ,那么 $s_i^{(j)}={\textbf w_j}^{\top}\textbf x_i$ 。(這里的 $W$ 相比於PCA推導中的 $W$ 差一個轉置)
2. 求解
在沒有其他先驗知識的情況下,由於上面式子中的只有觀測信號是已知的,故無法求解:
首先是源信號的幅值不確定,導致矩陣 $W$ 隨幅值的變化而變化;其次是源信號的順序不確定,即使是完全相同的兩組源信號而僅僅是順序不同,因為當順序更改了之后導致矩陣 $W$ 的行排列隨之變化,所以無法確定出唯一的矩陣 $W$ 。
再有,源信號不能是高斯分布的。考慮2維情況,$\textbf s\sim N(\textbf 0,I)$ 。由於觀測信號 $\textbf x_t=A\textbf s_t$ ,根據高斯分布的線性不變性,$\textbf x\sim N(\textbf 0,AIA^{\top})=N(\textbf 0,AA^{\top})$ 。現考慮另外一個mixing matrix $A'=AR$ ,其中 $R$ 是正交矩陣。則這時的觀測信號 $\textbf x_t'=A'\textbf s_t$ ,且$\textbf x'\sim N(\textbf 0,A'IA'^{\top})=N(\textbf 0,ARR^{\top}A^{\top})=N(\textbf 0,AA^{\top})$ ,不同的mixing matrix卻得到了相同的觀測信號。可見當源信號服從高斯分布時 $W$ 不能唯一確定。從圖示可以看出,高斯分布的線性不變性導致ICA失效。
圖片來源:[1],圖中的下標對應於本文的上標
現在考慮ICA的求解。之前說過,$d$ 個源信號是相互獨立的(且沒有噪聲),所以源信號的密度函數可以表示為
$$p_{\textbf s}(\textbf s)=\prod_{j=1}^dp_s(s^{(j)})$$
觀測信號 $\textbf s_t$ 和觀測信號 $\textbf x_t$ 的關系是$\textbf x_t=A\textbf s_t$,它們的概率密度函數有如下關系:
$$p_{\textbf x}(\textbf x)=\frac{p_{\textbf s}(\textbf s)}{|A|}=p_{\textbf s}(\textbf s)|W|$$
可以得到下式
$$p_{\textbf x}(\textbf x)=|W|\prod_{j=1}^dp_s({\textbf w_j}^{\top}\textbf x)$$
現在需要做的是指定 $p_s(\cdot)$ 。在沒有任何先驗知識的情況下,可以指定
$$\begin{aligned}p_s(\cdot)&=\sigma '(\cdot)\\&=(\dfrac{1}{1+\exp(-\cdot)})'\\&=\dfrac{\exp(-\cdot)}{(1+\exp(-\cdot))^2}\\&=\sigma(\cdot)(1-\sigma(\cdot))\end{aligned}$$
這相當於分布函數是logistic函數,密度函數自然就是它的導函數。這是一個合理的指定,因為在很多問題上都work well;如果有先驗知識當然可以指定為其他的形式。
給定 $N$ 個時刻的觀測值,使用極大似然估計,得到似然函數為 $L(W)=\prod_{i=1}^Np_{\textbf x}(\textbf x_i)$,進一步得到對數似然函數為
$$l(W)=\sum_{i=1}^N(\sum_{j=1}^d\log \sigma'({\textbf w_j}^{\top}\textbf x_i)+\log |W|)$$
為了求極大值,需要用梯度上升法。根據公式 $\dfrac{\partial |W|}{\partial W}=|W|(W^{-1})^{\top}$ 以及 $\log\sigma'(\cdot)=1-2\sigma(\cdot)$,可求得對於一個樣本的梯度為
$$\frac{\partial l_{1}}{\partial W}=(\textbf 1-2\sigma({\textbf w_j}^{\top}\textbf x_i))\textbf x_i^{\top}+(W^{-1})^{\top}$$
這里如果logistic函數的自變量為矩陣,就對逐個元素做運算,函數值是階數相同的矩陣。這樣就得到了優化目標對於一個樣本的梯度,進而可以用梯度上升法迭代更新最大值。
附上sklearn中對PCA和ICA的介紹:2.5. Decomposing signals in components (matrix factorization problems)
三、線性判別分析(Linear Discriminant Analysis,LDA)
LDA也稱為Fisher判別分析,是從更利於分類的角度來降維,利用到了訓練樣本的類別標記,追求的是最能夠分開各個類別數據的投影方法。從下圖可以看出,相比於直接用PCA降維,如果將樣本投影到下圖所示的直線上則會更利於分類。
LDA在NLP里通常指的是 latent Dirichlet allocation(隱狄利克雷分配),是一種主題模型的簡稱。不要搞混了。
嚴格說的話,LDA還要求了各個類別的協方差矩陣相等,這樣可以從貝葉斯決策論的角度推導出LDA分類器的判別函數 $g_i(\textbf x)$ 為線性函數(Fisher判別分析則沒有協方差矩陣相同的要求)。
圖片來源:[3]
若想使得投影后的結果有利於分類,需要從兩方面的需求考慮:一方面,投影之后相同類別的樣本之間要盡可能近;另一方面,投影之后各個類別之間要盡可能遠。
1. 二分類的情況
首先考慮二類問題,將 $d$ 維樣本投影到一條方向由 $\textbf w$ 確定的的直線上。現在的問題就是找出 $\textbf w$ 。
一個容易想到的思路是投影后各個類的均值盡可能遠。對於第 $i$ 類樣本,投影前的均值為 $\boldsymbol\mu_i=\frac{1}{n_i}\sum_{\textbf x\in\omega_i}\textbf x$ ,投影后的均值為 $\widetilde{\boldsymbol\mu}_i=\textbf w^{\top}\boldsymbol\mu_i$ ,然后使 $|\widetilde\mu_1-\widetilde\mu_2|^2$ 最大化(因為降維后是一維,所以均值向量就是個標量,用了細體字母)。但這樣其實是不行的,從下圖一看便知:
圖片來源:[7]
上述做法的症結在於,同類樣本之間顯然太遠了,它只考慮了第二個需求而沒有考慮第一個需求。所以,需要用總類內散度來歸一化上述目標。首先定義如下幾個概念:
類內散度矩陣(從定義中可看出與協方差矩陣相差一個常數倍):
$$S_i=\sum_{\textbf x\in\omega_i}(\textbf x-\boldsymbol\mu_i)(\textbf x-\boldsymbol\mu_i)^{\top}$$
總類內散度矩陣就是所有類別的類內散度矩陣之和:
$$S_W=\sum_{i=1}^cS_i$$
類間散度矩陣(式中 $\boldsymbol\mu=\frac1n\sum_{\textbf x}\textbf x$ 為全部數據的均值向量):
(1) 類別數等於2
$$S_B=(\boldsymbol\mu_1-\boldsymbol\mu_2)(\boldsymbol\mu_1-\boldsymbol\mu_2)^{\top}$$
(2) 類別數大於2
$$S_B=\sum_{i=1}^cn_i(\boldsymbol\mu_i-\boldsymbol\mu)(\boldsymbol\mu_i-\boldsymbol\mu)^{\top}$$
總體散度矩陣
$$S_T=S_W+S_B=\frac1n\sum_{\textbf x}(\textbf x-\boldsymbol\mu)(\textbf x-\boldsymbol\mu)^{\top}$$
經過變換矩陣 $W$ 后,類內散度矩陣和類間散度矩陣變為
$$\widetilde S_W=W^{\top}S_WW$$
$$\widetilde S_B=W^{\top}S_BW$$
(從形式上可以看出,與高斯分布經過線性變換后的新協方差矩陣的形式是一樣的)
所以對於二類的情況,優化目標可以寫為
$$J=\frac{|\widetilde\mu_1-\widetilde\mu_2|^2}{\widetilde s_1+\widetilde s_2}=\frac{\textbf w^{\top}S_B\textbf w}{\textbf w^{\top}S_W\textbf w}$$
該式是兩個散度矩陣 $S_B$ 、$S_W$ 的廣義瑞利商。
1) 普通解法:特征值分解
直接令該式的偏導數等於零,可以得到 $S_W^{-1}S_B\textbf w=J\textbf w$ ,所以可以看作是矩陣 $S_W^{-1}S_B$ 的特征值分解問題。另外,由於 $\textbf w$ 的幅值不影響問題的解,所以也可以看作下述約束最優化問題:
$$\min_{\textbf w}\quad -\textbf w^{\top}S_B\textbf w$$
$$\text{s.t.}\quad \textbf w^{\top}S_W\textbf w=1$$
使用拉格朗日乘數法可求得該問題的解就是下式的解:
$$S_W^{-1}S_B\textbf w=\lambda\textbf w$$
2) 另一種解法:典范變量
在這個問題中,其實沒必要做特征值分解:
根據 $S_B=(\boldsymbol\mu_1-\boldsymbol\mu_2)(\boldsymbol\mu_1-\boldsymbol\mu_2)^{\top}$ ,得到 $S_B\textbf w=(\boldsymbol\mu_1-\boldsymbol\mu_2)(\boldsymbol\mu_1-\boldsymbol\mu_2)^{\top}\textbf w$ ,因為后兩個因子的乘積是標量(記作 $a$ ),所以 $S_B\textbf w$ 總是位於 $\boldsymbol\mu_1-\boldsymbol\mu_2$ 的方向上,進而有 $\lambda\textbf w=aS_W^{-1}(\boldsymbol\mu_1-\boldsymbol\mu_2)$ 。所以可以立刻寫出問題的解為
$$\textbf w=S_W^{-1}(\boldsymbol\mu_1-\boldsymbol\mu_2)$$
這個解有時被稱為典范變量(Canonical variable)。
2. 多分類的情況
對於多分類問題,設類別個數是 $c$ ,從分類的角度講是從 $d$ 維空間向 $c-1$ 維空間投影,從降維的角度來說的話是從 $d$ 維空間向 $k$ 維空間投影( $k\leq c-1$ )。記矩陣 $W=(\textbf w_1,...,\textbf w_{c-1})\in\mathbb R^{d\times(c-1)}$ 。優化目標通常是
$$J=\frac{|\widetilde S_B|}{|\widetilde S_W|}=\frac{\text{tr}(W^{\top}S_BW)}{\text{tr}(W^{\top}S_WW)}$$
其解的方程如下,最優矩陣 $W$ 的列向量是下列等式中最大特征值對應的特征向量:
$$S_W^{-1}S_B\textbf w_i=\lambda_i\textbf w_i$$
因為 $S_B$ 是 $c$ 個秩為1或0的矩陣的和,其中只有 $c-1$ 個是獨立的,所以 $S_B$ 的秩不會超過 $c-1$ ,也就是說非零特征值至多只有 $c-1$ 個。
參考資料:
[1] 《模式分類》及slides
[2] 66天寫的邏輯回歸
[3] Dimension Reduction: A Guided Tour
[4][非線性方法推薦看這篇]【機器學習算法系列之三】簡述多種降維算法
[5] CS229 Lecture notes11:ICA
[6] Assessment of multidimensional functional neuroimaging data model by statistical resampling
[7] A Tutorial on Data Reduction Linear Discriminant Analysis
[8] Independent Component Analysis: A Tutorial