機器學習中的數學-線性判別分析(LDA)


前言
在之前的一篇博客機器學習中的數學(7)——PCA的數學原理中深入講解了,PCA的數學原理。談到PCA就不得不談LDA,他們就像是一對孿生兄弟,總是被人們放在一起學習,比較。這這篇博客中我們就來談談LDA模型。由於水平有限,積累還不夠,有不足之處還望指點。下面就進入正題吧。

為什么要用LDA
前面的博客提到PCA是常用的有效的數據降維的方法,與之相同的是LDA也是一種將數據降維的方法。PCA已經是一種表現很好的數據降維的方法,那為什么還要有LDA呢?下面我們就來回答這個問題?
PCA是一種無監督的數據降維方法,與之不同的是LDA是一種有監督的數據降維方法。我們知道即使在訓練樣本上,我們提供了類別標簽,在使用PCA模型的時候,我們是不利用類別標簽的,而LDA在進行數據降維的時候是利用數據的類別標簽提供的信息的。
從幾何的角度來看,PCA和LDA都是講數據投影到新的相互正交的坐標軸上。只不過在投影的過程中他們使用的約束是不同的,也可以說目標是不同的。PCA是將數據投影到方差最大的幾個相互正交的方向上,以期待保留最多的樣本信息。樣本的方差越大表示樣本的多樣性越好,在訓練模型的時候,我們當然希望數據的差別越大越好。否則即使樣本很多但是他們彼此相似或者相同,提供的樣本信息將相同,相當於只有很少的樣本提供信息是有用的。樣本信息不足將導致模型性能不夠理想。這就是PCA降維的目標:將數據投影到方差最大的幾個相互正交的方向上。這種約束有時候很有用,比如在下面這個例子:

對於這個樣本集我們可以將數據投影到x軸或者y軸,但這都不是最佳的投影方向,因為這兩個方向都不能最好地反映數據的分布。很明顯還存在最佳的方向可以描述數據的分布趨勢,那就是圖中紅色直線所在的方向。也是數據樣本做投影,方差最大的方向。向這個方向做投影,投影后數據的方差最大,數據保留的信息最多。
但是,對於另外的一些不同分布的數據集,PCA的這個投影后方差最大的目標就不太合適了。比如對於下面圖片中的數據集:

針對這個數據集,如果同樣選擇使用PCA,選擇方差最大的方向作為投影方向,來對數據進行降維。那么PCA選出的最佳投影方向,將是圖中紅色直線所示的方向。這樣做投影確實方差最大,但是是不是有其他問題。聰明的你一定發現了,這樣做投影之后兩類數據樣本將混合在一起,將不再線性可分,甚至是不可分的。這對我們來說簡直就是地獄,本來線性可分的樣本被我們親手變得不再可分。
帥氣英俊的你也一定發現了,圖中還有一條耀眼的黃色直線,向這條直線做投影即能使數據降維,同時還能保證兩類數據仍然是線性可分的。上面的這個數據集如果使用LDA降維,找出的投影方向就是黃色直線所在的方向。
這其實就是LDA的思想,或者說LDA降維的目標:將帶有標簽的數據降維,投影到低維空間同時滿足三個條件:

盡可能多地保留數據樣本的信息(即選擇最大的特征是對應的特征向量所代表的的方向)。
尋找使樣本盡可能好分的最佳投影方向。
投影后使得同類樣本盡可能近,不同類樣本盡可能遠。
其實第二個和第三個條件是基本等價的,我們很容易想到,使樣本盡可能好分的投影方向,就是要使投影后使得同類樣本盡可能近,不同類樣本盡可能遠。
上面大致講解的LDA的基本思想,以及與PCA的不同,下面就來介紹一下LDA模型。

LDA模型
LDA模型實現基本思想是和PCA相同的,都是向低維空間做投影,所以對於向量投影的基本的知識,這里就不再進行講解了,不懂得同學可以參看文章開頭提到的那篇PCA的博客。

符號
x : 表示訓練樣本,使用列向量表示
xjixij:表示第i類中的第j個樣本
C:表示有C類樣本
μiμi:表示第i類訓練樣本的均值 (i=1,2,…,C)
MiMi:表示第i類訓練樣本的數目
MM:表示訓練樣本的總數目 M=∑Ci=0MiM=∑i=0CMi
μμ:是所有樣本的均值向量 μ=1M∑Mi=1xi=1C∑Ci=1μiμ=1M∑i=1Mxi=1C∑i=1Cμi
DiDi:表示第i類樣本集合
SwSw:表示類內散度矩陣,w是within的簡寫
SbSb:表示類間散度矩陣,b是between的簡寫
優化目標
為什么是線性判別分析呢?所謂的線性就是,我們要將數據點投影到直線上(可能是多條直線),直線的函數解析式又稱為線性函數。通常直線的表達式為
y=wTx
y=wTx

