• [吃瓜教程]南瓜书第3章二分类线性判别分析


    1.算法原理(模型)

    线性判别分析(Linear Discriminant Analysis,LDA)是一种经典的线性学习方法,亦称为Fisher判别分析。
    LDA 的思想:
    给定训练样本集,将全体样本投影到一条直线上,使的:

    • 同类样例的投影点总体尽可能接近/同类样本的方差尽可能小;
    • 异类样本的投影点总体尽可能远离/异类样本的中心尽可能远;
    • 在这里插入图片描述

    2.损失函数推导(策略)

    2.0 补充

    1.范数(Norm) 是一个在向量空间中用于量度向量大小的函数。它满足以下性质:

    1. 非负性:对于任何向量x,有||x|| ≥ \geq 0且||x||=0当且仅当x=0;
    2. 齐次性(正齐次性):对于任何标量 α \alpha α和任何向量x,有 ∣ ∣ α x ∣ ∣ = ∣ α ∣ ∣ ∣ x ∣ ∣ ||\alpha x||=|\alpha|||x|| ∣∣αx∣∣=α∣∣∣x∣∣
    3. 三角不等式:对于任何向量x和y,有 ∣ ∣ x + y ∣ ∣ ≤ ∣ ∣ x ∣ ∣ + ∣ ∣ y ∣ ∣ ||x+y||\leq||x||+||y|| ∣∣x+y∣∣∣∣x∣∣+∣∣y∣∣

    一般的p-范数定义为:
    ∥ x ∥ p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 p \|\mathbf{x}\|_p = \left( \sum_{i=1}^{n} |x_i|^p \right)^{\frac{1}{p}} xp=(i=1nxip)p1

    2.协方差和协方差矩阵:
    方差和协方差是统计学中用于描述数据分布和关系的重要指标。
    方差
    方差是描述一个随机变量的离散程度的度量,表示数据点与均值之间的偏离程度。
    公式
    样本方差:
    s 2 = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) 2 s^2 = \frac{1}{n-1} \sum_{i=1}^{n} (x_i - \bar{x})^2 s2=n11i=1n(xixˉ)2
    总体方差:
    σ 2 = 1 N ∑ i = 1 N ( x i − μ ) 2 \sigma^2 = \frac{1}{N} \sum_{i=1}^{N} (x_i - \mu)^2 σ2=N1i=1N(xiμ)2
    协方差
    协方差是描述两个随机变量之间的线性关系的度量。它反映了一个变量变化时另一个变量的变化方向。
    公式
    样本方差:
    cov ( X , Y ) = 1 n − 1 ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) \text{cov}(X, Y) = \frac{1}{n-1} \sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y}) cov(X,Y)=n11i=1n(xixˉ)(yiyˉ)
    总体方差:
    σ X Y = 1 N ∑ i = 1 N ( x i − μ X ) ( y i − μ Y ) \sigma_{XY} = \frac{1}{N} \sum_{i=1}^{N} (x_i - \mu_X)(y_i - \mu_Y) σXY=N1i=1N(xiμX)(yiμY)
    协方差矩阵:

    协方差矩阵 x 1 x_1 x1 x 2 x_2 x2
    x 1 x_1 x1 cov ( x 1 , x 1 ) \text{cov}(x_1, x_1) cov(x1,x1) cov ( x 1 , x 2 ) \text{cov}(x_1, x_2) cov(x1,x2)
    x 2 x_2 x2 cov ( x 2 , x 1 ) \text{cov}(x_2, x_1) cov(x2,x1) cov ( x 2 , x 2 ) \text{cov}(x_2, x_2) cov(x2,x2)

    2.1推导过程

    设要投影的直线为 ω \boldsymbol \omega ω μ 0 , μ 1 \mu_0,\mu_1 μ0,μ1分别表示反例集合和正例集合的均值向量 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1分别表示反例集合和正例集合的均值向量与投影直线的夹角, 围绕上面思想中的中心方差两个点来进行推导:
    1.异类样本的中心要尽可能远:
    ∣ μ 0 ∣ c o s θ 表示 μ 0 到 ω 的投影的长 |\mu_0|cos\theta 表示\mu_0到\omega的投影的长 μ0cosθ表示μ0ω的投影的长
    为了实现异类样本的中心尽可能的远,那么就应该求下式:
    m a x ∣ ∣ ( ∣ μ 0 ∣ c o s θ − ∣ μ 1 ∣ c o s θ ) ∣ ∣ 2 2 max||(|\mu_0|cos\theta-|\mu_1|cos\theta)||^2_2 max∣∣(μ0cosθμ1cosθ)22
    在看上面的式子,发现这个 θ \theta θ不好得到,那就进一步化,在上式中乘以一个常量(不会影响求最大值) ∣ ω ∣ |\omega| ω,注意这里是减完之后是个向量,因此要用到范数来衡量向量大小,而平方是为了简化计算,得到,
    m a x ∣ ∣ ( ∣ ω ∣ ∣ μ 0 ∣ c o s θ − ∣ ω ∣ ∣ μ 1 ∣ c o s θ ) ∣ ∣ 2 2 max||(|\omega||\mu_0|cos\theta-|\omega||\mu_1|cos\theta)||^2_2 max∣∣(ω∣∣μ0cosθω∣∣μ1cosθ)22
    即得到,
    m a x ∣ ∣ ω T μ 0 − ω T μ 1 ∣ ∣ 2 2 max||\omega^T\mu_0-\omega^T\mu_1||^2_2 max∣∣ωTμ0ωTμ122
    2.同类样本的方差要尽可能小:
    m i n ( ω T ( ∑ 0 + ∑ 1 ) ω ) min({\omega^T(\sum_0+\sum_1)\omega}) min(ωT(0+1)ω)

    最终得到损失函数:
    m a x J = m a x ( ∣ ∣ ω T μ 0 − ω T μ 1 ∣ ∣ 2 2 ω T ∑ 0 ω + ω T ∑ 1 ω ) − − − − − − − − − − − − − = m a x ( ∣ ∣ ( ω T μ 0 − ω T μ 1 ) T ∣ ∣ 2 2 ω T ( ∑ 0 + ∑ 1 ) ω ) − − − − − − − − − − − − − = m a x ( ∣ ∣ ( μ 0 − μ 1 ) T ω ∣ ∣ 2 2 ω T ( ∑ 0 + ∑ 1 ) ω ) − − − − − − − − − − − − − = m a x ( [ ( μ 0 − μ 1 ) T ω ] T ( μ 0 − μ 1 ) T ω ω T ( ∑ 0 + ∑ 1 ) ω ) − − − − − − − − − − − − − = m a x ( ω T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T ω ω T ( ∑ 0 + ∑ 1 ) ω ) maxJ =max(\frac{||\omega^T\mu_0-\omega^T\mu_1||^2_2}{\omega^T\sum_0\omega+\omega^T\sum_1\omega})\newline -------------\newline =max(\frac{||(\omega^T\mu_0-\omega^T\mu_1)^T||^2_2}{\omega^T(\sum_0+\sum_1)\omega})\newline -------------\newline =max(\frac{||(\mu_0-\mu_1)^T\omega||^2_2}{\omega^T(\sum_0+\sum_1)\omega})\newline -------------\newline =max(\frac{[(\mu_0-\mu_1)^T\omega]^T(\mu_0-\mu_1)^T\omega}{\omega^T(\sum_0+\sum_1)\omega})\newline -------------\newline =max(\frac{\omega^T(\mu_0-\mu_1)(\mu_0-\mu_1)^T\omega}{\omega^T(\sum_0+\sum_1)\omega})\newline maxJ=max(ωT0ω+ωT1ω∣∣ωTμ0ωTμ122)=max(ωT(0+1)ω∣∣(ωTμ0ωTμ1)T22)=max(ωT(0+1)ω∣∣(μ0μ1)Tω22)=max(ωT(0+1)ω[(μ0μ1)Tω]T(μ0μ1)Tω)=max(ωT(0+1)ωωT(μ0μ1)(μ0μ1)Tω)
    第一步到第二步是可以这么理解:1*1的向量转置不变。
    进一步,把上面的式子的中间部分记作 S b S_b Sb,下面式子的中间部分记作 S w S_w Sw,得到:
    m a x J = w T S b w w T S w w maxJ=\frac{w^TS_bw}{w^TS_ww} maxJ=wTSwwwTSbw
    转化为最小化:
    m i n − w T S b w s . t .   w T S w w = 1 min -w^TS_bw \newline s.t. \ w^TS_ww=1 minwTSbws.t. wTSww=1

    3.求解w(算法)

    3.0 补充:拉格朗日乘子法

    拉格朗日乘子法是一种在约束条件下求解多元函数极值的数学方法。它通过引入拉格朗日乘子,将约束优化问题转换为无约束优化问题。该方法特别适用于等式约束的情况。
    拉格朗日乘子法的步骤
    **1.构造拉格朗日函数:**将目标函数和约束条件结合,形成拉格朗日函数。
    L ( x 1 , x 2 , … , x n , λ 1 , λ 2 , … , λ m ) = f ( x 1 , x 2 , … , x n ) + ∑ i = 1 m λ i g i ( x 1 , x 2 , … , x n ) \mathcal{L}(x_1,x_2, \ldots, x_n, \lambda_1, \lambda_2, \ldots, \lambda_m) = f(x_1, x_2, \ldots, x_n) + \sum_{i=1}^{m} \lambda_i g_i(x_1, x_2, \ldots, x_n) L(x1,x2,,xn,λ1,λ2,,λm)=f(x1,x2,,xn)+i=1mλigi(x1,x2,,xn)
    **2.求拉格朗日函数的偏导数:**对所有变量求偏导数,并令这些偏导数等于零,得到一组方程。
    ∂ L ∂ x j = 0 ( j = 1 , 2 , … , n ) \frac{\partial \mathcal{L}}{\partial x_j} = 0 \quad (j = 1, 2, \ldots, n) xjL=0(j=1,2,,n)
    ∂ L ∂ λ i = 0 ( i = 1 , 2 , … , m ) \frac{\partial \mathcal{L}}{\partial \lambda_i} = 0 \quad (i = 1, 2, \ldots, m) λiL=0(i=1,2,,m)
    3.解方程组: 通过解上一步得到的方程组,得到值。

    3.1求解w过程

    由拉格朗日乘子法可得到拉格朗日函数为:
    L ( w , λ ) = − w T S b w + λ ( w T S w w − 1 ) L(w,\lambda)=-w^TS_bw+\lambda(w^TS_ww-1) L(w,λ)=wTSbw+λ(wTSww1)
    对w求偏导得到(使用矩阵微分公式)
    ∂ L ( w , λ ) ∂ w = − ∂ ( w T S b w ) ∂ w + λ ∂ ( w T S w w − 1 ) ∂ w − − − − − − − = − ( S b + S b T ) w + λ ( S W + S w T ) w − − − − − − − = − 2 S b w + 2 λ S w w \frac{\partial L(w,\lambda)}{\partial w}=-\frac{\partial(w^TS_bw)}{\partial w}+\lambda\frac{\partial(w^TS_ww-1)}{\partial w}\newline -------\newline=-(S_b+S_b^T)w+\lambda(S_W+S_w^T)w\newline -------\newline=-2S_bw+2\lambda S_ww wL(w,λ)=w(wTSbw)+λw(wTSww1)=(Sb+SbT)w+λ(SW+SwT)w=2Sbw+2λSww
    令上式等于0得到,
    − 2 S b w + 2 λ S w w = 0 -2S_bw+2\lambda S_ww=0 2Sbw+2λSww=0
    λ S w w = S b w \lambda S_ww=S_bw λSww=Sbw
    λ S w w = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w \lambda S_ww=(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw λSww=(μ0μ1)(μ0μ1)Tw
    若令 ( μ 0 − μ 1 ) T w = γ (\mu_0-\mu_1)^Tw=\gamma (μ0μ1)Tw=γ(一个数),则
    λ S w w = ( μ 0 − μ 1 ) γ \lambda S_ww=(\mu_0-\mu_1)\gamma λSww=(μ0μ1)γ
    w = γ λ S w − 1 ( μ 0 − μ 1 ) w=\frac \gamma \lambda S_w^{-1}(\mu_0-\mu_1) w=λγSw1(μ0μ1)
    由于不关心w的大小只关心方向,所以可令 γ = λ \gamma=\lambda γ=λ,即得到最终的求解公式。

    4.广义特征值和广义利瑞商

    4.1广义特征值

    设A,B为n阶方阵,若存在数 λ \lambda λ,使得方程 A x = λ B x Ax=\lambda Bx Ax=λBx存在非零解,则称 λ \lambda λ为A相对于B 的广义特征值,x为A 相对于B的属于广义特征值 λ \lambda λ的特征向量。特别的,当B=I(单位矩阵)时,广义特征值问题退化为标准特征值问题。

    4.2广义利瑞商

    设A,B为n阶厄米(Hermitian)矩阵,且B 正定,称 R ( x ) = x H A x x H B x ( x ≠ 0 ) R(x)=\frac{x^HAx}{x^HBx}(x\neq0) R(x)=xHBxxHAx(x=0)为A相对于B 的广义瑞利商。特别的,当B=I(单位矩阵)时,广义瑞利商退化为瑞利商。
    性质:
    λ i , x i ( i = 1 , 2 , . . . , n ) \lambda_i,x_i(i=1,2,...,n) λi,xi(i=1,2,...,n)为A相对于B的广义特征值和特征向量,且 λ 1 ≤ λ 2 ≤ . . . ≤ λ n \lambda_1\leq\lambda_2\leq...\leq\lambda_n λ1λ2...λn
    m i n x ≠ 0 R ( x ) = x H A x x H B x = λ 1 , x ∗ = x 1 min_{x\neq 0}R(x)=\frac{x^HAx}{x^HBx}=\lambda_1,x^*=x_1 minx=0R(x)=xHBxxHAx=λ1,x=x1
    m a x x ≠ 0 R ( x ) = x H A x x H B x = λ n , x ∗ = x n max_{x\neq 0}R(x)=\frac{x^HAx}{x^HBx}=\lambda_n,x^*=x_n maxx=0R(x)=xHBxxHAx=λn,x=xn
    上述性质可用来证明多分类线性判别分析

  • 相关阅读:
    Android Activity启动模式详解
    Web Component-初识
    R-tree总结
    【 C++ 】set、multiset的介绍和使用
    [go学习笔记.第十四章.协程和管道] 1.协程的引入,调度模型以及运行cpu数目,协程资源竞争问题
    2022年11月7日--11月13日(ue4 tf视频教程+cesium for ue源码抄写)
    Python 列表切片陷阱:引用、复制与深复制
    地奥集团大健康产业再添解酒黑科技:“酒必妥”!
    伤停等待(wound-wait)在分布式事务中
    21天学习挑战赛-线性表(上)
  • 原文地址:https://blog.csdn.net/qq_41776136/article/details/140052157