机器学习——奇异值分解二(特征分解+SVD纯理解,头疼系列)

编程入门 行业动态 更新时间:2024-10-28 04:26:41

机器学习——奇异值<a href=https://www.elefans.com/category/jswz/34/1767758.html style=分解二(特征分解+SVD纯理解,头疼系列)"/>

机器学习——奇异值分解二(特征分解+SVD纯理解,头疼系列)

矩阵的特征分解

特征值和特征向量的定义

抄来的:奇异值分解

困惑1:特征值和特征向量,和原矩阵是怎样的关系,需要一个栗子进行更具象的认识
困惑2:为什么多个特征向量组合成的矩阵,可以构成矩阵A的特征分解?需要推导
困惑3:为什么要特征向量标准化?
困惑4:标准正交基是什么,为什么满足 W T W = I W^TW=I WTW=I
为什么。。。。

太多why,只能自己来解决吗。。。涕泪横流。。。

先来看看特征值和特征向量

特征值与特征向量的推导

求解特征向量与特征值

A x = λ x Ax=λx Ax=λx,λ是特征值,但特征值可能会有多个,每个特征值都有对应的特征向量

根据 ( A − λ E ) x = 0 (A-λE)x=0 (A−λE)x=0,而需要x是非零向量,则要求A-λE的行列式为0,即 ∣ A − λ E ∣ = 0 |A-λE|=0 ∣A−λE∣=0,就可以求出多个λ值
分别将λ值代入 ∣ A − λ E ∣ x = 0 |A-λE|x=0 ∣A−λE∣x=0,就可以求出对应的特征向量x

question:为什么x是非零向量, ∣ A − λ E ∣ = 0 |A-λE|=0 ∣A−λE∣=0的行列式就为0呢?而不是 A − λ E = 0 A-λE=0 A−λE=0向量呢?

still,why?
毫不避讳地说:我大学线性代数是老师给的同情分,60分飘过
但我后来,有自己学习过的,现在也忘个精光了,现在还是重新梳理一遍吧,省的回头海马体又不争气

非零解与行列式值的关系

首先,先从求解矩阵的行列式方法,推导出【非零解与行列式值的关系】

求解行列式,要从【消元法】求解齐次方程组的权重系数w的过程讲起:

  • w 1 x 11 + w 2 x 12 + w 3 x 13 = 0 w_1x_{11}+w_2x_{12}+w_3x_{13}=0 w1​x11​+w2​x12​+w3​x13​=0 式子①
  • w 1 x 21 + w 2 x 22 + w 3 x 23 = 0 w_1x_{21}+w_2x_{22}+w_3x_{23}=0 w1​x21​+w2​x22​+w3​x23​=0 式子②
  • w 1 x 31 + w 2 x 32 + w 3 x 33 = 0 w_1x_{31}+w_2x_{32}+w_3x_{33}=0 w1​x31​+w2​x32​+w3​x33​=0 式子③

通过消元法,求解 w 1 、 w 2 、 w 3 w_1、w_2、w_3 w1​、w2​、w3​:

  • 式子①保持: w 1 x 11 + w 2 x 12 + w 3 x 13 = 0 w_1x_{11}+w_2x_{12}+w_3x_{13}=0 w1​x11​+w2​x12​+w3​x13​=0
  • 式子②【数乘】【数加】消去 w 1 w_1 w1​项
    • 数乘: w 1 x 21 x 11 x 21 + w 2 x 22 x 11 x 21 + w 3 x 23 x 11 x 21 = 0 w_1x_{21}\frac{x_{11}}{x_{21}}+w_2x_{22}\frac{x_{11}}{x_{21}}+w_3x_{23}\frac{x_{11}} {x_{21}}=0 w1​x21​x21​x11​​+w2​x22​x21​x11​​+w3​x23​x21​x11​​=0
    • 数加①: 式子② -式子①可得 w 1 ∗ 0 + w 2 ( x 22 x 11 x 21 − x 12 ) + w 3 ( x 23 x 11 x 21 − x 13 ) = 0 w_1*0+w_2(x_{22}\frac{x_{11}}{x_{21}}-x_{12})+w_3(x_{23}\frac{x_{11}}{x_{21}}-x_{13})=0 w1​∗0+w2​(x22​x21​x11​​−x12​)+w3​(x23​x21​x11​​−x13​)=0
    • 即简化为 w 1 ∗ 0 + w 2 b 2 + w 3 b 3 = 0 w_1*0+w_2b_{2}+w_3b_3=0 w1​∗0+w2​b2​+w3​b3​=0
  • 式子③【数乘】【数加】消去 w 1 、 w 2 w_1、w_2 w1​、w2​项
    • 数乘: w 1 x 31 x 11 x 31 + w 2 x 32 x 11 x 31 + w 3 x 33 x 11 x 31 = y 3 x 11 x 31 w_1x_{31}\frac{x_{11}}{x_{31}}+w_2x_{32}\frac{x_{11}}{x_{31}}+w_3x_{33}\frac{x_{11}}{x_{31}}=y_3\frac{x_{11}}{x_{31}} w1​x31​x31​x11​​+w2​x32​x31​x11​​+w3​x33​x31​x11​​=y3​x31​x11​​
    • 数加①:式子③ -式子①可得 w 1 ∗ 0 + w 2 ( x 32 x 11 x 31 − x 12 ) + w 3 ( x 33 x 11 x 31 − x 13 ) = 0 w_1*0+w_2(x_{32}\frac{x_{11}}{x_{31}}-x_{12})+w_3(x_{33}\frac{x_{11}}{x_{31}}-x_{13})=0 w1​∗0+w2​(x32​x31​x11​​−x12​)+w3​(x33​x31​x11​​−x13​)=0
    • 数乘再数加消除 w 2 w2 w2,最终可化简为: w 1 ∗ 0 + w 2 ∗ 0 + w 3 c 3 = 0 w_1*0+w_2*0+w_3c_3=0 w1​∗0+w2​∗0+w3​c3​=0

通过消元法后:

