【深度学习】LDA线性判别分析


date:2024/07/23

author:sion

tag:Deeping Learn


LDA(线性判别分析)

文章目录

1.LDA是什么

LDA是一种解决二分类问题的线性方法。它描述,对于给定样例集,将样例点投影到一条直线上,这条直线能使异样的样例相距远,同类的样例分布靠近,对于新的样例,根据在这条直线上的投影判断属于哪一类别。

date:2024/07/23

author:sion

tag:Deeping Learn


LDA(线性判别分析)

文章目录

1.LDA是什么

LDA是一种解决二分类问题的线性方法。它描述,对于给定样例集,将样例点投影到一条直线上,这条直线能使异样的样例相距远,同类的样例分布靠近,对于新的样例,根据在这条直线上的投影判断属于哪一类别。

因此我们的所有任务围绕确定直线展开。

2.问题背景

首先描述问题背景,这里直接引用西瓜书原话:

这里描述的是一个二分类问题。

那么如何理解投影?

3.投影

若已知向量 x ⃗ \vec{x} x 和向量 w ⃗ \vec{w} w ,求 x ⃗ \vec{x} x 在向量 w ⃗ \vec{w} w 上的投影,可以用内积表示:
x ⃗ ⋅ w ⃗ = ∣ x ⃗ ∣ ∣ w ⃗ ∣ cos ⁡ θ \vec{x} \cdot \vec{w} = |\vec{x}||\vec{w}|\cos {\theta} x ⋅w =∣x ∣∣w ∣cosθ

当w为单位向量,该投影为:
∣ x ⃗ ∣ cos ⁡ θ |\vec{x}|\cos {\theta} ∣x ∣cosθ

因此在下图上, y y y表示target(标签),假设x与y有线性关系由参数集合 w w w确定( y = w x + b , w T = w , b ∗ y = wx + b,w^T = {w,b}* y=wx+b,wT=w,b∗)

则任意x在直线上的投影可以认为是x根据线性关系找到的y值,那么这个投影过程表示为:
w T X w^TX wTX

其中 x i x_i xi在向量 X X X方向上( X = X 1 ; X 2 . . ; X i X={X_1;X_2..;X_i} X=X1;X2..;Xi)

4.离散度

前面提到需要使得"异样的样例相距远,同类的样例分布靠近",因此我们需要一个衡量标准,异样的距离使用类间散度 衡量,同样使用类内散度衡量

