本文的閱讀等級:高級
在許多現實應用中,我們往往要面對高維度 (多變數) 數據,為便利分析,降維 (dimension reduction) 常是一個必要的前處理工作。主成分分析 (principal components analysis) 是目前普遍被採用的降維技術 (見“主成分分析”)。主成分分析是一種非教導式學習法 (unsupervised learning),根據樣本自身的統計性質降維,並不在乎 (甚至不知道) 這些數據的後續應用。在機器學習領域,分類 (classification) 與回歸 (regression) 是兩個最具代表性的問題描述典範。所謂分類是指識別出數據點所屬的類別。本文介紹英國統計學家費雪 (Ronald Fisher) 最早提出的一個專為包含兩個類別樣本所設計的教導式 (supervised) 降維法,稱作費雪的判別分析 (Fisher’s discriminant analysis),隨後並討論三個延伸問題:
- 甚麼是線性判別分析 (linear discriminant analysis)?它與費雪的判別分析有何關係?
- 線性判別分析與最小平方法有甚麼關聯性?
- 費雪的判別分析如何推廣至多類別 (類別數大於2) 判別分析?

Ronald Fisher (1890-1962) From http://upload.wikimedia.org/wikipedia/commons/4/46/R._A._Fischer.jpg
費雪的判別分析
假設我們有一筆維數等於 ,樣本大小為
的數據
,也就是說,數據點
散布在
空間。假設此樣本包含兩個類別,第一類有
個數據點,以
表示指標集合,第二類有
個數據點,以
表示指標集合,
。費雪提出這個想法:將
空間的數據點投影至一穿越原點的直線,以達到降低樣本維數的效果。透過改變直線的指向,我們期望找出一條最佳直線使得兩類數據點於直線的投影盡可能地分離開來,這就是費雪的判別分析的目的。令單位向量
(
) 代表直線
的指向,即
。對於任一
,令
表示
在直線
的正交投影。根據正交原則,殘餘量
正交於
(見“正交投影──威力強大的線代工具”),即有
,整理可得
。
根據上式,令 至直線
的投影量 (投影座標) 為
,即
,
。設定一門檻值
,立刻得到一個簡單的線性分類法則:若
,則數據點
歸於第一類 (
),否則歸於第二類 (
)。稍後我們會說明如何決定
,眼前的問題是:怎麼求出使分類效果最佳的直線指向
?
直覺上,為了獲致最好的分類效果,我們希望分屬兩類別的數據點的投影距離越遠越好。寫出兩個類別數據點的各自樣本中心 (樣本平均數向量):
。
投影量的樣本平均數就是樣本中心的投影,如下:
。
因此,兩類別的樣本中心投影的距離為
。
由於我們已經加入限制 ,樣本中心投影的距離平方
,稱為組間散布 (between-class scatter),不會隨著
的長度變化而無限制地增大。使用 Lagrange 乘數法可解出
使最大化組間散布平方 (見“Lagrange 乘數法”):
其中 是 Lagrange 乘數。計算偏導數 (見“矩陣導數”),
。
令上式等於零,因為 為一純量,立得
,再予以歸一化即可。這個做法有一個明顯的缺點。下圖左顯示二類數據點在平面上有良好的散布區隔,但投影至連接樣本中心的直線後反而產生嚴重的交疊。這個現象發生的原因在於描述數據點的兩個變數存在顯著的共變異,換句話說,兩變數之間的相關係數不為零 (見“相關係數”)。為了克服這個問題,費雪建議直線指向
不僅要使樣本中心的投影分離開來,同時還要使同一組內的投影變異越小越好,如圖右。
定義兩類別的投影樣本的組內散布 (within-class scatter) 為
。
將組內散布 除以
即為組內樣本變異數 (見“樣本平均數、變異數和共變異數”)。整體的投影樣本組內散布為
。費雪提出的準則為最大化組間散布和整體組內散布的比值:
。
下面解說如何求出使上式最大的單位向量 。定義組內散布矩陣
,
以及整體組內散布矩陣 。對於
,組內散布
可表示為組內散布矩陣
的二次型:
整體組內散布即為
。
類似地,定義組間散布矩陣
。
組間散布 也可表示為組間散布矩陣
的二次型:
組內散布矩陣 (在不造成混淆的情況下,整體組內散布矩陣簡稱為組內散布矩陣) 是一個對稱半正定矩陣。如果
,
通常是正定矩陣,也就是可逆矩陣,以下假設如此。組間散布矩陣
是樣本中心差
的外積 (outer product),因此是對稱半正定;當
(絕大多數的應用都滿足此條件),
。
使用組間散布和組內散布的二次型表達,費雪準則可用矩陣式表示為
。
最大化費雪準則等價於下列約束優化問題 (見“Hermitian 矩陣特徵值的變化界定”):
使用 Lagrange 乘數法不難推導出最佳條件式。這裡我們介紹一個線性代數方法:費雪準則也稱為廣義 Rayleigh 商,最大化 等價於求解廣義特徵值問題 (見“廣義特徵值問題”):
。
由於 是可逆矩陣,廣義特徵值問題退化為一般特徵值問題
。因為
和
都是半正定,
的特徵值
為非負數 (見“Hermitian 矩陣乘積的性質”,定理二),保證
必然是實特徵向量。廣義特徵方程左乘
,
,可知費雪準則為
,因此我們要挑選出最大的特徵值。但
,表示
僅有唯一一個正特徵值。寫出特徵方程的顯式表達
,忽略式中的純量,對應唯一正特徵值的特徵向量為
。
直白地說,最佳投影直線的指向即為連接兩類別樣本中心的向量於排除組內散布效應後的方向 (如上圖右所示)。
線性判別分析
費雪的判別分析其實是一個應用於兩類別樣本的降維方法,它本身並不具備判別功能。如欲將費雪的判別分析引進分類功能,我們還須決定分類法則 的門檻值
,這個分類法稱為線性判別分析 (linear discriminant analysis,簡稱 LDA)。線性判別分析假設分類樣本的條件密度
和
服從常態分布 (見“共變異數矩陣與常態分布”):
,
其中 是類別
的平均數向量,
是
階共變異數矩陣 (covariance matrix),
表示
的行列式。請特別注意,線性判別分析假設兩類別有相同的共變異數矩陣
,也就是說,兩類別的數據點具有相同的散布型態。
給定一數據點 ,如何判定它應歸類於
抑或
?貝氏定理 (Bayes’ theorem) 提供了解答 (見“貝氏定理──量化思考的利器”):
,
其中
是類別
出現的機率,稱為先驗機率 (priori probability);
是條件密度函數,即給定類別
,數據點
的機率密度函數,也稱為似然 (likelihood);
是數據點
的機率密度函數,稱為證據 (evidence),算式為
;
是指在給定數據點
的情況下,該點屬於
的機率,稱為後驗機率 (posterior probability)。
所謂貝氏最佳分類器就是將數據點 的類別指定給最大後驗機率所屬的類別:若
,則
歸於第一類,否則歸於第二類。因為對數函數
是一個單調遞增函數,
等價於
。此外,後驗機率
和
有相同的分母
,我們大可直接比較分子的大小。所以,貝氏最優分類法則可以改寫為:若
,則
歸於第一類,否則歸於第二類。
考慮第一類數據點 ,將多變量常態分布代入
,移除常數部分,得到不等式
,
乘開化簡可得
。
因此,線性判別分析的分類法則如下:若 ,則
歸於第一類,否則歸於第二類,其中
給定一訓練樣本,先驗機率 以類別樣本出現的頻率
估計,類別平均數向量
以樣本平均數向量
估計,共變異數矩陣
則以加權平均 (有偏) 共變異數矩陣
估計,其中
採用估計量的線性判別分析給出
,
這與費雪的判別分析的最佳直線有相同的指向,同時並確定了判別門檻
。
最小平方法
線性判別分析給出分隔兩類別的線性邊界 ,我們不免好奇這個邊界可否從最小平方法推導?的確可行,構想是將兩類別的分類問題改寫成回歸問題。考慮線性回歸模型
。若樣本數據點
屬於第一類,則設目標值為
;若
屬於第二類,設目標值為
。定義最小平方誤差函數
,
其中 若
,
若
。計算偏導數,
令上面兩式為零。由 可解出
將解得的 表達式代入
,整理化簡可得 (推導過程見[1])
,
展開即有
不計純量,則得
。
因為 的長度不影響邊界
,直接設
,可得分類法則:若
,則
歸為第一類,否則歸為第二類。原因如下:代入
,則
上面不等式係因 是正定矩陣。費雪的判別分析、線性判別分析和最小平方法導出同樣的直線指向
。請讀者自行驗證:當
,最小平方法和線性判別分析給出相同的分類邊界
。
多類別判別分析
費雪的判別分析限定於包含兩類別的樣本,後續學者將它推廣至 類別的情況,即
。首先,我們推廣組內散布矩陣和組間散布矩陣。多類別的組內散布矩陣可由
延伸而得,
,
其中
且
,
上式中 。不過,組間散布矩陣的適切推廣則不明顯。我們從另一個方向著手。定義整體樣本平均數向量
和整體散布矩陣
為
。
使用上面兩式化簡整體散布矩陣 ,過程如下:
這個結果提示了組間散布矩陣可定義為 (此定義於先前二類別定義的差異見註解[2])
,
即有,。
我們引進 個單位向量
,對應
個直線。對於任一
,分別投影至
所指的直線可得
個線性特徵:
,
或合併為矩陣形式
,
其中 是
階矩陣。令
表示樣本
於
,
,的投影,即
,
。如同
有
階組內散布矩陣和組間散布矩陣,
也可定義
階組內散布矩陣和組間散布矩陣:
其中
定義於 的組內及組間散布矩陣和定義於
的組內及組間散布矩陣的關係如下:
接下來將定義於兩類別的費雪準則推廣至 個類別。常見的目標函數有兩種,一為跡數表達式[3],另一為行列式表達式[4],分述於下:
和
。
有趣的是,這兩個準則有相同的最佳條件:
,
其中 是廣義特徵向量,對應廣義特徵值
。由於推導涉及跡數和行列式的導數,過程不免繁瑣,欲深入了解的讀者請見註解[5]和[6]。提醒讀者,
亦為
的特徵向量,對應非負特徵值
。另外,
是正定矩陣,推知
可對角化 (見“Hermitian 矩陣乘積的性質”,定理四),也就是說,
為一線性獨立集。但
並非對稱矩陣 (除非
和
是可交換矩陣),故
並不是一個單範正交集 (orthonormal set)。最後說明
的大小限制。我們可以證明
和
有相同的特徵值
(見註解[5])。為了方便,下面用
來解說。目標函數
可表示為
。
因為加入零特徵值不會加大 ,我們要求
都是正特徵值,故
。另一方面,
是
的線性組合,
,
故 。給定包含
個類別的樣本,多類別判別分析所能產生的有效線性特徵總數至多為
。
在確保樣本保有最佳分類效果的前提下,多類別判別分析將 維數據點
壓縮至
維數據點
。針對降維後的新樣本,如何設計有效的多類別分類器呢?這是機器學習領域的熱門研究主題,日後我將陸續為讀者介紹一些應用普及的方法與技術。
註解
[1] 先證明下列等式:
。
直接乘開組內散布矩陣 ,
,可得
故 。寫出
,
代入 ,得到
。
等號左邊化簡如下:
等號右邊為
。
[2] 對於兩類別情況 (即 ),多類別組間散布矩陣為
,
其中
因此, 可化簡為
,
上式與費雪的判別分析使用的二類別的組間散布矩陣的差異僅在於 ,乘入常數於費雪準則
不會對最佳解造成任何影響。
[3] Christopher M. Bishop, Pattern Recognition and Machine Learning, Springer, 2006, pp 192.
[4] Richard O. Duda, Peter E. Hart, and David G. Stork, Pattern Classification, 2nd ed., John Wiley & Sons, 2001, pp 123.
[5] 對於目標函數
,
使用跡數的導數恆等式 (見“跡數與行列式的導數”,tr-20),
令 ,並右乘
,可得最佳條件式
,
或表示為
。
我們需要這個性質: 是對稱正定矩陣且
是對稱矩陣,則存在一
階可逆矩陣
使得
和
為對角矩陣 (見“廣義特徵值問題”)。證明於下 (詳見“每週問題 July 15, 2013”):因為
是對稱正定矩陣,可知存在一可逆矩陣
使得
(見“正定矩陣的性質與判別方法”)。不難確認
是對稱半正定,故存在一正交矩陣
,
,使得
,其中
且
,
。設
,則
且
。
將上面二式改寫為 和
,合併可得
,
也就是說 是
的特徵值。將上式代入最佳條件式,可得
。
令 階矩陣
。以
取代
來計算目標函數,使用跡數循環不變性,可得
對於任何可逆矩陣 ,
總是成立,換句話說,目標函數
完全由
的行空間 (column space) 所決定。既然
和
有相同的目標函數值,我們可以用
替換
,最佳條件式即為
。
以行向量表示 ,則有廣義特徵方程
。
我們推得一個重要的結論: 階
和
階
有相同的
個非負特徵值
。
[6] 對於目標函數
,
取對數可得
。
這麼做的原因是對數函數不會改變極值的位置。使用行列式的導數恆等式 (見“跡數與行列式的導數”,det-10),
。
令 ,並右乘
,可得
,
此即註解[5]所導出的最佳條件式。以 (
為一可逆矩陣) 替換
,目標函數為
這說明 完全由
的行空間所決定,複製[5]的論證過程,最佳條件式為
。
本文過長,我校讀過二遍,如果讀者發現仍有錯誤請不吝指正,謝謝。
周老師,我有個疑問:
文中,“直白地說,最佳投影直線的指向即為連接二個類別樣本中心的向量於排除組內散布效應後的方向 (如上圖左所示)。”
這裡是否應該是“如上圖右所示”?
謝謝,你眼力真好!我後來也發現了這個錯誤,已訂正。還有沒有別的錯誤?特別是註解,記號實在非常繁雜。
老師,我剛才把註解部分看了一遍,覺得應該沒有任何問題。
謝謝老師的文章,令我對LDA背後的理論有更深刻的理解。
周老師您好
您提到在兩類別資料中求取w時
如果 n>d,Sw 通常是正定矩陣
此時的特例應該是n>d時資料矩陣還是可能是 singular matrix
而原本應是求解廣義特徵值問題也因為 Sw與Sb 的inverse不存在而無法轉換
因此想請問您有甚麼辦法能在不刪除線性相依變數的前提下進行LDA呢?
如果
是不可逆矩陣,你可以在主對角元加入一個很小的擾動量
,成為
。不過,解出的
將隨
的大小改變。
周老師,我有兩個的疑問:1多分類情況的目標函數的含義。以不相互正交基底的共變異數矩陣的行列式的意義?2多分類下,最大特征值對應的特征向量分割性能最好,最小特征值對應的特征向量分割性能最差,為什麼還要選它呢?
1) 矩陣的行列式等於所有特徵值之積;
2) 這些特徵向量都是兩兩正交,即便特徵值小的特徵向量仍具備分割能力。
謝謝周老師的介紹,實在非常詳盡,含括大部分推導細節,很棒的文章,受益良多。
發現一個很小的錯誤,但不影響其他式子的推導:在線性判別分析,一開始提到的多變量常態分布函數,$(2\pi)$的指數應是$\frac{d}{2}$喔。
Pingback: 費雪的判別分析與線性判別分析 | 不分享空間
你好, 我觉公式3 可以写成arg max trace(A)/trace(B), 这样求导更简单,而不必是arg max trace(inv(A)B)