[Note]ESL-4.3-Linear Discriminant Analysis
LDA的建模和分类面
现有分类\(G\)和随机变量\(X\),LDA的思想就是根据后验概率\(P(G\vert X)\)对分类面进行线性建模。由贝叶斯公式,得到
\[\begin{align} \label{eq:lda-prob} P(G=k|X=\mathbf{x}) &= \frac{P(X=\mathbf{x}|G=k) \cdot P(G=k)}{\sum_{l=1}^K P(X=\mathbf{x}|G=k) \cdot P(G=k)} \\ &= \frac{f_k(\mathbf{x}) \pi_k}{\sum_{l=1}^K f_l(\mathbf{x}) \pi_l} \end{align}\]LDA/QDA模型的基本假设是likelihood \(X\vert G\)符合高斯分布,即:
\[f_k(\mathbf{x}) = \frac{1}{(2\pi)^{p/2} | \Sigma_k |^{1/2}} e^{-\frac{1}{2}(\mathbf{x}-\boldsymbol{\mu}_k)^T \Sigma_k^{-1} (\mathbf{x}-\boldsymbol{\mu}_k)}\]对于LDA而言,其假设所有类的协方差矩阵都相等,即\(\Sigma_k = \Sigma \forall k\),而QDA则没有这样的假设。
下面我们考察LDA的分类面(decision boundary):
\[\begin{align} \label{eq:lda-boundary} \log \frac{P(G=k|X=\mathbf{x})}{P(G=l|X=\mathbf{x})} &= \log \frac{f_k(\mathbf{x})}{f_l(\mathbf{x})} + \log \frac{\pi_k}{\pi_l} \\ &= \log \frac{\pi_k}{\pi_l} - \frac{1}{2}(\boldsymbol{\mu}_k + \boldsymbol{\mu}_l)^T \Sigma^{-1} (\boldsymbol{\mu}_k - \boldsymbol{\mu}_l) + \mathbf{x}^T\Sigma^{-1}(\boldsymbol{\mu}_k - \boldsymbol{\mu}_l) \end{align}\]可见这是\(\mathbf{x}\)的线性函数,即LDA中的『Linear』。由此得到线性判别函数为:
\[\delta_k^{LDA}(\mathbf{x}) = \mathbf{x}^T\Sigma^{-1}\boldsymbol{\mu}_k - \frac{1}{2} \boldsymbol{\mu}_k^T \Sigma^{-1} \boldsymbol{\mu}_k + \log \pi_k\]相应的,QDA的判别函数为:
\[\begin{equation} \label{eq:qda-discriminant} \delta_k^{QDA}(\mathbf{x}) = -\frac{1}{2} \log |\Sigma_k| - \frac{1}{2} (\mathbf{x} - \boldsymbol{\mu}_k)^T \Sigma_k^{-1} (\mathbf{x} - \boldsymbol{\mu}_k) + \log \pi_k \end{equation}\]注意到这是\(\mathbf{x}\)的二次函数,即QDA中的『Quadratic』。
参数估计和分类
最后分类,很显然应该将样本归入判别函数较大的那一类去:
\[G(x) = \operatorname{argmax}\limits_k \delta_k(x)\]当然判别函数中相关的参数需要通过样本来估计,无偏估计为:
\[\hat{\pi} = N_k / N\] \[\hat{\boldsymbol{\mu}}_k = \sum_{g_k = k} \mathbf{x}_i / N_k\] \[\hat{\Sigma} = \sum_{k=1}^K \sum_{g_i = k} \frac{(\mathbf{x}_i - \hat{\boldsymbol{\mu}}_k) (\mathbf{x}_i - \hat{\boldsymbol{\mu}}_k)^T} {N-K}\]其中\(N_k\)是第\(k\)类的样本数量
Fisher降维
我发现网上大部分笔记对这一节都没有深入介绍,当然书上这部分也的确写得不是很直观。我尽可能做一份详细的注解,方便后来同学理解。
这一节所有的大写\(X\)表示一个\(N\times p\)的矩阵,\(N\)是样本点的个数,\(p\)是样本维数。
基于协方差的投影变换(样本球形化)
从式\(\eqref{eq:qda-discriminant}\)我们发现,如果协方差阵\(\Sigma_k\)是一个单位矩阵的话,那么\(\mathbf{x}\)属于哪一类就仅仅取决于它和每一类中心点\(\boldsymbol{\mu}_k\)的距离\(\| \mathbf{x}-\boldsymbol{\mu}_k \|_2^2\)了。于是很自然的想法是,能不能通过对样本投影,使得\(\Sigma_k = I\)呢?简化的,对于LDA而言,既然所有类的协方差矩阵相同,那么同样的投影变换是否可以施加给所有的$\mathbf{x}$,使得\(\Sigma = I\)?
答案是肯定的,我们知道协方差矩阵\(\Sigma\)是对称正定矩阵,有特征值分解\(\Sigma_{(p\times p)} = U D U^T\),且特征值\(d_{l} > 0\)。对样本做如下变换:
\[\begin{equation} \label{eq:sphere-projection} \mathbf{x}^{*} \gets D^{-1/2} U^T\mathbf{x} \end{equation}\]可得:
\[\begin{align*} \Sigma^{*} &= \mathrm{E}\left[ (\mathbf{x}^{*} -\boldsymbol{\mu}^{*}) (\mathbf{x}^{*} -\boldsymbol{\mu}^{*})^T \right] \\ &= D^{-1/2}U^T \mathrm{E}\left[ (\mathbf{x} -\boldsymbol{\mu}) (\mathbf{x} -\boldsymbol{\mu})^T \right] U D^{-1/2} \\ &= D^{-1/2}U^T \Sigma U D^{-1/2} \\ &= D^{-1/2} U^T (UDU^T) UD^{-1/2} \\ &= I \end{align*}\]这样,给定一个新样本$\mathbf{x}$,LDA就可以通过如下两步计算进行分类:
- 对输入样本球形化(sphere):\(\mathbf{x}^{*} \gets D^{-1/2} U^T\mathbf{x}\)
- 在新的空间中,计算\(\mathbf{x}^{*}\)和各类中心点\(\boldsymbol{\mu}_k^{*}\)的欧几里德距离(2-范数),并把它归入与之距离最小的那个类(注意还需乘上先验\(\pi_k\))
第1步之所以被称作『球形化』,是因为协方差矩阵\(\Sigma\)定义了一个椭球(的焦距),当\(\Sigma=I\)时就是一个球形。
降维
由上一节我们看到,通过球形化样本,将数据投射到一个新的空间,在这个空间中,协方差矩阵\(\Sigma=I\),对新样本的分类仅取决于每个类的中心点。这就意味着我们其实只需要\(K\)个点就能保留所有的分类信息。
进一步的,这\(K\)个点组成了一个\(K-1\)维的仿射空间,通过向这个空间投影,我们可以用\(K-1\)维表示样本的分类信息。
那么接下来的问题是,能不能进一步降维到\(L<K-1\)呢?
Fisher的回答是,只要投影后各类中心点尽可能地散开,那这就是一个好的降维方法。而所谓『尽可能地散开』就是『variance尽可能大』的意思。
基于这个思想,Fisher提出了以下投影方法:
- 计算每个类的中心点,得到中心点矩阵\(M_{(K\times p)}\)
- 计算类内(within-class)的协方差矩阵\(W_{(p\times p)} = \sum_{k=1}^K\sum_{i=1}^{N_k}(\mathbf{x}_{ki}-\boldsymbol{\mu}_k)(\mathbf{x}_{ki}-\boldsymbol{\mu}_k)^T\)
- 计算中心点投影\(M^{*} = MW^{-1/2}\)(利用特征值分解\(W=UDU^T\))
- 计算投影后的类间(between-class)协方差矩阵 \(B^{*}_{(p\times p)} = \sum_{k=1}^{K} (\mathbf{m}^{*}_k - \bar{\mathbf{m}}^{*})(\mathbf{m}^{*}_k - \bar{\mathbf{m}}^{*})^T\), 其中\(\mathbf{m}^{*}_k\)表示\(M^{*}\)的第\(k\)行转置后得到的向量,\(\bar{m}^{*}_{j} = \frac{1}{K}\sum_{i=1}^K M_{ij}^{*}\)
- 计算\(B^{*}\)的特征值分解\(B^{*} = V^{*}D_B^{*} V^{*T}\),\(V^{*}\)的各列向量\(\mathbf{v}_l^{*}\)就定义了(Fisher)最优的投影子空间(按对应特征值由大到小顺序排列)
- 得到原始样本的Fisher主元\(z_l = \mathbf{v}_l^T \mathbf{x}\),其中\(\mathbf{v}_l = W^{-1/2}\mathbf{v}_l^{*}\)
我对以上步骤做一些说明:
-
第2步计算\(M^{*} = MW^{-1/2}\),根据我们上一节的描述\eqref{eq:sphere-projection},这个变换将中心点投影到一个新的子空间\(\mathbf{m}^* \gets D^{-1/2}U^T\mathbf{m}\),在这个空间中,类内(within-class)样本的协方差\(W^{*} = I\)
-
第5步计算\(B^{*}\)的特征向量,按对应特征值从大到小其实是以下优化目标的解(可参考PCA)
-
第4步我们把投影变换展开,可得\(B^{*} = D^{-1/2}U^T \left[ \sum_{k=1}^{K} (\mathbf{m}_k - \bar{\mathbf{m}})(\mathbf{m}_k - \bar{\mathbf{m}})^T \right] UD^{-1/2} = W^{1/2} B W^{-1/2}\),定义\(\mathbf{a} = W^{1/2}\mathbf{a}^{*}\),有\(\mathbf{a}^{*T} B^{*} \mathbf{a}^{*} = \mathbf{a}^{T} B \mathbf{a}\),这也就是第6步中的\(\mathbf{v}_l = W^{-1/2}\mathbf{v}_l^{*}\)
-
另外以上所谓的『协方差矩阵』并不是严格意义上的『样本协方差矩阵』。由于我们只对最优化解感兴趣,协方差前面乘以的常数并不影响最终结果。
综上我们可以总结得到,Fisher变换是在解如下优化问题:
\[\begin{align*} &\max\limits_\mathbf{a} \mathbf{a}^T B \mathbf{a} \\ &\quad s.t. \quad \mathbf{a}^T W \mathbf{a} = 1 \end{align*}\]或者等价的:
\[\max\limits_\mathbf{a} \frac{\mathbf{a}^T B \mathbf{a}}{\mathbf{a}^T W \mathbf{a}}\]即,使得降维后样本的类间(between-class)方差尽可能地大,而类内(with-class)方差尽可能地小。
LDA和Logistic Regression的比较
这一节我们比较一下Linear Discriminent Analysis和Logistic Regression。对于LDA,由\(\ref{eq:lda-boundary}\)式,其分类面为:
\[\begin{align*} \log \frac{P(G=k|X=\mathbf{x})}{P(G=l|X=\mathbf{x})} &= \log \frac{\pi_k}{\pi_l} - \frac{1}{2}(\boldsymbol{\mu}_k + \boldsymbol{\mu}_l)^T \Sigma^{-1} (\boldsymbol{\mu}_k - \boldsymbol{\mu}_l) + \mathbf{x}^T\Sigma^{-1}(\boldsymbol{\mu}_k - \boldsymbol{\mu}_l) \\ &= \alpha_{k0} + \boldsymbol{\alpha}_{k}^T \mathbf{x} \end{align*}\]相应的Logistic Regression的分类面:
\[\log \frac{P(G=k|X=\mathbf{x})}{P(G=l|X=\mathbf{x})} = \beta_{k0} + \boldsymbol{\beta}_k^T \mathbf{x}\]可见两者实质是一样的。但对于参数估计而言,LDA估计的是高斯分布下的均值和方差。从这点看,LR的假设更弱,因而也更general一些。
另外由\(\ref{eq:lda-prob}\)式,可知LDA的优化目标其实是联合分布\(P(G=k, X=\mathbf{x})\)(分母上的边缘分布可看作常数),而LR是直接优化后验\(P(G=k \vert X=\mathbf{x})\)
Enjoy Reading This Article?
Here are some more articles you might like to read next: