教科書上的LDA為什麼長這個樣子?
來自專欄 PaperWeekly13 人贊了文章
線性判別分析(Linear Discriminant Analysis, LDA)是一種有監督降維方法,有關機器學習的書上一定少不了對PCA和LDA這兩個演算法的介紹。LDA的標準建模形式是這樣的(這裡以兩類版本為例,文章會在幾個關鍵點上討論多類情況):
其中, 是類間散布矩陣, 是類內散布矩陣, 是投影直線:
怎麼樣,一定非常熟悉吧,經典的LDA就是長這個樣子的。這個式子的目標也十分直觀:將兩類樣本投影到一條直線上,使得投影后的類間散布矩陣與類內散布矩陣的比值最大。
三個加粗的詞隱含著三個問題:
- 為什麼是類間散布矩陣 呢?直接均值之差 不是更符合直覺嗎?這樣求出來的解和原來一樣嗎?
- 為什麼是投影到直線,而不是投影到超平面?PCA是把d維樣本投影到c維(c<d),LDA為什麼不能也投影到c維,而是直接投影到1維呢?同樣地,在K類LDA中,為什麼書上寫的都是投影到K-1維,再高一點不行嗎?這是必然嗎?
- 為什麼是類間散布與類內散布的比值呢?差值不行嗎?
這篇文章就圍繞這三個問題展開。我們先回顧一下經典LDA的求解,然後順次講解分析這三個問題。
0. 回顧經典LDA:
原問題等價於這個形式:
然後就可以用拉格朗日乘子法了:
求導並令其為0:
得到解:
對矩陣 進行特徵值分解就可以得到w。但是有更簡單的解法:
而其中 是一個標量,所以 和 共線,得到:
求解完畢。
非常優雅,不愧是教科書級別的經典演算法,整個求解一氣呵成,標準的拉格朗日乘子法。但是求解中還是用到了一個小技巧: 是標量,從而可以免去特徵值分解的麻煩。那麼,我們能不能再貪心一點,找到一種連這個小技巧都不需要的求解方法呢?答案是可以,上面的問題(1)就是在做這個事情。
1. 類間散布&均值之差
我們不用類內散布矩陣了 ,改用均值之差 這個更符合直覺的東西:
還是用拉格朗日乘子法:
求導並令其為0:
得到解:
怎麼樣,是不是求解更簡單了呢,不需要任何技巧,一步一步下來就好了。
為什麼說均值之差更符合直覺呢?大家想啊,LDA的目的是讓投影后的兩類之間離得更遠,類內離得更近。說到類內離得更近能想到的最直接的方法就是讓類內方差最小,這正是類內散布矩陣;說到類間離得更遠能想到的最直接的方法肯定是讓均值之差最大,而不是均值之差與自己的克羅內克積這個奇怪的東西最大。
那麼經典LDA為什麼會用類間散布矩陣呢?我個人認為是這樣的表達式看起來更加優雅:分子分母是齊次的,並且這個東西恰好就是廣義瑞利商:
雖然經典LDA求解沒有上面這個方法直接,但是問題表述更加規範,所用到的技巧也非常簡單,不會給是使用者帶來困擾,所以LDA最終採用的就是類間散布矩陣了吧。
2. 直線&超平面
上面那個問題只算是小打小鬧,沒有太大的意義,但是這個問題就很有意義了:LDA為什麼直接投影到直線(一維),而不能像PCA一樣投影到超平面(多維)呢?
我們試試不就完了hhh。
假設將樣本投影到 上,其中每一個 都是經典LDA中的 。也就相當於我們不是把樣本投影到一條直線上,而是投影到c條直線上,也就相當於投影到了超平面上。投影后的樣本坐標為:
所以樣本的投影過程就是:
那麼,均值的投影過程也是這樣:
投影后的均值之差的二範數:
為什麼不用第一行的向量內積而偏要用第二行的跡運算呢?因為這樣可以拼湊出類間散布 來,和經典LDA保持形式的一致。
回顧一下經典LDA的形式:
現在我們有了 ,還缺個約束,類比一下就可以得到 了:
實際上,約束也可以選擇成 ,這兩個約束實際上都是在限制W的解空間,得出來的解是等價的,這兩個約束有什麼區別呢?我只發現了一點:
回想 是c條投影直線,為了確保向這c條直線投影能等價於向c維子空間投影,我們需要保證c條直線是線性無關的,即 。看一下約束:
右邊是秩為c的單位矩陣,因為矩陣乘積的秩不大於每一個矩陣的秩,所以左邊這三個矩陣的秩都要不小於c,因此我們得到了 。也就是說, 能夠保證我們在向一個c維子空間投影。而約束 中沒有顯式地表達這一點。我對矩陣的理解還不夠深入,不知道 是否也隱含了對秩的約束,所以為了保險起見,我選擇了帶有顯式秩約束的 ,這樣就得到了我們的高維投影版LDA:
下面來求解這個問題。還是拉格朗日乘子法:
求導並令其為0:
得到了:
在大部分情況下,一些協方差矩陣的和 是可逆的。即使不可逆,上面這個也可以用廣義特徵值問題的方法來求解,但是這裡方便起見我們認為 可逆:
我們只要對 進行特徵值分解,就可以得到d個特徵向量了,挑出最大特徵值對應的c個特徵向量來組成W,我們不就得到向c維子空間的投影了嗎?!
真的是這樣嗎?
不是這樣的。誠然,我們可以選出c個特徵向量,但是其中只有1個特徵向量真正是我們想要的,另外c-1個沒有意義。
觀察:
發現了嗎?等式右邊的 是一個向量,換句話說,是一個秩為1的矩陣。那麼,這個乘積的秩也不能大於1,並且它不是0矩陣,所以
秩為1的矩陣只有1個非零特徵值,也只有1個非零特徵值對應的特徵向量w。
可能有人會問了,那不是還有零特徵值對應的特徵向量嗎,用它們不行嗎?
不行。來看一下目標函數:
我們剛才得到的最優性條件:
所以目標函數為:
而我們的W只能保證 中的一個非零,無論我們怎麼選取剩下的c-1個w,目標函數也不會再增大了,因為唯一一個非零特徵值對應的特徵向量已經被選走了。
所以,兩類LDA只能向一條直線投影。
這裡順便解釋一下K類LDA為什麼只能投影到K-1維,其實道理是一樣的。K類LDA的類間散布矩陣是:
可以看出, 是K個秩一矩陣 的和(因為 是秩一的向量),所以它的秩最大為K。並且 ,所以這K項中有一項可以被線性表出。所以, 的秩最大為K-1。也即:
只有K-1個非零特徵值。所以,K類LDA最高只能投影到K-1維。
咦?剛才第三個問題怎麼提的來著,可不可以不用比值用差值,用差值的話會不會解決這個投影維數的限制呢?
3. 比值&差值
經典LDA的目標函數是投影后的類間散布與類內散布的比值,我們很自然地就會想,為什麼非得用比值呢,差值有什麼不妥嗎?
再試試不就完了hhh。
注意,這一節我們不用向量w,而使用矩陣W來討論,這也就意味著我們實際上在同時討論二類LDA和多類LDA,只要把 和 換成對應的就好了。
注意到可以通過放縮W來得到任意大的目標函數,所以我們要對W的規模進行限制,同時也進行秩限制:
也就得到了差值版的LDA:
依然拉格朗日乘子法:
求導並令其為0:
得到了:
由 ,有:
可以得到:
若括弧內的東西可逆,則上式可以寫為:
注意到, 的秩不大於K-1,說明等號左邊的秩不大於K-1,那麼等號右邊的秩也不大於K-1,即
所以我們還是會遇到秩不足,無法求出K-1個以上的非零特徵值和對應的特徵向量。這樣還不夠,我們還需要證明的一點是,新的目標函數在零特徵值對應的特徵向量下依然不會增加。
目標函數(稍加變形)為:
再利用剛才我們得到的最優性條件(稍加變形):
所以目標函數為:
結論沒有變化,新的目標函數依然無法在零特徵值的特徵向量下增大。
綜合新矩陣依然秩不足和零特徵值依然對新目標函數無貢獻這兩點,我們可以得到一個結論:用差值代替比值也是可以求解的,但是我們不會因此受益。
既然比值和差值算出來的解性質都一樣,那麼為什麼經典LDA採用的是比值而不是差值呢?
我個人認為,這可能是因為比值算出來的解還有別的直覺解釋,而差值的可能沒有,所以顯得更優雅一些。什麼直覺解釋呢?
在二分類問題下,經典LDA是最小平方誤差準則的一個特例。若讓第一類的樣本的輸出值等於 ,第二類樣本的輸出值等於 , 代表相應類樣本的數量,然後用最小平方誤差準則求解這個模型,得到的解恰好是(用比值的)LDA的解。這個部分PRML上有講解。
4. 總結
這篇文章針對教科書上LDA的目標函數拋出了三個問題,並做了相應解答,在這個過程中一步一步深入理解LDA。
第一個問題:可不可以用均值之差而不是類間散布。
答案:可以,這樣做更符合直覺,並且更容易求解。但是採用類間散布的話可以把LDA的目標函數表達成廣義瑞利商,並且上下齊次更加合理。可能是因為這些原因,經典LDA最終選擇了類間散布。
第二個問題:可不可以把K類LDA投影到大於K-1維的子空間中。
答案:不可以,因為類間散布矩陣的秩不足。K類LDA只能找到K-1個使目標函數增大的特徵值對應的特徵向量,即使選擇了其他特徵向量,我們也無法因此受益。
第三個問題:可不可以用類間散布與類內散布的差值,而不是比值。
答案:可以,在新準則下可以得到新的最優解,但是我們無法因此受益,K類LDA還是只能投影到K-1維空間中。差值版LDA與比值版LDA相比還缺少了一個直覺解釋,可能是因為這些原因,經典LDA最終選擇了比值。
所以,教科書版LDA如此經典是有原因的,它在各個方面符合了人們的直覺,本文針對它提出的三個問題都沒有充分的理由駁倒它,經典果然是經典。
註:這裡是模式識別和機器學習方向的在讀碩士一枚,來到知乎想和大家分享一些自己的學習心得,歡迎大家在評論區討論。
附上前幾天寫的文章,知乎處女作嘿嘿:
DeAlVe:(概率)PCA和(變分)自編碼器推薦閱讀:
※有了這個神器,機器學習特徵選擇再也不用愁!
※循序漸進的機器學習之路 | learning札記| 3th
※吳恩達機器學習:方差與偏差
※人工智慧時代,學編程勢在必行
※邏輯回歸2(極大似然與梯度下降)