降维技术2-线性判别分析(LDA)

线性判别分析(Linear Discriminant Analysis),简称LDA,是一种经典的线性学习方法。在二分类问题上最早由Fisher提出,也称"Fisher判别分析"。

在主成分分析原理总结中,我们对降维算法PCA进行了总结。这里的LDA是另一种经典的的降维算法。使用PCA进行降维,我们没有将类别考虑进去,属于无监督学习。而LDA是一种监督学习的降维技术,即它的每个样本是有类别输出的。

LDA的思想

给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近,异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。
用一句话概括就是:投影后类内方差最小,类间方差最大。

瑞利商与广义瑞利商(Rayleigh quotient)

  • 瑞利商定义:瑞利商是指这样的函数\(R(A,x)\):
    \[R(A,x)=\dfrac{x^HAx}{x^Hx}\]
    其中\(x\)为非零向量,而A为\(n\times n\)的Hermitan矩阵。所谓的Hermitan矩阵就是它的共轭转置等于它本身,属于推广的对称矩阵,即\(A^H=A\).如果A是实对称阵,\(A^T=A\)即为Hermitan矩阵。
    瑞利商\(R(A,x)\)有 一个非常重要的性质,即它的最大值等于矩阵A的最大特征值,而最小值等于矩阵A的最小的特征值,也就是满足:
    \[\lambda_{min}\le \dfrac{x^HAx}{x^Hx}\le \lambda_{max}\]
    当向量x是标准正交基时,即满足\(x^Hx=1\)时,瑞利商退化为:
    \[R(A,x)=x^HAx\],这个形式在谱聚类和PCA中都有出现。
  • 广义瑞利商:是指这样的函数\(R(A,B,x)\):
    \[R(A,B,x)=\dfrac{x^HAx}{x^HBx}\]
    其中x为非零向量,而A,B为\(n\times n\)的Hermitan矩阵,B为正定矩阵。

    它的最大值和最小值是什么?
    我们令\(x'=B^{-1/2}x\),则分母转化为:
    \[x^HBx=x'^H(B^{-1/2})^HBB^{-1/2}x'=x'^Hx'\]
    而分子转化为:
    \[x^HAx=x'^HB^{-1/2}AB^{-1/2}x'\]

此时我们的\(R(A,B,x)\)转化为\(R(A,B,x')\):
\[ R(A,B,x')=\dfrac{x'^HB^{-1/2}AB^{-1/2}x'}{x'^Hx'}\]
由前面瑞利商的性质,我们可以知道\(R(A,B,x)\)的最大值和最小值分别为矩阵\(B^{-1/2}AB^{-1/2}\)的最大特征值和最小特征值,或者说是\(B^{-1}A\)的最大特征值和最小特征值。

回到LDA-考虑二分类问题

给定数据集\(D={\{(x_i,y_i)}\}_{i=1}^m,y_i\in{\{0,1}\}\),令\(X_i,\mu_i,\Sigma_i\)分别代表第\(i\in{\{0,1}\}\)类示例的集合、均值向量、协方差矩阵。

若将数据投影到直线w上,则两类样本的中心在直线上的投影分别为\(w^T\mu_0\),\(w^T\mu_1\);若将所有样本点都投影在直线上,则两类样本的协方差分别为
\(w^T\Sigma_0w\)和\(w^T\Sigma_1w\).

由于直线是一维空间,因此,\(w^T\mu_0\),\(w^T\mu_1\),\(w^T\Sigma_0w\)和\(w^T\Sigma_1w\)均为实数。

要使得同类样例的投影点尽可能接近,可以让同类样例投影点的协方差尽可能小,即\(w^T\Sigma_0w+w^T\Sigma_1w\)尽可能小;而要使异类样例的投影点尽可能远离,可以让类中心之间的距离尽可能大,即:\(\lVert w^T\mu_0-w^T\mu_1\rVert_2^2\)尽可能大。

同时考虑二者,可以得到最大化的目标如下:
\begin{eqnarray}
J&=&\dfrac{\lVert w^T\mu_0-w^T\mu_1\rVert_2^2}{w^T\Sigma_0w+w^T\Sigma_1w}\notag\
&=&\dfrac{w^T(\mu_0-\mu_1)(\mu_0-\mu_1)^Hw}{w^T(\Sigma_0+\Sigma_1)w}\notag
\end{eqnarray}

  • 定义“类内散度矩阵”(within-class scatter matrix):
    \begin{eqnarray}
    S_w&=&\Sigma_0+\Sigma_1\notag\
    &=&\sum_{x\in X_0}(x-\mu_0)(x-\mu_0)^T+\sum_{x\in X_1}(x-\mu_1)(x-\mu_1)^T\notag
    \end{eqnarray}
  • 定义"类间散度矩阵"(betweent-class scatter matrix):
    \[S_b=(\mu_0-\mu_1)(\mu_0-\mu_1)^T\].
    则J可重写为:
    \[J=\dfrac{w^TS_bw}{w^TS_ww}\qquad(*)\]
    这就是LDA欲最大化的目标,即\(S_b,S_w\)的瑞利商。

推导求解

推导

如何确定w?
注意到()式的分子和分母都是关于w的二次项,因此()式的解与w的长度无关,只与其方向有关。不失一般性,令\(w^TS_ww=1\),则式(*)等价于:
\[\min_w-w^TS_bw\]
\[ s.t. w^TS_ww=1\]
由拉格朗日乘子法,上式等价于:
\[ S_bw=\lambda S_ww\qquad(**)\]

  • 因为 \(S_bw=(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw\),其中\((\mu_0-\mu_1)^Tw\)是标量,所以\(S_bw\)的方向恒为\(\mu_0-\mu_1\),不妨令:
    \[ S_bw=\lambda(\mu_0-\mu_1)\]

代入(**)式可得:
\[w=S_w^{-1}(\mu_0-\mu_1)\]

  • 注意:
    至此,我们只要求出原始样本的均值和方差就可以求出最佳方向w,这就是Fisher于1936年提出的线性判别分析。

求解

考虑到数值解的稳定性,在实践中,通常是对\(S_w\)进行奇异值分解,即\(S_w=U\Sigma V^T\),这里\(\Sigma\)是一个实对角矩阵,对角线上的元素是\(S_w\)的奇异值,然后再由
\(S_w^{-1}=V\Sigma^{-1}U^T\)得到\(S_w^{-1}\),进而求解得到\(W\).

  • 一旦确定了w,就可以对特征进行降维计算:\(y=w^Tx\),将示例的维数从d维降到1维。

LDA-多分类问题

将LDA推广到多分类任务中,假定存在N个类,且第i类示例数为\(m_i\),总示例数为\(m\),则\(m=\sum_{i=1}^N m_i\).

  • 首先,我们定义“全局散度矩阵”:
    \[S_t=S_b+S_w=\sum_{j=1}^m(x_j-\mu)(x_j-\mu)^T\]
    其中,\(\mu\)是所有示例的均值向量。
  • 其次,我们需要重新定义类内散度矩阵为每个类别的散度矩阵之和:
    \[S_w=\sum_{i=1}^N S_{w_i}\]
    其中,\(S_{w_i}=\sum_{x\in X_i}(x-\mu_i)(x-\mu_i)^T\)
  • 类间散度矩阵:
    \[S_b=S_t-S_w=\sum_{i=1}^N m_i(\mu_i-\mu)(\mu_i-\mu)^T\]

    计算过程:
    \[S_t=\sum_{i=j}^m x_jx_j^T-\sum_{j=1}^m\mu\mu^T=\sum_{j=1}^m x_jx_j^T-\sum_{i=1}^N m_i \mu\mu^T\]
    \[S_w=\sum_{i=1}^N\sum_{x\in X_i} (xx^T-\mu_i\mu_i^T)=\sum_{j=1}^m x_jx_j^T-\sum_{i=1}^Nm_i \mu_i\mu_i^T\]
    则有:
    \(S_b=S_t-S_w=\sum_{i=1}^N m_i(\mu_i\mu_i^T-\mu\mu^T)=\sum_{i=1}^N m_i(\mu_i-\mu)(\mu_i-\mu)^T\)

推导与计算

由二分类的LDA我们可知,若示例\(x\)包含d个特征,我们寻找一条直线(方向为\(w\))来做投影,寻找最能使样本分离的直线。将示例从d维降到一维。
当类别变成N个,这里N>2,要使得投影后类别能够分离,降维到一维可能已经不能满足要求,需要将特征将到N-1维。
多分类LDA有多种实现方法,常见的优化目标为:
\[\max_{W}\dfrac{tr(W^TS_bW)}{W^TS_wW}\]
其中,\(W\in R^{d\times(N-1)}\),\(tr(\cdot)\)表示矩阵的迹。上式可以通过如下广义特征问题进行求解:
\[S_bW=\lambda S_wW\]
W的闭式解是\(S_w^{-1}S_b\)的\(d'\)个最大非零广义特征值所对应的特征向量组成的矩阵,\(d'\le N-1\).

  • 降维问题:
    若将W视为一个投影矩阵,则多分类LDA将样本投影到\(d'\)维空间,\(d'\)常远小于数据原有的属性d。于是,可通过投影来减小样本点的维数,且投影过程中使用了类别信息,故LDA也常被视为一种经典的监督降维技术。
  • 得到W,进行降维计算得到新特征:\(y=W^Tx\)
    注意

    由于W是一个利用了样本的类别得到的投影矩阵,因此它降维到的维数最大值为N-1。

    • 为什么不是N呢?
      因为\(S_b\)中的每一个\(\mu_i-\mu\)的秩为1,因此协方差矩阵相加后最大的秩为N(矩阵和的秩小于等于各个矩阵秩的和),但如果我们知道前N-1个\(\mu_j\)之后,最后一个\(\mu_N\)可以由前N-1个\(\mu_j\)线性表示,因此\(S_b\)的秩最大为N-1个,所以特征向量最多有N-1个。
    • W中的特征向量不一定是正交的,因为\(S_w^{-1}S_b\)不一定是实对称阵
  • 若矩阵\(S_w\)为奇异矩阵呢?
    在实际应用中存在着许多典型的小样本问题,比如在人脸图像识别问题中,\(S_w\)通常是奇异的,这是因为待识别的图像矢量维数一般比较高,而在实际问题中难以找到或者根本不可能找到足够多的训练样本来保证\(S_w\)的可逆性。在这种情况下,可采用的做法是,先用PCA进行降维,再对降维后的数据用LDA.

推广的LDA-KLDA

思考: 线性判别分析仅在线性可分数据上能获得理想结果,如何能使其较好地用于非线性可分数据?
回答:在当前维度上不可分,可以使用适当的映射方法,使其在更高一维上可分。典型的方法有KLDA,也就是核化LDA。

KLDA

我们先假设可通过某种映射\(\phi:\mathcal{x}\mapsto \mathbb{F}\)将样本映射到一个特征空间\(\mathbb{F}\),然后在\(\mathbb{F}\)中执行线性判别分析,以求得:
\[h(x)=w^T\phi(x)\]
类似于LDA, KLDA的学习目标是:
\[\max_{w} J(w) = \dfrac{w^TS_b^{\phi}w}{w^TS_w^{\phi}w}\]
其中,\(S_b^{\phi}, S_w^{\phi}\)分别为训练样本在特征空间\(\mathbb{F}\)中的类间散布矩阵和类内散布矩阵。
令 \(X_i\)表示第\(i\in{\{0,1}\}\)类样本的集合,其样本数为\(m_i\),总样本数 \(m=m_0+m_1\).第i类样本在特征空间\(\mathbb{F}\)中的均值为:
\[\mu_i^{\phi}=\dfrac{1}{m_i}\sum_{x\in X_i}\phi(x)\]
两个散度矩阵分别为:
\[ S_b^{\phi}=(\mu_1^{\phi}-\mu_0^{\phi})(\mu_1^{\phi}-\mu_0^{\phi})^T\]
\[ S_w^{\phi}=\sum_{i=0}^1\sum_{x\in X_i}(\phi(x)-\mu_i^{\phi})(\phi(x)-\mu_i^{\phi})^T\]

注意
通常我们难以知道映射\(\phi\)的具体形式,因此使用核函数 \(\mathcal{k}(x,x_i) =\phi(x_i)^T\phi(x)\) 来隐式地表达这个映射和特征空间\(\mathbb{F}\).

写在最后

LDA与PCA的比较:

最大化目标函数J时,PCA最大化‘全局散度矩阵’:\(S_t=S_b+S_w\)
LDA最大化‘类间散度矩阵’:\(S_b/S_w\)

  1. 相同点:
    1)两者都可以对数据进行降维;
    2)两者在降维时均使用了矩阵特征分解的思想;
    3)两者都假设数据符合高斯分布
  2. 不同点
    1)LDA是有监督的降维方法,而PCA是无监督的降维方法
    2)LDA降维最多可以降到类别数-1的维数,而PCA没有这个限制
    3)LDA不仅可以降维,还可以用于分类
    4)LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向

原文地址:https://www.cnblogs.com/sshhan/p/12166890.html

时间: 2024-10-18 14:31:51

降维技术2-线性判别分析(LDA)的相关文章

机器学习——降维(主成分分析PCA、线性判别分析LDA、奇异值分解SVD、局部线性嵌入LLE)

机器学习--降维(主成分分析PCA.线性判别分析LDA.奇异值分解SVD.局部线性嵌入LLE) 以下资料并非本人原创,因为觉得石头写的好,所以才转发备忘 (主成分分析(PCA)原理总结)[https://mp.weixin.qq.com/s/XuXK4inb9Yi-4ELCe_i0EA] 来源:?石头?机器学习算法那些事?3月1日 主成分分析(Principal components analysis,以下简称PCA)是最常用的降维方法之一,在数据压缩和消除冗余方面具有广泛的应用,本文由浅入深的

机器学习 —— 基础整理(四):特征提取之线性方法——主成分分析PCA、独立成分分析ICA、线性判别分析LDA

本文简单整理了以下内容: (一)维数灾难 (二)特征提取--线性方法 1. 主成分分析PCA 2. 独立成分分析ICA 3. 线性判别分析LDA (一)维数灾难(Curse of dimensionality) 维数灾难就是说当样本的维数增加时,若要保持与低维情形下相同的样本密度,所需要的样本数指数型增长.从下面的图可以直观体会一下.当维度很大样本数量少时,无法通过它们学习到有价值的知识:所以需要降维,一方面在损失的信息量可以接受的情况下获得数据的低维表示,增加样本的密度:另一方面也可以达到去噪

【降维】线性判别分析LDA

降维,线性判别分析 本博客根据 百面机器学习,算法工程师带你去面试 一书总结归纳,公式都是出自该书. 本博客仅为个人总结学习,非商业用途,侵删. 网址 http://www.ptpress.com.cn 目录 LDA推导 LDA扩展到多维度 PCA与LDA的区别 LDA原理 线性判别分析(Linear Discriminant Analysis, LDA) 是一种有监督学习算 法, 同时经常被用来对数据进行降维. 在PCA中, 算法没有考虑数据的标签(类别) , 只是把原数据映射到一些方差比较大

线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)

判别分析包括可用于分类和降维的方法.线性判别分析(LDA)特别受欢迎,因为它既是分类器又是降维技术.二次判别分析(QDA)是LDA的变体,允许数据的非线性分离.最后,正则化判别分析(RDA)是LDA和QDA之间的折衷. 本文主要关注LDA,并探讨其在理论和实践中作为分类和可视化技术的用途.由于QDA和RDA是相关技术,我不久将描述它们的主要属性以及如何在R中使用它们. 线性判别分析 LDA是一种分类和降维技术,可以从两个角度进行解释.第一个是解释是概率性的,第二个是更多的程序解释,归功于费舍尔.

降维方法-LDA线性判别分析

降维-LDA线性判别分析 [机器学习]LDA线性判别分析 1. LDA的基本思想 2. LDA求解方法 3. 将LDA推广到多分类 4. LDA算法流程 5. LDA和PCA对比 [附录1]瑞利商与广义瑞利商 线性判别分析 (Linear Discriminant Analysis,LDA)是一种经典的线性学习方法,在二分类问题上因为最早由[Fisher,1936]提出,亦称"Fisher判别分析".(严格说来LDA与Fisher判别分析稍有不同,LDA假设了各类样本的协方差矩阵相同且

LDA 线性判别分析

http://blog.csdn.net/porly/article/details/8020696 1. LDA是什么 线性判别式分析(Linear Discriminant Analysis),简称为LDA.也称为Fisher线性判别(Fisher Linear Discriminant,FLD),是模式识别的经典算法,在1996年由Belhumeur引入模式识别和人工智能领域. 基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本

线性判别分析(LDA)原理

在主成分分析(PCA)原理总结中,我们对降维算法PCA做了总结.这里我们就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)做一个总结.LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别领域)中有非常广泛的应用,因此我们有必要了解下它的算法原理. 在学习LDA之前,有必要将其自然语言处理领域的LDA区别开来,在自然语言处理领域, LDA是隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA),

(转)机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)

版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected] 前言: 第二篇的文章中谈到,和部门老大一宁出去outing的时候,他给了我相当多的机器学习的建议,里面涉及到很多的算法的意义.学习方法等等.一宁上次给我提到,如果学习分类算法,最好从线性的入手,线性分类器最简单的就是LDA,它可以看做是简化版的SVM,如果想理解SVM这种分类器,那理解L

机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)

机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA) 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected] 前言: 第二篇的文章中谈到,和部门老大一宁出去outing的时候,他给了我相当多的机器学习的建议,里面涉及到很多的算法的意义.学习方法等等.一宁上次给我提到,如果学习分类算法,最好从线性的入手,线性分类器最简单的就是