線性判別分析(Linear Discriminant Analysis, LDA)

ZhiboZhao發表於2021-06-26

一、線性判別器的問題分析

線性判別分析(Linear Discriminant Analysis, LDA)是一種經典的線性學習方法,在二分類問題上亦稱為 "Fisher" 判別分析。與感知機不同,線性判別分析的原理是降維,即:給定一組訓練樣本,設法將樣本投影到某一條直線上,使相同分類的點儘可能地接近而不同分類的點儘可能地遠,因此可以利用樣本點在該投影直線上的投影位置來確定樣本型別。

二、線性判別器的模型

還是假定在 \(p\) 維空間有 \(m\) 組訓練樣本對,構成訓練集 $T = { (x_{1}, y_{1}), (x_{2}, y_{2}),...,(x_{n}, y_{n})} $,其中 \(x_{i} \in R^{1 \times p}\)\(y_{i}\in \{-1, +1\}\),以二維空間為例,線上性可分的情況下,所有樣本在空間可以描述為:

我們的目的就是找到一個超平面 \(\Phi: b+w_{1}x_{1}+w_{2}x_{2}+..+w_{n}x_{n}=0\),使得所有的樣本點滿足 “類內儘可能接近,類外儘可能遙遠"。那麼我們用類內的投影方差來衡量類內的接近程度,用類間的投影均值來表示類間的距離。這裡,我們另 \(w\) 代表投影方向,如下圖所示,

在這裡,\(x,w\) 均為 \(p \times 1\) 的列向量,那麼根據投影定理,\(x\)\(w\) 上的投影 \(p\) 既有方向又有距離,那麼:

\(p\)\(w\) 同方向,表示為:\(\dfrac{w}{||w||}\)\(p\) 的長度為:\(||x||cos\theta = ||x||\dfrac{x \cdot w}{||w||\quad||x||} = \dfrac{x \cdot w}{||w||}\)

由於 \(w\) 的長度不影響投影結果,因此我們為了簡化計算,設定 \(||w||=1\),只保留待求 \(w\) 的方向:\(||p|| = x \cdot w = w^{T}x\)

2.1 類間投影均值

我們假設用 \(u_{0}\)\(u_{1}\) 分別表示第1,2類的均值,那麼:

\[u_{0} = \dfrac{1}{m} \sum_{i=1}^{m}x_{i},\quad u_{1} = \dfrac{1}{n} \sum_{i=1}^{n}x_{i} \]

所以,第一,二類均值在 \(w\) 方向上的投影長度分別表示為:\(w^{T}u_{0}\)\(w^{T}u_{1}\)

2.2 類內投影方差

根據方差的計算公式,第一類的類內投影方差可以表示為:

\[z_{0} = \dfrac{1}{n} \sum_{i=1}^{n}(w^{T}x_{i}-w^{T}u_{0})^{2}=\dfrac{1}{n} \sum_{i=1}^{n}(w^{T}x_{i}-w^{T}u_{0})(w^{T}x_{i}-w^{T}u_{0})^T \]

即:

\[z_{0} = \dfrac{1}{n} \sum_{i=1}^{n}w^{T}(x_{i}-u_{0})(x_{i}-u_{0})^{T}w = w^{T}[\dfrac{1}{n} \sum_{i=1}^{n}(x_{i}-u_{0})(x_{i}-u_{0})^{T}]w \]

如下圖所示:

\(x_{i}, u_{0}\) 都是一維時, 式子 \(\dfrac{1}{n} \sum_{i=1}^{n}(x_{i}-u_{0})(x_{i}-u_{0})^{T}\) 就表示所有輸入 \(x_{i}\) 的方差;

\(x_{i}, u_{0}\) 都是二維時, 式子 \(\dfrac{1}{n} \sum_{i=1}^{n}(x_{i}-u_{0})(x_{i}-u_{0})^{T}\) 就表示:

