Processing math: 100%

线性判别分析(Linear Discriminant Analysis, LDA)

一、线性判别器的问题分析

线性判别分析(Linear Discriminant Analysis, LDA)是一种经典的线性学习方法,在二分类问题上亦称为 "Fisher" 判别分析。与感知机不同,线性判别分析的原理是降维,即:给定一组训练样本,设法将样本投影到某一条直线上,使相同分类的点尽可能地接近而不同分类的点尽可能地远,因此可以利用样本点在该投影直线上的投影位置来确定样本类型。

二、线性判别器的模型

还是假定在 p 维空间有 m 组训练样本对,构成训练集 T=(x1,y1),(x2,y2),...,(xn,yn),其中 xiR1×pyi{1,+1},以二维空间为例,在线性可分的情况下,所有样本在空间可以描述为:

我们的目的就是找到一个超平面 Φ:b+w1x1+w2x2+..+wnxn=0,使得所有的样本点满足 “类内尽可能接近,类外尽可能遥远"。那么我们用类内的投影方差来衡量类内的接近程度,用类间的投影均值来表示类间的距离。这里,我们另 w 代表投影方向,如下图所示,

在这里,x,w 均为 p×1 的列向量,那么根据投影定理,xw 上的投影 p 既有方向又有距离,那么:

pw 同方向,表示为:w||w||p 的长度为:||x||cosθ=||x||xw||w||||x||=xw||w||

由于 w 的长度不影响投影结果,因此我们为了简化计算,设置 ||w||=1,只保留待求 w 的方向:||p||=xw=wTx

2.1 类间投影均值

我们假设用 u0u1 分别表示第1,2类的均值,那么:

u0=1mmi=1xi,u1=1nni=1xi

所以,第一,二类均值在 w 方向上的投影长度分别表示为:wTu0wTu1

2.2 类内投影方差

根据方差的计算公式,第一类的类内投影方差可以表示为:

z0=1nni=1(wTxiwTu0)2=1nni=1(wTxiwTu0)(wTxiwTu0)T

即:

z0=1nni=1wT(xiu0)(xiu0)Tw=wT[1nni=1(xiu0)(xiu0)T]w

如下图所示:

xi,u0 都是一维时, 式子 1nni=1(xiu0)(xiu0)T 就表示所有输入 xi 的方差;

xi,u0 都是二维时, 式子 1nni=1(xiu0)(xiu0)T 就表示:

1nni=1[x11u01x12u02][x11u01x12u02]=1nni=1[(x11u01)2(x11u01)(x12u02)(x12u02)(x11u01)(x12u02)2]

其中:u01 表示第一类集合中在第一个维度上的均值,u01 表示第一类集合中在第二个维度上的均值,x11 表示第一类集合中第一个维度的坐标值,x12 表示第一类集合中第二个维度的坐标值

综上:当 xi,u0 都是 p 维时, 式子 1nni=1(xiu0)(xiu0)T 表示 p 个维度之间的协方差矩阵,我们用符号 M0 表示。因此(3)可以写成: z0=wTM0w 同理可以得到:z1=wTM1w

我们设 J(w) 为最终的损失函数,那么满足 ”类内方差最小,类间均值最大“ 的 最大化J(w) 可以表示为:

J(w)=||wTu0wTu1||2z0+z1=wT(u0u1)(u0u1)TwwT(M0+M1)w

借用西瓜书的符号,我们定义类间散度矩阵:Sb=(u0u1)(u0u1)T,类内散度矩阵:Sw=M0+M1,于是式 (6) 可以重写为:

J(w)=wTSbwwTSww

三、线性判别器的求解

由于 wRp×1,Sb,SwRp×p,因此:J(w)R1×1,所以(7)可以写成:J(w)=wTSbw(wTSww)1

根据我们之前的讲述:矩阵求导 - ZhiboZhao - 博客园 (cnblogs.com)

J(w)w=2Sbw(wTSww)1+(wTSbw)(1)(wTSww)2×2Sww=0

可以解得:

Sbw=wTSwwwTSwwSbw

即:

w=wTSbwwTSwwS1wSbw

由于我们主要关心的是 w 的方向,因此可以简化为:w=S1wSbw=S1w(u0u1)(u0u1)Tw

又因为 (u0u1)Tw 也是一个标量,因此,最终的结果为:w=S1w(u0u1)

由于 Sw 是实对称矩阵,因此一定存在矩阵 U,V,使得:Sw=Udiag(λ1,λ2,...,λp)VT,所以最后的结果为:

w=Vdiag(λ1,λ2,...,λp)1UT(u0u1)

posted @   ZhiboZhao  阅读(1176)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示