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

相关推荐
golang学习记3 分钟前
Jetbrains 正式官宣:全新AI IDE正式发布!
ide·人工智能·intellij-idea·air
HZjiangzi4 分钟前
深耕精密驱动二十六载,捷昌驱动助力机器人产业升级发展
人工智能·算法
鬓戈13 分钟前
Claude Code frontend-design 插件调研 与 Vue 旧系统风格一致性方案
前端·vue.js·人工智能
BSD_CGQ17 分钟前
柔性触觉到工业称重:FSR 高精度工程化适配路径解析
大数据·人工智能·压力传感器·柔性薄膜压力传感器
一隅论数智18 分钟前
给AI找对“富矿“:本体协同的六大应用模式与落地战法
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
HZjiangzi21 分钟前
从传统精密制造到机器人赛道:捷昌驱动旋转模组技术突围之路
人工智能
shaibdoio22 分钟前
意图识别实战:从规则匹配到传统机器学习,再到混合大模型方案
人工智能·机器学习
IT_陈寒24 分钟前
SpringBoot自动配置的坑我帮你踩过了
前端·人工智能·后端
198******1263426 分钟前
2026企业AI办公工具选型全指南:自动资料整合与报告生成赛道全景
大数据·人工智能
一木 之林27 分钟前
《OpenAI库基础学习总结:Client 初始化、流式输出 delta 拼接与多轮历史 messages 全流程拆解》
人工智能·学习·计算机视觉·stable diffusion·aigc