\[\dfrac{1}{n} \sum_{i=1}^{n}\begin{bmatrix}x_{11}-u_{01} \\x_{12}-u_{02}\end{bmatrix} \begin{bmatrix} x_{11}-u_{01}\quad x_{12}-u_{02}\end{bmatrix} = \dfrac{1}{n} \sum_{i=1}^{n}\begin{bmatrix} (x_{11}-u_{01})^{2}\quad (x_{11}-u_{01})(x_{12}-u_{02})\\ (x_{12}-u_{02})(x_{11}-u_{01})\quad (x_{12}-u_{02})^{2} \end{bmatrix} \]

其中:\(u_{01}\) 表示第一類集合中在第一個維度上的均值,\(u_{01}\) 表示第一類集合中在第二個維度上的均值,\(x_{11}\) 表示第一類集合中第一個維度的座標值,\(x_{12}\) 表示第一類集合中第二個維度的座標值

綜上:當 $x_{i}, u_{0}$ 都是 $p$ 維時, 式子 $\dfrac{1}{n} \sum_{i=1}^{n}(x_{i}-u_{0})(x_{i}-u_{0})^{T}$ 表示 $p$ 個維度之間的協方差矩陣,我們用符號 $M_{0}$ 表示。因此(3)可以寫成: $$ z_{0} = w^{T}M_{0}w $$ 同理可以得到:$z_{1} = w^{T}M_{1}w$。

我們設 \(J(w)\) 為最終的損失函式,那麼滿足 ”類內方差最小,類間均值最大“ 的 最大化\(J(w)\) 可以表示為:

\[J(w) = \dfrac{||w^{T}u_{0}-w^{T}u_{1}||^{2}}{z_{0}+z_{1}} = \dfrac{w^{T}(u_{0}-u_{1})(u_{0}-u_{1})^{T}w}{w^{T}(M_{0}+M_{1})w} \]

借用西瓜書的符號,我們定義類間散度矩陣:\(S_{b} = (u_{0}-u_{1})(u_{0}-u_{1})^{T}\),類內散度矩陣:\(S_{w} = M_{0}+M_{1}\),於是式 (6) 可以重寫為:

\[J(w) = \dfrac{w^{T}S_{b}w}{w^{T}S_{w}w} \]

三、線性判別器的求解

由於 \(w\in R^{p \times 1}, S_{b},S_{w} \in R^{p \times p}\),因此:\(J(w) \in R^{1 \times 1}\),所以(7)可以寫成:\(J(w) = {w^{T}S_{b}w}{(w^{T}S_{w}w)^{-1}}\)

根據我們之前的講述:矩陣求導 - ZhiboZhao - 部落格園 (cnblogs.com)

\[\dfrac{\partial J(w)}{\partial w} = 2S_{b}w{(w^{T}S_{w}w)^{-1}} + {(w^{T}S_{b}w)}(-1){(w^{T}S_{w}w)^{-2}} \times 2S_{w}w = 0 \]

可以解得:

\[S_{b}w = \dfrac{w^{T}S_{w}w}{w^{T}S_{w}w}S_{b}w \]

即:

\[w = \dfrac{w^{T}S_{b}w}{w^{T}S_{w}w}S_{w}^{-1}S_{b}w \]

由於我們主要關心的是 \(w\) 的方向,因此可以簡化為:\(w = S_{w}^{-1}S_{b}w = S_{w}^{-1}(u_{0}-u_{1})(u_{0}-u_{1})^{T}w\)

又因為 \((u_{0}-u_{1})^{T}w\) 也是一個標量,因此,最終的結果為:\(w = S_{w}^{-1}(u_{0}-u_{1})\)

由於 \(S_{w}\) 是實對稱矩陣,因此一定存在矩陣 \(U,V\),使得:\(S_{w} = U diag(\lambda_{1},\lambda_{2},...,\lambda_{p}) V^{T}\),所以最後的結果為:

\[w = V diag(\lambda_{1},\lambda_{2},...,\lambda_{p})^{-1} U^{T} (u_{0}-u_{1}) \]

相關文章