其實這里的x就是樣本向量(列向量),如果投影到一條直線上w就是一個特征向量(列向量形式)或者多個特征向量構成的矩陣。至於w為什么是特征向量,后面我們就能推導出來。y為投影后的樣本點(列向量)。
我們首先使用兩類樣本來說明,然后再推廣至多類問題。
將數據投影到直線w上,則兩類樣本的中心在直線上的投影分別為wTμ0wTμ0和wTμ1wTμ1,若將所有的樣本點都都投影到直線上,則兩類樣本的協方差分別為wT∑0wwT∑0w和wT∑1wwT∑1w.
投影后同類樣本協方差矩陣的求法:
∑x∈Di(wTx−wTui)2=∑x∈Di(wT(x−ui))2=∑x∈DiwT(x−μi)(x−ui)Tw=wT∑x∈Di[(x−μi)(x−ui)T]w
∑x∈Di(wTx−wTui)2=∑x∈Di(wT(x−ui))2=∑x∈DiwT(x−μi)(x−ui)Tw=wT∑x∈Di[(x−μi)(x−ui)T]w

上式的中間部分∑x∈Di(x−μi)(x−ui)T∑x∈Di(x−μi)(x−ui)T便是同類樣本投影前的協方差矩陣。由還可以看出同類樣本投影前后協方差矩陣之間的關系。如果投影前的協方差矩陣為ΣΣ 則投影后的為 wTΣwwTΣw.
上式的推導需要用到如下公式:a,ba,b 都是列向量,(a⋅b)2=(aTb)2=(aTb)(aTb)=(aTb)(aTb)T=aTbbTa(a⋅b)2=(aTb)2=(aTb)(aTb)=(aTb)(aTb)T=aTbbTa .
欲使同類樣例的投影點盡可能接近,可以讓同類樣本點的協方差矩陣盡可能小,即wT∑0w+wT∑1wwT∑0w+wT∑1w 盡可能小; 而欲使異類樣例的投影點盡可能遠離,可以讓類中心之間的距離盡可能大,即||wTμ0−wTμ1||22||wTμ0−wTμ1||22 盡可能大。同時考慮二者,則可得到欲最大化的目標
J=||wTμ0−wTμ1||22wT(∑0+∑1)w=wT(μ0−μ1)(μ0−μ1)TwwT(∑0+∑1)w
J=||wTμ0−wTμ1||22wT(∑0+∑1)w=wT(μ0−μ1)(μ0−μ1)TwwT(∑0+∑1)w

上式中的||⋅||||⋅||表示歐幾里得范數,||x−μi||2=(x−μi)T(x−μi)||x−μi||2=(x−μi)T(x−μi)
協方差與樣本分布的關系
上面的這段話來自於周志華老師的機器學習書籍,不知道大家對上面的這段話是否存在疑問? 我在閱讀 的時候是存在疑問的,即為什么同類樣本點的協方差矩陣盡可能小,同類樣例的投影點就盡可能接近。我想大概是這樣的:我們在最初接觸協方差是用來表示兩個變量的相關性,我們來看一下協方差和方差的公式:
cov=1n∑(X−X¯)(Y−Y¯)
cov=1n∑(X−X¯)(Y−Y¯)

cov=1n∑(X−X¯)(X−X¯)
cov=1n∑(X−X¯)(X−X¯)

可以看到協方差的公式和方差十分相近,甚至可以說方差是協方差的一種特例。我們知道方差可以用來度量數據的離散程度,(X−X¯)(X−X¯)越大,表示數據距離樣本中心越遠,數據越離散,數據的方差越大。同樣我們觀察,協方差的公式,(X−X¯)(X−X¯)和(Y−Y¯)(Y−Y¯)越大,表示數據距離樣本中心越遠,數據分布越分散,協方差越大。相反他們越小表示數據距離樣本中心越近,數據分布越集中,協方差越小。
所以協方差不僅是反映了變量之間的相關性,同樣反映了多維樣本分布的離散程度(一維樣本使用方差),協方差越大(對於負相關來說是絕對值越大),表示數據的分布越分散。所以上面的“欲使同類樣例的投影點盡可能接近,可以讓同類樣本點的協方差矩陣盡可能小”就可以理解了。
類間散度矩陣
類間散度矩陣其實就是協方差矩陣乘以樣本數目,即散度矩陣與協方差矩陣只是相差一個系數。對於協方差矩陣和散度矩陣有疑問的同學可以參考博文:機器學習中的數學(3)——協方差矩陣和散布(散度)矩陣
對於兩類樣本而言:
Sb=(μ0−μ1)(μ0−μ1)T
Sb=(μ0−μ1)(μ0−μ1)T

對於多類問題,類間散度矩陣公式:
Sb=∑i=1C(μi−μ)(μi−μ)T
Sb=∑i=1C(μi−μ)(μi−μ)T

表示各個類樣本均值的協方差矩陣。
如果我們只使用這樣一個類間散度矩陣這樣一個約束條件來對數據進行降維:即使得類間的樣本投影后盡可能遠離。那么參考PCA的降維過程:
Sbu=λu
Sbu=λu

不同的是,為了保證類間的樣本投影后盡可能遠離,我們應該選擇特征值最大的特征向量代表的方向做投影。這樣才能保證,不同類樣本投影之后方差盡可能地大,盡可能能地遠離。
類內散度矩陣
對於兩類問題而言:
Sw=Σ0+Σ1=∑x∈D0(x−μ0)(x−u0)T+∑x∈D1(x−μ1)(x−u1)T
Sw=Σ0+Σ1=∑x∈D0(x−μ0)(x−u0)T+∑x∈D1(x−μ1)(x−u1)T

對於多類問題類內散度矩陣公式:
Sw=∑i=1C∑j=1Mi(xji−μi)(xji−μ1)T
Sw=∑i=1C∑j=1Mi(xij−μi)(xij−μ1)T

其中:
∑j=1Mi(xji−μi)(xji−μi)T
∑j=1Mi(xij−μi)(xij−μi)T
表示第i類樣本的協方差矩陣。所以SwSw就是表示C類樣本協方差矩陣之和。
如果我們只使用這樣一個類內散度矩陣這樣一個約束條件來對數據進行降維:即使得類內的樣本投影后盡可能接近。那么參考PCA的降維過程:
Swu=λu
Swu=λu

不同的是,為了保證類內的樣本投影后盡可能接近,我們應該選擇特征值最小的特征向量代表的方向做投影。這樣才能保證,同類樣本投影之后方差盡可能地小,盡可能能地接近。
優化
定義過類內散度矩陣和類間散度矩陣后,我們可以將上述的優化目標重新寫為:
J=wTSbwwTSww
J=wTSbwwTSww

這就是LDA欲最大化的目標,即SbSb與SwSw的廣義瑞利商。
如何確定ww呢?注意到上式的分子和分母都是關於ww的二次項,因此上式的解與ww的長度無關,只與其方向有關.不失一般性,令wTSww=1wTSww=1,則上式等價於:
minw−wTSbw
minw−wTSbw

st.wTSww=1
st.wTSww=1

使用拉格朗日乘子法,(對於拉格朗日乘子法不太了解的同學可以參考博文:機器學習中的數學(5)——拉格朗日乘子法和KKT條件)上式等價於:
c(w)=wTSbw−λ(wTSww−1)
c(w)=wTSbw−λ(wTSww−1)

dcdw=2Sbw−2λSww=0
dcdw=2Sbw−2λSww=0

Sbw=λSww
Sbw=λSww

S−1wSbw=λw
Sw−1Sbw=λw

可以看到上式就有轉化為一個求解特征值和特征向量的問題了。w就是我們要求解的特征向量,這就驗證了我們之前所說的式子y=wTxy=wTx中的w就是特征向量構成的矩陣。
但是到這里我們仍然有個問題需要解決,那就是SwSw是否可逆。遺憾的是在實際的應用中,它通常是不可逆的,我們通常有連個辦法解決該問題。
拓展
解決方法一:
令Sw=Sw+γISw=Sw+γI, 其中γγ是一個特別小的數,這樣SwSw一定可逆。
解決方法二:
先使用PCA對數據進行降維,使得在降維后的數據上SwSw可逆,在使用LDA。

參考文獻
1.機器學習-線性判別分析.周志華x
2.機器學習中的數學(4)-線性判別分析(LDA), 主成分分析(PCA)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM