【深度学习】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个最大广义特征值所对应的特征向量组成的矩阵,即我们要求的投影矩阵

相关推荐
G皮T3 小时前
【人工智能】ChatGPT、DeepSeek-R1、DeepSeek-V3 辨析
人工智能·chatgpt·llm·大语言模型·deepseek·deepseek-v3·deepseek-r1
九年义务漏网鲨鱼3 小时前
【大模型学习 | MINIGPT-4原理】
人工智能·深度学习·学习·语言模型·多模态
元宇宙时间3 小时前
Playfun即将开启大型Web3线上活动,打造沉浸式GameFi体验生态
人工智能·去中心化·区块链
开发者工具分享3 小时前
文本音频违规识别工具排行榜(12选)
人工智能·音视频
产品经理独孤虾3 小时前
人工智能大模型如何助力电商产品经理打造高效的商品工业属性画像
人工智能·机器学习·ai·大模型·产品经理·商品画像·商品工业属性
老任与码4 小时前
Spring AI Alibaba(1)——基本使用
java·人工智能·后端·springaialibaba
蹦蹦跳跳真可爱5894 小时前
Python----OpenCV(图像増强——高通滤波(索贝尔算子、沙尔算子、拉普拉斯算子),图像浮雕与特效处理)
人工智能·python·opencv·计算机视觉
雷羿 LexChien4 小时前
从 Prompt 管理到人格稳定:探索 Cursor AI 编辑器如何赋能 Prompt 工程与人格风格设计(上)
人工智能·python·llm·编辑器·prompt
两棵雪松5 小时前
如何通过向量化技术比较两段文本是否相似?
人工智能
heart000_15 小时前
128K 长文本处理实战:腾讯混元 + 云函数 SCF 构建 PDF 摘要生成器
人工智能·自然语言处理·pdf