SVD分解和PCA

预备知识1 – Operator

如果 V 代表某个内积空间,T是从 V V( VV )的线性映射,那么 T 被称为V上的一个Operator,记为 TL(V) ,它的矩阵形式为 MT , 当然,选定的基不同,矩阵形式也会不同。

注:关于向量空间,线性映射, 内积空间,基,以及线性映射和矩阵的关系,请参考[1].

预备知识2 – Adjoint

假设 T 是内积空间V上的一个Operator,即 TL(V) , 那么 T adjoint定义为T, 对于任意 w,vV , 满足:

Tw,v=w,Tv

Adjoint概念实际上和复数空间的共轭对应:
考虑 T T 的矩阵形式 MT MT , 如果我们选择一组单位正交基, 那么 MT MT 的共轭转置形式。

有两类比较重要的Operator, 它们的Adjoint具有特殊的性质:

  1. Normal operator, 满足对于任意 v 属于内积空间V, Tv=Tv
  2. Self-Adjoint, 满足 T=T

预备知识3 – 对角矩阵

对于一个Operator, 它的最完美的矩阵形式应该是对角矩阵, 这样的形式 能极大地简化线性空间上的运算. 但是,并不是所有的Operator都具有这样一组基, 能将其矩阵形式, 表现为对角阵, 那么, 怎么样的Operator, 它的矩阵形式, 一定能化成对角阵呢?

在复数域,即 V=Cn , 当且仅当如果一个operatornormal operator, 能找到一组的基,将其矩阵形式转换成对角阵.

而在实数域 V=Rn ,条件更为苛刻,当且仅当一个operatorSelf-Adjoint时,才能找到这样的一组基, 将其矩阵形式转化为对角阵.

预备知识4 – Isometry(同构)

一个operator被称为isometry, 那么它满足: Tv=v

预备知识5 – Positive Operator (Semidefinite Operator,半正定映射/矩阵)

一个operator被称为Positive Operator, 首先,它需要是一个Self-Adjoint Operator, 其次,它需要满足:对于任意 v , Tv,v0

如果 T Positive Operator, 那么它具有如下的重要的性质 (SVD分解需要利用这些性质):

  1. TSelf-Adjoint, 且T的特征值非负。

    • T 有一个Positive Square Root, 即T=SS, S Positive Operator, 可以把S 写成 S=T
    • SVD分解的本质

      可以证明,对于任意一个Operator T , TT(T的adjoint乘以T) 是一个Positive Operator.
      T 可以写成如下的形式(证明过程参考[1], ch7, Polar and Singular-Value Decompositions).

      T=STT,Sisometry

      由于 TT 是positive, TT 也是positive, 同时也是Self-Adjoint, 于是我们可以找到一组基

      (e1,e2,.,en)

      使得 TT 的矩阵可以表示成一个对角阵, 对角线上是 TT 的特征值(非负)。
      这些特征值被称为 T的奇异值:假设为 s1,s2,s3,,sn , 同时有:

      TTv=s1e1,ve1+s2e2,ve2++snen,ven

      (至于为什么可以写成这个形式,请参考[1]).

      我们取 f1=Se1,f2=Se2,fn=Sen

      可以证明, 由于 S 是一个Isometry, (f1,f2,fn)也是 V 上的一组基(通过证明其线性独立), 于是

      Tv=STTv=s1e1,vf1+s2e2,vf2++snen,vfn

      上面的公式说明: 通过奇异值分解, 我们可以找到两组基 e f, 通过 T 将空间Span(e1,e2,.,en) 映射到空间 Span(f1,f2,fn) , 这个映射可以表示成一个对角阵, 它对角线上的值就是T的奇异值( TT 的特征值)。

      Span(f1,f2,fn) : 对 (f1,f2,fn) 进行线性组合, 产生的所有向量v组成的线性空间

      注意,我们不再把 T 看成一个Operator, 而是将其作为一个普通的线性映射, 从空间Span(e1,e2,.,en)映射到空间 Span(f1,f2,fn) . 而我们选择的两组基,恰好可以将这个映射的矩阵形式,表示成对角阵.

      应用SVD分解 – PCA 用于Linear/Logistic Regression

      在Linear Regression中,假设参数向量为: θ=[α0,α1,α2αn]T
      输入特征为

      X=xT1xT2...xTM

      那么训练样本的预测输出为: Hθ(X)=Xθ

      我们把训练样本 X 矩阵作为一个Operator, 生成预测值的过程就是将向量 θ进行了一次映射, 用的基是一组标准基 (1,0,,0),(0,1,0,,0).(0,0,0,1)=(a1,a2,.,an)

      注意:下面的文字不区分X和X在标准基下的矩阵形式,根据上下文推断。

      因为使用的标准基(单位正交), 所以 X AdjointX的共轭转置, 在实际应用中, X 的数据都是实数,所以XAdjoint X 的转置.

      然后我们对X进行奇异值分解,首先求 XTX 的特征值, 计算出奇异值 s1,s2,s3,,sn 以及两组新的基 (e1,e2,.,en) (f1,f2,fn)

      然后将 Hθ(X) 转换成如下的形式:

      Hθ(X)=Xθ=UPθ=Uθ

      其中 就是通过奇异值分解得到的对角阵。

      矩阵 P 定义了 从基 (a1,a2,.,an) 到基 (e1,e2,.,en) 的坐标转换。
      矩阵 U 定义了 从基(f1,f2,.,fn) 到基 (a1,a2,.,an) 的坐标转换。

      同时,PCA通过选择最大的若干特征值, 对 (e1,e2,.,en),(f1,f2,.,fn) 进行裁剪,降维后对新的参数向量 θ' 进行训练.

      Matlab中的svd函数

      实际操作中, 如果使用Matlab的svd函数,通过选择 U 的前K列, 转置后乘以某个样本 x , 即将x投影到 (f1,f2,.,fK) 定义的子空间. (由于 U 是一个isometric, 在单位正交基下,其转置等同于求逆)。 然后直接在该子空间中训练新的参数, 因此,并不需要P矩阵。

      Reference

      [1] Linear Algebra Done Right, Sheldon Axler, Springer, 2nd edition

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值