$ \ {\mu}_i 用来表示各类的均值,这里只有 用来表示各类的均值,这里只有 用来表示各类的均值,这里只有\ {\mu_0},{\mu_1}$,分别表示正类和负类的均值。异类之间的距离使用均值在直线的投影的距离表示:
∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w ||w^T\mu_0-w^T\mu_1||_2^2 = w^T(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw ∣∣wTμ0−wTμ1∣∣22=wT(μ0−μ1)(μ0−μ1)Tw

这里下标2表示2类向量的模,即欧几里得距离

同类之间使用协方差比较距离:
w T ( Σ 0 + Σ 1 ) w w^T(\Sigma_0 + \Sigma_1) w wT(Σ0+Σ1)w
Σ \ {\Sigma} Σ为协方差矩阵

为了简化表示,我们引入两个新概念,类间散度矩阵类内散度矩阵

类间散度矩阵用 S b \ {S_b} Sb表示:
S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T S_b=(\mu_0-\mu_1)(\mu_0-\mu_1)^T Sb=(μ0−μ1)(μ0−μ1)T

类内散度矩阵用 S w S_w Sw表示:
S w = Σ 0 + Σ 1 S_w= \Sigma_0+\Sigma_1 Sw=Σ0+Σ1

5.目标函数

为了同时考虑"使同类样例的投影点尽可能接近,可以让同类样例投影点的协方差尽可

能小 ",设置目标函数:
J = w T S b w w T S w w J=\frac{w^TS_bw}{w^TS_ww} J=wTSwwwTSbw

求这个目标函数的最大值可以转换为求 S b \ S_b Sb和 S w \ S_w Sw的**"广义瑞利商"**,这里使用拉格朗日乘子法求解,具体过程不在讨论范围。

m i n ω T S b w s . t . w T S w w = 1. min\quad ω^TS_bw\\ s.t.\quad w^TS_ww = 1 . minωTSbws.t.wTSww=1.

最终求得 w = S − 1 ( μ 0 − μ 1 ) \ w = S^{-1}(\mu_0-\mu_1) w=S−1(μ0−μ1)

6.推广到多分类

在多分类问题中,LDA一般作为降维方法进行属性约简。设target数量为N, μ \mu μ为所有数据的均值, μ i \ {\mu_i} μi表示示属性i的均值, m i m_i mi表示第i属性的数据量。

首先定义"全局散度矩阵":
S t = S b + S w = ∑ i = 1 m ( x i − μ ) ( x i − μ ) T S_t=S_b+S_w=\sum_{i=1}^m({x_i}-\mu)({x_i}-\mu)^T St=Sb+Sw=i=1∑m(xi−μ)(xi−μ)T
S w \ {S_w} Sw 可以表示为:
S w i = ∑ x ∈ X i Σ i = ∑ x ∈ X i ( x − μ i ) ( x − μ i ) T S w = ∑ i = 1 N S w i {S_w}i = \sum{x\in X_i} \Sigma_i = \sum_{x\in X_i} \ (x-\mu_i)(x-\mu_i)^T\\ S_w = \sum_{i=1}^N S_{wi} Swi=x∈Xi∑Σi=x∈Xi∑ (x−μi)(x−μi)TSw=i=1∑NSwi

S b \ {S_b} Sb可以表示为:
S b = ∑ i = 1 N m i ( μ i − μ ) ( μ i − μ ) T S_b=\sum_{i=1}^Nm_i(\mu_i-\mu)(\mu_i-\mu)^T Sb=i=1∑Nmi(μi−μ)(μi−μ)T

推导参考:

多分类 LDA 可以有多种实现方法,使用 S w S_w Sw, S t S_t St 两者中的任何两个即可。常见的一种实现是采用优化目标

m a x W t r ( W T S b W ) t r ( W T S w W ) max_W{\frac{tr(W^TS_bW)}{tr(W^TS_wW)}} maxWtr(WTSwW)tr(WTSbW)
t r ( ⋅ ) tr(\cdot) tr(⋅)表示矩阵的迹(trace)即矩阵对角线上元素的和,我们在LDA中要做的是找到一个投影矩阵 W W W,使得这个比值最大化。

该式可以转换为一个最大广义特征值的问题的求解:
S b W = λ S w W S_bW=\lambda S_wW SbW=λSwW
W W W的闭式解则是 S w − 1 S b S_w ^{-1}S_b Sw−1Sb_的N-1个最大广义特征值所对应的特征向量组成的矩阵,即我们要求的投影矩阵

相关推荐
十有久诚10 分钟前
E2VPT: An Effective and Efficient Approach for Visual Prompt Tuning
人工智能·深度学习·提示学习·视觉语言模型
卓_尔_不_凡33 分钟前
Pytorch学习---基于经典网络架构ResNet训练花卉图像分类模型
人工智能·分类·数据挖掘
神奇夜光杯42 分钟前
Python酷库之旅-第三方库Pandas(123)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
SEU-WYL1 小时前
基于神经网络的光线追踪
人工智能·神经网络·计算机视觉
Bill661 小时前
OpenCV GUI常用函数详解
人工智能·opencv·计算机视觉
DisonTangor1 小时前
OpenAI面向开发者继续提高o1系列模型的调用速率 最高每分钟可调用1000次
人工智能
zhangbin_2371 小时前
【Python机器学习】NLP信息提取——提取人物/事物关系
开发语言·人工智能·python·机器学习·自然语言处理
王豫翔1 小时前
OpenAl o1论文:Let’s Verify Step by Step 快速解读
人工智能·深度学习·机器学习·chatgpt
xuehaikj1 小时前
婴儿接触危险物品检测系统源码分享
人工智能·计算机视觉·目标跟踪
用户572449561561 小时前
51CTO-2024全新Langchain大模型AI应用与多智能体实战开发
人工智能