• SVD分解的理解


    对称阵A

                                                            

    相应的,其对应的映射也分解为三个映射。现在假设有x向量,用A将其变换到A的列空间中,那么首先由U'先对x做变换:

                                                                                  

    由于正交阵“ U的逆=U‘ ”,对于两个空间来讲,新空间下的“ 基E' 坐标 x' ,原空间E 坐标x ”有如下关系

        EX=E'X' ===>

        X=E'X' ===>

        X'=(E'的逆)x ==>

        x向量在新的“基”下的新坐标  (E的转置)X;

    1、那么对于上式UTx先可以理解为:将x用A的所有特征向量表示为:

                                             

    则通过第一个变换就可以把x表示为[a1 a2 ... am]':

                               

    2、紧接着,在新的坐标系表示下,由中间那个对角矩阵对新的向量坐标换,其结果就是将向量往各个轴方向拉伸或压缩:

                                  

    如果A不是满秩的话,那么就是说对角阵的对角线上元素存在0,这时候就会导致维度退化,这样就会使映射后的向量落入m维空间的子空间中(塌缩的概念)。

    3、最后一步U[],相当于将X按照A的空间下变化过后,在转回原坐标系表示!

    那么对于SVD分解中,

    正交基v选择为A'A的特征向量的,由于A'A是对称阵,v之间两两正交,

    对v1,v2,...,vk进行扩展v(k+1),...,vn(这n-k个向量存在于A的零空间中,即Ax=0的解空间的基),使得v1,v2,...,vn为n维空间中的一组正交基,即

    当k < i <= m时,对u1,u2,...,uk进行扩展u(k+1),...,um,使得u1,u2,...,um为m维空间中的一组正交基,即

    A矩阵的奇异值分解:

                                                     

                    

    AX=UEVTx,,,按照同上的理解,首先对x坐标转换,然后做对应效果的拉伸,

    不过这里在一个A的作用下应该没有ATA的效果厉害所以只有sqrt作为对角元素,然后在使用U将表示转变回来!

    参考:http://blog.csdn.net/zhongkejingwang/article/details/43053513

    输出是最好的输入,记录并不止是以防忘记!
  • 相关阅读:
    mysql联合索引命中条件
    Shiro知识初探(更新中)
    Java中使用MongoTemplate进行分批处理数据
    Java中String时间范围比较
    使用ReentrantLock
    使用Condition
    python的坑--你知道吗?
    python基础--函数全解析(1)
    CSS基本语法及页面引用
    HTML学习汇总
  • 原文地址:https://www.cnblogs.com/kanuore/p/6758807.html
Copyright © 2020-2023  润新知