zoukankan      html  css  js  c++  java
  • 子空间算法

    子空间算法

    问题描述:X1,X2,...,Xp为训练样本,每个Xi为M维矢量,要求一个N×M的矩阵A,使得:

    YN×1=AN×MXM×1

    AN×M=a1a2...aN

    NM时,这是一种降维算法。这里主要介绍两种降维算法:PCA与LDA。PCA是无监督的降维算法,计算出X变化最大的前N个方向并将X向这些方向投影,得到一个N维的向量Y。LDA是有监督的算法,根据类别标记找到最大化类间差异,最小化类内差异的方向。

    主成分分析法(Principle Component Analysis)

    将不同的样本投影到某一个方向上,若这些样本投影后具有较大的差异,则比较易于分类。所以我们要找这样一个方向a,使得X向a投影之后得到的Y的方差最大。

    求第一个方向a1

    假设我们找到了前N个满足上述要求的方向:a1,a2,...,aN,每个ai都是一个1×M维的矢量。
    设训练样本有P个,对方向a1,有:
    y1=a1X1,y2=a2X2,...,yp=a1Xp
    上述问题要求:

    Maximize:E(a1)=i=1p(yiy¯)2

    因为
    y¯=1pi=1pyi=1pi=1pa1Xi=a1X¯

    所以
    E(a1)=i=1p(a1Xia1X¯)2=i=1p(a1(XiX¯))2=i=1p[a1(XiX¯)][a1(XiX¯)]T=a1i=1p(XiX¯)(XiX¯)TaT1=a1ΣaT1

    其中,Σ=pi=1(XiX¯)(XiX¯)T为协方差矩阵。优化问题化为:
    Maximize:E(a1)=a1ΣaT1

    Subject to:a1aT1=1

    这个约束条件是因为方向的模可以认为是1。
    用拉格朗日乘子法求解:
    M(a1)=E(a1)+λ(a1aT11)

    Ma1=ΣaT1λaT1=0

    ΣaT1=λaT1

    所以,aT1Σ的特征向量,λΣ的特征值。
    E(a1)=a1(ΣaT1)=a1(λaT1)=λa1aT1=λ

    所以,要最大化E(a1),就是要最大化λaT1Σ最大的特征值所对应的特征向量。

    求第二个方向a2

    求解a2时,要保证a2a1正交,优化问题是:

    Maximize:E(a2)=a2ΣaT2

    Subject to:a2aT2=1

    a1aT2=a2aT1=1

    同样用拉格朗日乘子法可以求得a2Σ第二大的特征值所对应的特征向量。

    算法总结

    1输入X1,X2,...,Xm
    2Σ=pi=1(XiX¯)(XiX¯)T
    3求Σ的特征值和特征向量:
    λ1,λ2,...,λN,对应的特征向量,a1,a2,...,aN
    4变换矩阵:

    AN×M=a1a2...aN

    计算Y:
    YN×1=AN×MXM×1

    思考

    问题:Σ的特征值中不为0的有多少?
    - 若对称阵Σ的秩为r,则不为0的特征值有r个
    - 一个N×1的向量与一个N×1的向量相乘,所得N×N的矩阵,秩最多是多少?答案是1。
    - 一个秩为r1的矩阵加上一个秩为r2的矩阵,秩最多为r1+r2.
    可知Σ的秩最多为m-1个,其中m是训练样本的个数。这是因为:(XiX¯)(XiX¯)T的秩为1,而X1X¯,X2X¯,...,XmX¯最多有m-1个是互相独立的。
    综上,Σ的特征值中不为0的数目min(N,m1)

    线性判别分析(Linear Discriminant Analysis)

    线性判别分析是一种有监督的降维算法。它的最优准则是:类间距离大,类内距离小。
    以二分类问题为例,LDA问题可以描述成:

    mMX1,X2,...,Xm,W使X̃ =WX

    首先,计算X̃ 的数学期望:
    μ1~=1N1=X̃ ϵC1X̃ μ2~=1N2=X̃ ϵC2X̃ 

    方差:

    稀疏表达(Sparse Representation)

    稀疏表达问题可以描述为:对Y=AX,已知Y和A,求X。

  • 相关阅读:
    【BZOJ-3712】Fiolki LCA + 倍增 (idea题)
    【BZOJ-1941】Hide and Seek KD-Tree
    【BZOJ-2400】Spoj839Optimal Marks 最小割 + DFS
    【BZOJ-3709】Bohater 贪心
    【BZOJ-2342】双倍回文 Manacher + 并查集
    【BZOJ-3790】神奇项链 Manacher + 树状数组(奇葩) + DP
    【BZOJ-4568】幸运数字 树链剖分 + 线性基合并
    【BZOJ-4520】K远点对 KD-Tree + 堆
    【BZOJ-4127】Abs 树链剖分 + 线段树 (有趣的姿势)
    【BZOJ-2648&2716】SJY摆棋子&天使玩偶 KD Tree
  • 原文地址:https://www.cnblogs.com/goodluckcwl/p/5686101.html
Copyright © 2011-2022 走看看