稍微整理,下列的a\b\c系列都是已知数,求出w

  • w 1 a 1 + w 2 a 2 + w 3 a 3 = 0 w_1a_1+w_2a_2+w_3a_3=0 w1​a1​+w2​a2​+w3​a3​=0
  • w 1 ∗ 0 + w 2 b 2 + w 3 b 3 = 0 w_1*0+w_2b_{2}+w_3b_3=0 w1​∗0+w2​b2​+w3​b3​=0
  • w 1 ∗ 0 + w 2 ∗ 0 + w 3 c 3 = 0 w_1*0+w_2*0+w_3c_3=0 w1​∗0+w2​∗0+w3​c3​=0

这种情况下,方程只有无解,零解和非零解三种情况
将系数写成矩阵 ∣ a 1 a 2 a 3 0 b 2 b 3 0 0 c 3 ∣ \begin{vmatrix}a_{1}&a_{2}&a_{3}\\0&b_{2}&b_{3}\\0&0&c_{3}\\\end{vmatrix} ​a1​00​a2​b2​0​a3​b3​c3​​ ​,要使w1、w2、w3三个中有非零解,那就至少需要c3=0-

我觉得我在放屁。。。应该不是这样的,我再衡量衡量
还是偷别的up主教学吧
找个正解的线性代数(三)行列式的来历

好,即使上述关系能体现出,行列式不为零,则有非齐次线性方程组有非零解
但跟求特征根有什么关系呢? ( A − λ E ) x = 0 (A-λE)x=0 (A−λE)x=0
求特征根是求齐次线性方程组的解,但原本求行列式时的方程是非齐次方程组
特征根λ的行列式是:
∣ x 11 − λ x 12 x 13 x 21 x 22 − λ x 23 x 31 x 32 x 33 − λ ∣ \begin{vmatrix}x_{11}-λ&x_{12}&x_{13}\\x_{21}&x_{22}-λ&x_{23}\\x_{31}&x_{32}&x_{33}-λ\\\end{vmatrix} ​x11​−λx21​x31​​x12​x22​−λx32​​x13​x23​x33​−λ​

然后我又去翻其他的资料,果然。。。前边的分析方向搞错了,只能证明非齐次线性方程组的非零解条件是:行列式≠0

继续论证,齐次线性方程组的非零解条件是:行列式=0,才能说明行列式与特征根的关系

所以,求解非零特征根,是要求齐次线性方程组对应的系数矩阵的秩小于元素个数,也就等同于矩阵的行列式为0。

衍生出新的问题:为什么行列式是这样算的,行列式的本质到底是什么?它的计算有什么代数或几何意义吗?
我觉得,我需要知道它。。。然后去找到知乎一篇文行列式本质
我粗看一遍,感觉这篇文章一定藏着我想要的答案,但首先,我要能看懂它…

我很绝望,行列式的定义是总结归纳出来的吗?
它没有个因果关系吗?
头疼。。。。。

任意矩阵,都可以通过【交换】、【倍乘】、【倍加】的方式,变成上三角矩阵,且不改变行列式的值
B站up主的俗说矩阵,非常好!

穿插理解:行列式

呜呜呜呜呜呜,经过我坚持不懈地在B站摸鱼划水,终于在众说纷纭中,打通了任督二脉
我好像是懂了,懂了n阶行列式的定义,为什么是这样的了!!!!

先摆上二阶行列式的定义:

再摆上三阶行列式的定义:

再摆上n阶行列式的定义:

I don’t know why,how,what
二阶、二阶推导到三阶,我还能理解,但是怎么推出n阶的???
非常头疼,看了很多解释,有些看起来很专业,但我还是不理解
直到回顾到B站的俗说矩阵的行列式按行按列展开
我才有种灵光一闪的开窍!!!哦!!!!

首先,在行列式的二、三阶定义中,可以推导出【数乘】【交换】【数加】三种变换时的行列式变化

  • 【行或列数加】:行列式值无改变
  • 【行或列数乘】:行列式值乘相同数
  • 【行或列相邻交换】:行列式值为相反值

二阶可以由余子式累加得到
通过拆分成三角形式的行列式,可以更好地求的行列式
∣ a b x 21 x 22 ∣ = ∣ a 0 x 21 x 22 ∣ + ∣ 0 b x 21 x 22 ∣ \begin{vmatrix}a&b\\x_{21}&x_{22}\\\end{vmatrix}=\begin{vmatrix}a&0\\x_{21}&x_{22}\\\end{vmatrix}+\begin{vmatrix}0&b\\x_{21}&x_{22}\\\end{vmatrix} ​ax21​​bx22​​ ​= ​ax21​​0x22​​ ​+ ​0x21​​bx22​​

下三角无需更换行列,直接求得行列式
∣ a 0 x 21 x 22 ∣ = a ∣ x 22 ∣ = a x 22 \begin{vmatrix}a&0\\x_{21}&x_{22}\\\end{vmatrix}=a\begin{vmatrix}x_{22}\\\end{vmatrix}=ax_{22} ​ax21​​0x22​​ ​=a ​x22​​ ​=ax22​

将行列式通过【变换】,变换成下三角后,再求行列式
∣ 0 b x 21 x 22 ∣ = − ∣ b 0 x 22 x 21 ∣ = − b ∣ x 21 ∣ = − b x 21 \begin{vmatrix}0&b\\x_{21}&x_{22}\\\end{vmatrix}=-\begin{vmatrix}b&0\\x_{22}&x_{21}\\\end{vmatrix}=-b\begin{vmatrix}x_{21}\\\end{vmatrix}=-bx_{21} ​0x21​​bx22​​ ​=− ​bx22​​0x21​​ ​=−b ​x21​​ ​=−bx21​

相邻变换,行列式值会变为相反值,因此变换过程有负号产生

三阶也是如此,但三阶是可以由二阶推导来的
∣ x 11 x 12 x 13 x 21 x 22 x 23 x 31 x 32 x 33 ∣ = ∣ x 11 0 0 x 21 x 22 x 23 x 31 x 32 x 33 ∣ + ∣ 0 x 12 0 x 21 x 22 x 23 x 31 x 32 x 33 ∣ + ∣ 0 0 x 13 x 21 x 22 x 23 x 31 x 32 x 33 ∣ \begin{vmatrix}x_{11}&x_{12}&x_{13}\\x_{21}&x_{22}&x_{23}\\x_{31}&x_{32}&x_{33}\\\end{vmatrix}=\begin{vmatrix}x_{11}&0&0\\x_{21}&x_{22}&x_{23}\\x_{31}&x_{32}&x_{33}\\\end{vmatrix} +\begin{vmatrix}0&x_{12}&0\\x_{21}&x_{22}&x_{23}\\x_{31}&x_{32}&x_{33}\\\end{vmatrix}+\begin{vmatrix}0&0&x_{13}\\x_{21}&x_{22}&x_{23}\\x_{31}&x_{32}&x_{33}\\\end{vmatrix} ​x11​x21​x31​​x12​x22​x32​​x13​x23​x33​​ ​= ​x11​x21​x31​​0x22​x32​​0x23​x33​​ ​+ ​0x21​x31​​x12​x22​x32​​0x23​x33​​ ​+ ​0x21​x31​​0x22​x32​​x13​x23​x33​​

第一个直接构成下三角

  • ∣ x 11 0 0 x 21 x 22 x 23 x 31 x 32 x 33 ∣ = x 11 ∣ x 22 x 23 x 32 x 33 ∣ = x 11 ∣ x 22 0 x 32 x 33 ∣ + x 11 ∣ 0 x 23 x 32 x 33 ∣ \begin{vmatrix}x_{11}&0&0\\x_{21}&x_{22}&x_{23}\\x_{31}&x_{32}&x_{33}\\\end{vmatrix}=x_{11}\begin{vmatrix}x_{22}&x_{23}\\x_{32}&x_{33}\\\end{vmatrix}=x_{11}\begin{vmatrix}x_{22}&0\\x_{32}&x_{33}\\\end{vmatrix}+x_{11}\begin{vmatrix}0&x_{23}\\x_{32}&x_{33}\\\end{vmatrix} ​x11​x21​x31​​0x22​x32​​0x23​x33​​ ​=x11​ ​x22​x32​​x23​x33​​ ​=x11​ ​x22​x32​​0x33​​ ​+x11​ ​0x32​​x23​x33​​
  • x 11 ∣ x 22 0 x 32 x 33 ∣ + x 11 ∣ 0 x 23 x 32 x 33 ∣ = x 11 ∣ x 22 0 x 32 x 33 ∣ − x 11 ∣ x 23 0 x 33 x 32 ∣ x_{11}\begin{vmatrix}x_{22}&0\\x_{32}&x_{33}\\\end{vmatrix}+x_{11}\begin{vmatrix}0&x_{23}\\x_{32}&x_{33}\\\end{vmatrix}=x_{11}\begin{vmatrix}x_{22}&0\\x_{32}&x_{33}\\\end{vmatrix}-x_{11}\begin{vmatrix}x_{23}&0\\x_{33}&x_{32}\\\end{vmatrix} x11​ ​x22​x32​​0x33​​ ​+x11​ ​0x32​​x23​x33​​ ​=x11​ ​x22​x32​​0x33​​ ​−x11​ ​x23​x33​​0x32​​
  • 最终得到: x 11 ∗ x 22 x 33 − x 11 x 23 x 32 x_{11}*x_{22}x_{33}-x_{11}x_{23}x_{32} x11​∗x22​x33​−x11​x23​x32​

第二个需要变换1次,才成为下三角

  • ∣ 0 x 12 0 x 21 x 22 x 23 x 31 x 32 x 33 ∣ = − ∣ x 12 0 0 x 22 x 21 x 23 x 32 x 31 x 33 ∣ = − x 12 ∣ x 21 x 23 x 31 x 33 ∣ \begin{vmatrix}0&x_{12}&0\\x_{21}&x_{22}&x_{23}\\x_{31}&x_{32}&x_{33}\\\end{vmatrix}=-\begin{vmatrix}x_{12}&0&0\\x_{22}&x_{21}&x_{23}\\x_{32}&x_{31}&x_{33}\\\end{vmatrix}=-x_{12}\begin{vmatrix}x_{21}&x_{23}\\x_{31}&x_{33}\\\end{vmatrix} ​0x21​x31​​x12​x22​x32​​0x23​x33​​ ​=− ​x12​x22​x32​​0x21​x31​​0x23​x33​​ ​=−x12​ ​x21​x31​​x23​x33​​
  • − x 12 ∣ x 21 x 23 x 31 x 33 ∣ = − x 12 ( ∣ x 21 0 x 31 x 33 ∣ + ∣ 0 x 23 x 31 x 33 ∣ ) = − x 12 ( ∣ x 21 0 x 31 x 33 ∣ − ∣ x 23 0 x 33 x 31 ∣ ) = − x 12 ∗ ( x 21 ∗ ∣ x 33 ∣ − x 23 ∗ ∣ x 31 ∣ ) = − x 12 ∗ x 21 ∗ x 33 + x 12 ∗ x 23 ∗ x 31 -x_{12}\begin{vmatrix}x_{21}&x_{23}\\x_{31}&x_{33}\\\end{vmatrix}= -x_{12}(\begin{vmatrix}x_{21}&0\\x_{31}&x_{33}\\\end{vmatrix}+\begin{vmatrix}0&x_{23}\\x_{31}&x_{33}\\\end{vmatrix}) =-x_{12}(\begin{vmatrix}x_{21}&0\\x_{31}&x_{33}\\\end{vmatrix}-\begin{vmatrix}x_{23}&0\\x_{33}&x_{31}\\\end{vmatrix}) =-x_{12}*(x_{21}*\begin{vmatrix}x_{33}\\\end{vmatrix}-x_{23}*\begin{vmatrix}x_{31}\\\end{vmatrix})=-x_{12}*x_{21}*x_{33}+x_{12}*x_{23}*x_{31} −x12​ ​x21​x31​​x23​x33​​ ​=−x12​( ​x21​x31​​0x33​​ ​+ ​0x31​​x23​x33​​ ​)=−x12​( ​x21​x31​​0x33​​ ​− ​x23​x33​​0x31​​ ​)=−x12​∗(x21​∗ ​x33​​ ​−x23​∗ ​x31​​ ​)=−x12​∗x21​∗x33​+x12​∗x23​∗x31​

第三个需要变换2次,才成为下三角

  • ∣ 0 0 x 13 x 21 x 22 x 23 x 31 x 32 x 33 ∣ = − ∣ 0 x 13 0 x 21 x 23 x 22 x 31 x 33 x 32 ∣ = ∣ x 13 0 0 x 23 x 21 x 22 x 33 x 31 x 32 ∣ = x 13 ∣ x 21 x 22 x 31 x 32 ∣ \begin{vmatrix}0&0&x_{13}\\x_{21}&x_{22}&x_{23}\\x_{31}&x_{32}&x_{33}\\\end{vmatrix} =-\begin{vmatrix}0&x_{13}&0\\x_{21}&x_{23}&x_{22}\\x_{31}&x_{33}&x_{32}\\\end{vmatrix} =\begin{vmatrix}x_{13}&0&0\\x_{23}&x_{21}&x_{22}\\x_{33}&x_{31}&x_{32}\\\end{vmatrix} =x_{13}\begin{vmatrix}x_{21}&x_{22}\\x_{31}&x_{32}\\\end{vmatrix} ​0x21​x31​​0x22​x32​​x13​x23​x33​​ ​=− ​0x21​x31​​x13​x23​x33​​0x22​x32​​ ​= ​x13​x23​x33​​0x21​x31​​0x22​x32​​ ​=x13​ ​x21​x31​​x22​x32​​
  • 同理可推导得: x 13 ∗ x 21 ∗ x 32 − x 13 ∗ x 22 ∗ x 32 x_{13}*x_{21}*x_{32}-x_{13}*x_{22}*x_{32} x13​∗x21​∗x32​−x13​∗x22​∗x32​

为什么要变换的这么详细呢?因为这个过程,恰好展现了n阶行列式的定义!

首先,每一次的变换,都是先把首行中的元素,逐一变换到左上角,这个变换的过程主要与列有关

如果首行元素在奇数列(如第3列),则变换到左上角时,行列式值是不变号的
如果首行元素在偶数列(如第2列),则变换到左上角时,行列式值会变成负号


但除了首行元素的列问题,还有次行元素的列问题

因此,我脑子不够用了,但好在世界上有很多优秀的阿婆主,能讲清楚一些
n阶特征公式解释


具体的,还是看up主的分析会比较有领悟

当然,可能我只是哦!但实际还不是很清晰,但。。。不想特别去深究行列式的定义,大概理解就好
我。。。又快要忘记前边思考的是什么问题了
已理解:行列式是什么,行列式和非零解的关系,可知道当行列式不为零时,求解特征值时,特征值也是非零解

特征值和特征向量的推导

如果从坐标系固定,矩阵向量变换的角度看,矩阵A与向量x相乘 A x Ax Ax,通常是对向量x进行【旋转】+【伸缩】的变换,这个变换过程中,并伴随有【升降维】的作用。

如果从矩阵向量固定,坐标系变换的角度看,矩阵A与向量x相乘 A x Ax Ax,则表示向量x是在A坐标系下,(相当于声明:x是火星A上的人)

而矩阵与特征向量、特征值的关系 A x = λ x Ax=λx Ax=λx,右侧的 λ x λx λx没有矩阵相乘,则表示标准正交基坐标系 I I I下的向量x,只不过这个向量x中每个值都乘以λ倍

而 A x = λ x Ax=λx Ax=λx,则表示,在A坐标系下的特征向量x,实际等同于标准正交基坐标系 I I I里的向量x伸缩λ倍,相当于当坐标系A旋转伸缩变换成标准正交基坐标系 I I I后,向量x的方向没有发生旋转,只是进行了伸缩变换。

向量x,正是特征向量,而特征值λ相当于向量x伸缩的倍数

例如A有一个特征向量 x 1 x_1 x1​及对应特征值 λ 1 λ_1 λ1​,则 A x 1 = λ 1 x 1 Ax_1=λ_1x_1 Ax1​=λ1​x1​
∣ a 11 x 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ∣ ∣ x 11 x 21 x 31 ∣ = λ 1 ∣ x 11 x 21 x 31 ∣ \begin{vmatrix}a_{11}&x_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\\\end{vmatrix}\begin{vmatrix}x_{11}\\x_{21}\\x_{31}\\\end{vmatrix}=λ_1\begin{vmatrix}x_{11}\\x_{21}\\x_{31}\\\end{vmatrix} ​a11​a21​a31​​x12​a22​a32​​a13​a23​a33​​ ​x11​x21​x31​​ ​=λ1​ ​x11​x21​x31​​

再例如A的第2 个特征向量 x 2 x_2 x2​及对应特征值 λ 2 λ_2 λ2​,则 A x 2 = λ 2 x 2 Ax_2=λ_2x_2 Ax2​=λ2​x2​
∣ a 11 x 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ∣ ∣ x 12 x 22 x 32 ∣ = λ 1 ∣ x 12 x 22 x 32 ∣ \begin{vmatrix}a_{11}&x_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\\\end{vmatrix}\begin{vmatrix}x_{12}\\x_{22}\\x_{32}\\\end{vmatrix}=λ_1\begin{vmatrix}x_{12}\\x_{22}\\x_{32}\\\end{vmatrix} ​a11​a21​a31​​x12​a22​a32​​a13​a23​a33​​ ​x12​x22​x32​​ ​=λ1​ ​x12​x22​x32​​

将A的所有特征向量x组成矩阵W,则有
W = ∣ x 11 x 12 x 13 x 21 x 22 x 23 x 31 x 32 x 33 ∣ W=\begin{vmatrix}x_{11}&x_{12}&x_{13}\\x_{21}&x_{22}&x_{23}\\x_{31}&x_{32}&x_{33}\\\end{vmatrix} W= ​x11​x21​x31​​x12​x22​x32​​x13​x23​x33​​

要让 λ 1 、 λ 2 、 λ 3 λ_1、λ_2、λ_3 λ1​、λ2​、λ3​对应乘以到W中,则需要将λ形成对角矩阵
Σ = ∣ λ 1 0 0 0 λ 2 0 0 0 λ 3 ∣ Σ=\begin{vmatrix}λ_1&0&0\\0&λ_2&0\\0&0&λ_3\\\end{vmatrix} Σ= ​λ1​00​0λ2​0​00λ3​​
则 W Σ = ∣ λ 1 x 11 λ 2 x 12 λ 3 x 13 λ 1 x 21 λ 2 x 22 λ 3 x 23 λ 1 x 31 λ 2 x 32 λ 3 x 33 ∣ WΣ=\begin{vmatrix}λ_1x_{11}&λ_2x_{12}&λ_3x_{13}\\λ_1x_{21}&λ_2x_{22}&λ_3x_{23}\\λ_1x_{31}&λ_2x_{32}&λ_3x_{33}\\\end{vmatrix} WΣ= ​λ1​x11​λ1​x21​λ1​x31​​λ2​x12​λ2​x22​λ2​x32​​λ3​x13​λ3​x23​λ3​x33​​

而 A W = ∣ a 11 x 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ∣ ∣ x 11 x 12 x 13 x 21 x 22 x 23 x 31 x 32 x 33 ∣ = W Σ = ∣ x 11 x 12 x 13 x 21 x 22 x 23 x 31 x 32 x 33 ∣ ∣ λ 1 0 0 0 λ 2 0 0 0 λ 3 ∣ AW=\begin{vmatrix}a_{11}&x_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\\\end{vmatrix}\begin{vmatrix}x_{11}&x_{12}&x_{13}\\x_{21}&x_{22}&x_{23}\\x_{31}&x_{32}&x_{33}\\\end{vmatrix}=WΣ=\begin{vmatrix}x_{11}&x_{12}&x_{13}\\x_{21}&x_{22}&x_{23}\\x_{31}&x_{32}&x_{33}\\\end{vmatrix}\begin{vmatrix}λ_1&0&0\\0&λ_2&0\\0&0&λ_3\\\end{vmatrix} AW= ​a11​a21​a31​​x12​a22​a32​​a13​a23​a33​​ ​x11​x21​x31​​x12​x22​x32​​x13​x23​x33​​ ​=WΣ= ​x11​x21​x31​​x12​x22​x32​​x13​x23​x33​​ ​λ1​00​0λ2​0​00λ3​​

A W W − 1 = W Σ W − 1 AWW^{-1}=WΣW^{-1} AWW−1=WΣW−1,因此就有 A = W Σ W − 1 A=WΣW^{-1} A=WΣW−1

这就是矩阵特征分解的推导
但是,当我有一天深夜,回头看这段的时候,内心依然有个大猩猩捶胸顿足:这里推导出的 A = W Σ W − 1 A=WΣW^{-1} A=WΣW−1,是逆矩阵。而下边的矩阵特征分解 A = W Σ W T A = WΣW^T A=WΣWT,是转置矩阵。
怎么来的?

这就要明确,W本身是正交矩阵,也就是W里的每个向量都是相互垂直(内积为0)且线性无关的。

正交矩阵有个性质:正交矩阵的转置矩阵,等于它的逆矩阵,即 W T = W − 1 W^T=W^{-1} WT=W−1

why?简单论证一下

正交矩阵,意味着矩阵内的任意两个不同向量都是相互垂直(内积为0)且线性无关的。

这意味着: W Σ W T = I WΣW^{T}=I WΣWT=I(不同向量的点乘为0,相同向量的点乘为1,因此形成了单位正交基矩阵I)

而逆矩阵本身的定义就是 W Σ W − 1 = I WΣW^{-1}=I WΣW−1=I

因此,正交矩阵的转置=正交矩阵的逆矩阵

之前一直有个潜意识的误会,以为线性无关的向量组成的矩阵,就是正交矩阵
实际是不正确的
从几何的角度来看:线性无关指的是不共线,正交指的是相互垂直
相互垂直,本身就是不共线,因此,可以说正交矩阵里的任意不同向量,是线性无关的
但向量不共线,并不一定是垂直的,因此线性无关向量组不一定是正交矩阵

两个向量线性相关:表示向量共线,意味着一个向量,可以被另外一个向量表示,这个表示可以用一个伸缩量表示如:A = 5B,向量A和向量B共线。

而线性无关、线性相关,在代数角度来看,指的是一个方程,是否可以由其他方程或其他方程组来表示

- a 1 x 1 + b 1 x 2 + c 1 x 3 = 0 a_1x_1 + b_{1}x_2+c_{1}x_3=0 a1​x1​+b1​x2​+c1​x3​=0,方程①
- 0 + b 2 x 2 + c 2 x 3 = 0 0+b_2x_2+c_2x_3=0 0+b2​x2​+c2​x3​=0,方程②
- 0 + 0 + c 3 x 3 = 0 0+0+c_3x_3=0 0+0+c3​x3​=0,方程③
可以看到,上述的方程①②③,均无法通过其他方程来表示,因此这三个方程的系数向量,两两之间都是线性无关的,且方程组本身只有零解

再比如,以下线性相关的栗子🌰
- a 1 x 1 + b 1 x 2 + c 1 x 3 = 0 a_1x_1 + b_{1}x_2+c_{1}x_3=0 a1​x1​+b1​x2​+c1​x3​=0,方程①
- 0 + b 2 x 2 + c 2 x 3 = 0 0+b_2x_2+c_2x_3=0 0+b2​x2​+c2​x3​=0,方程②
- 3 a 1 x 1 + ( 3 b 1 + b 2 ) x 2 + ( 3 c 1 + c 2 ) x 3 = 0 3a_1x_1 + (3b_{1}+b_2)x_2+(3c_{1}+c_2)x_3=0 3a1​x1​+(3b1​+b2​)x2​+(3c1​+c2​)x3​=0,方程③
- 可以看到,上述的方程③,可以由方程①②表示,因此方程③和方程①②之间,是线性相关的
方程组可以简化为以下
- a 1 x 1 + b 1 x 2 + c 1 x 3 = 0 a_1x_1 + b_{1}x_2+c_{1}x_3=0 a1​x1​+b1​x2​+c1​x3​=0,方程①
- 0 + b 2 x 2 + c 2 x 3 = 0 0+b_2x_2+c_2x_3=0 0+b2​x2​+c2​x3​=0,方程②
- 0 x 1 + 0 x 2 + 0 x 3 = 0 0x_1 + 0x_2+0x_3=0 0x1​+0x2​+0x3​=0,方程③
方程组本身有非零解

区别了正交和线性无关的关系后,我们知道,W必须是正交矩阵,才有 W T = W − 1 W^T=W^{-1} WT=W−1,进而得到特征值分解公式 A = W Σ W T A = WΣW^T A=WΣWT

我们知道,W是A的特征向量,但A的特征向量组凭什么是正交矩阵?

哭了卧槽。。。。写完的推导。。。。还没来得及更新,就自动没了
心累

总之就是有两个性质,才能证明W是A的正交特征向量组成的矩阵。

性质①:普通方阵的不同特征值,对应的特征向量之间,是线性无关的
性质②:实对称矩阵的不同特征值,对应的特征向量之间,是正交的(内积为0)

简单说说性质①的理解:因为从几何角度看,原坐标系变换为标准正交基坐标系后,如果一个向量的方向没有改变,只是伸缩了λ倍,则称该向量为特征向量,特征值为对应的λ

而如果特征值不同,说明特征向量必然是不同方向的

而代数证明,看大神不同特征值的特征向量线性无关证明

这里,仅给出性质②的推导吧。。。因为心碎了
实对称矩阵的特征值、特征向量均是实数

实对称矩阵的不同特征值,对应的特征向量是相互正交的。

因此,一个实对称矩阵的特征值分解即可推导完成:
A是实对称矩阵,W是A的正交特征向量组(正交矩阵),则有, W − 1 = W T , 可推出 A = W Σ W T W^{-1}=W^T,可推出A = WΣW^T W−1=WT,可推出A=WΣWT

矩阵特征分解的意义

矩阵(方阵),可以由它的所有特征向量和特征值来表示,

例如A是mxm的方阵,它所有的特征向量为mxm的方阵W,对应的特征值矩阵为mxm的对角矩阵Σ

则 A = W Σ W T A = WΣW^T A=WΣWT

特征分解后,可以选择删除一些不重要的特征,对方阵A进行降维。

那怎么知道哪些特征是不重要的呢?

这里的特征,其实指的就是特征向量和特征值,主要看特征值。

如果特征值相对而言特别特别小,接近于0,则这个特征向量对原方阵A的影响相应比较小。

A = ∣ a 11 x 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ∣ = ∣ x 11 x 12 x 13 x 21 x 22 x 23 x 31 x 32 x 33 ∣ ∣ λ 1 0 0 0 λ 2 0 0 0 λ 3 ∣ ∣ x 11 x 21 x 31 x 12 x 22 x 32 x 13 x 23 x 33 ∣ A=\begin{vmatrix}a_{11}&x_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\\\end{vmatrix}=\begin{vmatrix}x_{11}&x_{12}&x_{13}\\x_{21}&x_{22}&x_{23}\\x_{31}&x_{32}&x_{33}\\\end{vmatrix}\begin{vmatrix}λ_1&0&0\\0&λ_2&0\\0&0&λ_3\\\end{vmatrix}\begin{vmatrix}x_{11}&x_{21}&x_{31}\\x_{12}&x_{22}&x_{32}\\x_{13}&x_{23}&x_{33}\\\end{vmatrix} A= ​a11​a21​a31​​x12​a22​a32​​a13​a23​a33​​ ​= ​x11​x21​x31​​x12​x22​x32​​x13​x23​x33​​ ​λ1​00​0λ2​0​00λ3​​ ​x11​x12​x13​​x21​x22​x23​​x31​x32​x33​​

A = ∣ λ 1 x 11 λ 2 x 12 λ 3 x 13 λ 1 x 21 λ 2 x 22 λ 3 x 23 λ 1 x 31 λ 2 x 32 λ 3 x 33 ∣ ∣ x 11 x 21 x 31 x 12 x 22 x 32 x 13 x 23 x 33 ∣ A=\begin{vmatrix}λ_1x_{11}&λ_2x_{12}&λ_3x_{13}\\λ_1x_{21}&λ_2x_{22}&λ_3x_{23}\\λ_1x_{31}&λ_2x_{32}&λ_3x_{33}\\\end{vmatrix}\begin{vmatrix}x_{11}&x_{21}&x_{31}\\x_{12}&x_{22}&x_{32}\\x_{13}&x_{23}&x_{33}\\\end{vmatrix} A= ​λ1​x11​λ1​x21​λ1​x31​​λ2​x12​λ2​x22​λ2​x32​​λ3​x13​λ3​x23​λ3​x33​​ ​x11​x12​x13​​x21​x22​x23​​x31​x32​x33​​

A = ∣ λ 1 x 11 2 + λ 2 x 12 2 + λ 3 x 13 2 λ 1 x 11 x 21 + λ 2 x 12 x 22 + λ 3 x 13 x 23 λ 1 x 11 x 31 + λ 2 x 12 x 32 + λ 3 x 13 x 33 λ 1 x 21 x 11 + λ 2 x 22 x 12 + λ 3 x 23 x 13 λ 1 x 21 x 21 + λ 2 x 22 x 22 + λ 3 x 23 x 23 λ 1 x 21 x 31 + λ 2 x 22 x 32 + λ 3 x 32 x 33 λ 1 x 31 x 11 + λ 2 x 32 x 12 + λ 3 x 33 x 13 λ 1 x 31 x 21 + λ 2 x 32 x 22 + λ 3 x 33 x 23 λ 1 x 31 x 31 + λ 2 x 32 x 32 + λ 3 x 33 x 33 ∣ A=\begin{vmatrix} λ_1x^2_{11}+λ_2x^2_{12}+λ_3x^2_{13} &λ_1x_{11}x_{21}+λ_2x_{12}x_{22}+λ_3x_{13}x_{23} &λ_1x_{11}x_{31}+λ_2x_{12}x_{32}+λ_3x_{13}x_{33}\\ λ_1x_{21}x_{11}+λ_2x_{22}x_{12}+λ_3x_{23}x_{13} &λ_1x_{21}x_{21}+λ_2x_{22}x_{22}+λ_3x_{23}x_{23} &λ_1x_{21}x_{31}+λ_2x_{22}x_{32}+λ_3x_{32}x_{33}\\ λ_1x_{31}x_{11}+λ_2x_{32}x_{12}+λ_3x_{33}x_{13} &λ_1x_{31}x_{21}+λ_2x_{32}x_{22}+λ_3x_{33}x_{23} &λ_1x_{31}x_{31}+λ_2x_{32}x_{32}+λ_3x_{33}x_{33}\\\end{vmatrix} A= ​λ1​x112​+λ2​x122​+λ3​x132​λ1​x21​x11​+λ2​x22​x12​+λ3​x23​x13​λ1​x31​x11​+λ2​x32​x12​+λ3​x33​x13​​λ1​x11​x21​+λ2​x12​x22​+λ3​x13​x23​λ1​x21​x21​+λ2​x22​x22​+λ3​x23​x23​λ1​x31​x21​+λ2​x32​x22​+λ3​x33​x23​​λ1​x11​x31​+λ2​x12​x32​+λ3​x13​x33​λ1​x21​x31​+λ2​x22​x32​+λ3​x32​x33​λ1​x31​x31​+λ2​x32​x32​+λ3​x33​x33​​

如果将特征值非常小的特征值和对应的特征向量去掉,如删掉λ1和x2,则有
A = ∣ λ 2 x 12 λ 3 x 13 λ 2 x 22 λ 3 x 23 λ 2 x 32 λ 3 x 33 ∣ ∣ x 12 x 22 x 32 x 13 x 23 x 33 ∣ A = \begin{vmatrix}λ_2x_{12}&λ_3x_{13}\\λ_2x_{22}&λ_3x_{23}\\λ_2x_{32}&λ_3x_{33}\\\end{vmatrix}\begin{vmatrix}x_{12}&x_{22}&x_{32}\\x_{13}&x_{23}&x_{33}\\\end{vmatrix} A= ​λ2​x12​λ2​x22​λ2​x32​​λ3​x13​λ3​x23​λ3​x33​​ ​x12​x13​​x22​x23​​x32​x33​​

这样还原出来的A,就不是完完全全的A矩阵了,但相对而言,如果λ1比较小,那么还原出来的矩阵与A矩阵差别也不会太大

奇异值分解SVD

SVD数学推导(简单易懂)

看过一个推导的非常详实的知乎大神:奇异值分解(SVD)

看过理解,不代表真的理解,自己去推导一下吧,搞不好会有一些新的认识

A是mxn的矩阵,U是mxm的方阵,V是nxn的方阵,∑是一个mxn的矩阵,且只有对角线上的元素为非零元素。

那么A、U、V、∑之间有什么关系,才能形成奇异值分解 A = U Σ V T A=UΣV^T A=UΣVT的关系呢?

首先,U是 A A T AA^T AAT方阵的特征向量,特征值为 λ u λ_u λu​: A A T U = λ u U AA^TU=λ_uU AATU=λu​U

其次,V是 A T A A^TA ATA方阵的特征向量,特征值为 λ v λ_v λv​: A T A V = λ v V A^TAV=λ_vV ATAV=λv​V

要知道,不同特征值对应的特征向量是线性无关的,因此,它的转置乘以它本身 V T V = U T U = E V^TV=U^TU=E VTV=UTU=E

进而,可以求出奇异矩阵∑, A = U Σ V T → A V = U Σ V T V = U Σ A=UΣV^T→AV=UΣV^TV=UΣ A=UΣVT→AV=UΣVTV=UΣ

Σ Σ Σ只有对角线上的元素是非零,因此逐一求出对角线上的元素 α i α_i αi​即可
A v 1 = U α 1 Av_1=Uα_1 Av1​=Uα1​、 A v 2 = U α 2 Av_2=Uα_2 Av2​=Uα2​…

又或者,

  • A = U Σ V T → A T = V Σ U T A=UΣV^T→A^T=VΣU^T A=UΣVT→AT=VΣUT, A A T = U Σ V T V Σ U T = U Σ 2 U T AA^T=UΣV^TVΣU^T=UΣ^2U^T AAT=UΣVTVΣUT=UΣ2UT

  • 由于U是 A A T AA^T AAT的特征向量,因此 A A T U = λ u U → A A T = U Σ u U T = U Σ 2 U T AA^TU=λ_uU→AA^T=UΣ_uU^T=UΣ^2U^T AATU=λu​U→AAT=UΣu​UT=UΣ2UT

  • 因此有 Σ 2 = Σ u Σ^2=Σ_u Σ2=Σu​, 奇异 值 2 = m × m 的 A A T 方阵的特征值 奇异值²=m×m的AA^T方阵的特征值 奇异值2=m×m的AAT方阵的特征值

另外,

  • A = U Σ V T → A T = V Σ U T A=UΣV^T→A^T=VΣU^T A=UΣVT→AT=VΣUT, A T A = V Σ U T U Σ V T = V Σ 2 V T A^TA=VΣU^TUΣV^T=VΣ^2V^T ATA=VΣUTUΣVT=VΣ2VT

  • 由于V是 A T A A^TA ATA的特征向量,因此 A T A V = λ v V → A T A = V Σ v V T = V Σ 2 V T A^TAV=λ_vV→A^TA=VΣ_vV^T=VΣ^2V^T ATAV=λv​V→ATA=VΣv​VT=VΣ2VT

  • 因此有 Σ 2 = Σ v Σ^2=Σ_v Σ2=Σv​, 奇异 值 2 = n × n 的 A T A 方阵的特征值 奇异值²=n×n的A^TA方阵的特征值 奇异值2=n×n的ATA方阵的特征值

困惑来了,U矩阵和V矩阵,分别是mxm和nxn,那么U和V 的特征值个数是不一样,U和V的特征值如果不一样,那么奇异值矩阵里的奇异值,到底是用U的特征值还是V的特征值呢????

看了大神的原文评论,似乎是找到了答案,但为什么U和V的非零特征值会相等呢?

他说,左乘A可以得到。。。但。。。可以得到什么?

唉。。。脑子不好,无法凭空想象,可能要回家用纸推导一下

A T A v = λ v v A^TAv=λ_vv ATAv=λv​v,左乘A后
( A A T ) A v = λ v ( A v ) (AA^T)Av=λ_v(Av) (AAT)Av=λv​(Av),这有什么特殊的吗?那就要结合u来看
A A T u = λ u u AA^Tu=λ_uu AATu=λu​u,如果 A v = u Av=u Av=u,那就是 λ u = λ v λ_u=λ_v λu​=λv​

就可以看到,U和V的特征值相等,但关键是: A v = u Av=u Av=u真的相等吗?

em。。。。。这怎么能看出 A v = u Av=u Av=u呢???
不李姐不李姐,真的不李姐

那就要重新寻找转置矩阵的一个重要性质:
A T A A^TA ATA和 A A T AA^T AAT的非零特征值相等

假设 λ i λ_i λi​是 A A T AA^T AAT的特征值,对应的特征向量为 x x x

则有 A A T x = λ i x AA^Tx=λ_ix AATx=λi​x,左乘一个 A T A^T AT,即有 A T A ( A T x ) = λ i ( A T x ) A^TA(A^Tx)=λ_i(A^Tx) ATA(ATx)=λi​(ATx)

可以看出, A T A A^TA ATA的特征值也是 λ i λ_i λi​,虽然特征向量变为了 A T x A^Tx ATx

同理,反过来也是可以论证出 A T A A^TA ATA与 A A T AA^T AAT特征值相等

但下边是比较原理型的解释,但是涉及了很多线性代数的知识

SVD数学推导(严谨复杂没梳理)

重来👉:那么A、U、V、∑之间有什么关系,才能形成奇异值分解 A = U Σ V T A=UΣV^T A=UΣVT的关系呢?

首先,明确V是 A T A A^TA ATA的正交特征向量组(正交矩阵)

A T A A^TA ATA是nxn实对称矩阵,那么假设 A T A A^TA ATA的秩为r,则说明非零特征值也有r个

为什么实对称矩阵的秩等于非零特征值的个数呢?
懒得证了。。。但不理解的话,心里又会有个疙瘩
有个up主说:实对称矩阵的秩r为非零特征值的个数,是因为实对称矩阵可以进行相似对角化,并且相似对角化的过程并不会影响秩,由于相似对角化后的对角矩阵的主对角线元素,就是特征值,那么,主对角线上有几个元素,即为秩,且意味着实对称矩阵的特征值个数也为r

但我有个很大的困惑:即使实对称矩阵A能相似对角化,且相似对角矩阵为B,且秩未改变。
但对角阵B上的元素只是B的特征值,又不是A的特征值,万一A在相似对角化后,特征值个数与B不同呢?因此,秩不变,不代表秩=特征值个数
除非还能说明,实对称矩阵的特征值个数与相似矩阵的特征值个数一致,或与相似矩阵的特征值一致。
如何论证实对称矩阵必定可以相似对角化,且对角阵上的元素即为实对称矩阵的特征值呢?
这里要拆解为3个待探索的问题:

  • 什么是相似对角化?(这个比较好理解)
  • 为什么实对称矩阵必定可以相似对角化?(不好理解)
  • 为什么对角阵上的元素为实对称矩阵的特征值?(就没去理解)

那么, V 原 = [ v 1 , v 2 , . . . v r ] V_原 = [v_1,v_2,...v_r] V原​=[v1​,v2​,...vr​],也有r个特征向量,且相互正交 A T A v i = λ i v i A^TAv_i=λ_iv_i ATAvi​=λi​vi​, λ i 是 v i 对应 λ_i是v_i对应 λi​是vi​对应的特征值令 A v i Av_i Avi​是mx1矩阵,设 u i = A v i ∣ ∣ A v i ∣ ∣ u_i=\frac{Av_i}{||Av_i||} ui​=∣∣Avi​∣∣Avi​​ ∣ ∣ A v i ∣ ∣ 2 = ( A v i ) T ( A v i ) = v i T A T A v i = v i T λ i v i = λ i v i T v i = λ i ||Av_i||^2=(Av_i)^T(Av_i)=v_i^TA^TAv_i=v_i^Tλ_iv_i=λ_iv_i^Tv_i=λ_i ∣∣Avi​∣∣2=(Avi​)T(Avi​)=viT​ATAvi​=viT​λi​vi​=λi​viT​vi​=λi​

u i = A v i ∣ ∣ A v i ∣ ∣ = A v i λ i u_i=\frac{Av_i}{||Av_i||}=\frac{Av_i}{\sqrt{λ_i}} ui​=∣∣Avi​∣∣Avi​​=λi​ ​Avi​​

令 σ i = λ i σ_i=\sqrt{λ_i} σi​=λi​

则 σ i u i = A v i σ_iu_i=Av_i σi​ui​=Avi​

头疼,无法理解更多了
只能说明,这个U和V都是补充成各自的mxm和nxn矩阵的正交矩阵

奇异值分解的降维意义

为什么奇异值分解,可以进行降维呢?

主要还是参考矩阵的特征分解时的降维意义。

不过,这只是一种比较数理方面的解释,B站有个博主,用了非常生动形象的动画效果,演示了降维的操作及意义!

B站小学长课堂

当时我在高铁的渣渣网络上看到时,虽然卡的一匹,但依然惊叹到:世间有如此博主,实乃学渣之幸事!

总之,到这里,奇异值分解内容,算是学习结束了

撒花~🌼

不不不,从PCA穿越回来的我,还是深深谴责了自己的浮躁

SVD究竟是怎样降维的,还需要再深思一下。

A是mxn的矩阵,U是mxm的方阵,V是nxn的方阵,∑是一个mxn的奇异值矩阵,且只有对角线上的元素为非零元素,并且对角线上的奇异值²=U的特征值,或=V的特征值。

如果降维选取的是前K个奇异值,那么U和V都会相应地裁剪成mxk和kxn的形式

也就是,U只保留前K的数据,而 V T V^T VT只保留前K的数据,实际也是V保留了前K列

最终合成的数据还是mxn形式

但说实话,它最终保留的前K个特征值分别是什么,尤其应用在压缩图像上,它压缩后保留的具体是什么信息,删掉的又是些什么信息,我目前还没理解

更多推荐

机器学习——奇异值分解二(特征分解+SVD纯理解,头疼系列)

本文发布于:2024-02-17 17:12:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1694798.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:分解   奇异   特征   机器   系列

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!