开坑,刚看完书,已经有些窒息了
先把坑挖了,再慢慢填,避免自己划水跳过
我爱线代,线代爱我,阿弥陀佛
为什么要学奇异值分解?
因为书本倒数第二章专门提到的,想必一定很重要,于是我上网查了一下奇异值分解的应用
wow 。。。很有用,增加了学习的动力
在机器学习中,奇异值分解,可以删除一些没什么作用的特征。
具体是如何删除的呢?需要先了解一下,奇异值分解的数学原理
不会吧。。。我难道要用markdown语法来写矩阵的推导过程吗。。。
太痛苦了吧
首先,奇异值是什么?分解又从何谈起?
- 奇异值分解的本质,其实是矩阵分解的延伸
什么是矩阵分解?矩阵分解又有什么意义呢?
- 矩阵分解,是将一个矩阵分解为多个形式简单的矩阵,可以更好地理解矩阵本身的作用
-
感觉像一句废话,举个栗子吧...oh不,举个up主:矩阵分解及正交矩阵
- 其实就是用矩阵的伸缩、旋转变换功能来举例
向量和矩阵
向量一般是竖着写的,几个向量组成一个矩阵
例如向量 X = [ x 1 x 2 x 3 ] \begin{bmatrix} x_1\\ x_2\\ x_3\\ \end{bmatrix} x1x2x3 ,Y = [ y 1 y 2 y 3 ] \begin{bmatrix} y_1\\ y_2\\ y_3\\ \end{bmatrix} y1y2y3 ,Z = [ z 1 z 2 z 3 ] \begin{bmatrix} z_1\\ z_2\\ z_3\\ \end{bmatrix} z1z2z3 ,K = [ k 1 k 2 k 3 ] \begin{bmatrix} k_1\\ k_2\\ k_3\\ \end{bmatrix} k1k2k3
矩阵是几个向量的组合
[ x 1 y 1 z 1 k 1 x 2 y 2 z 2 k 2 x 3 y 3 z 3 k 3 ] \begin{bmatrix} x_1&y_1&z_1&k_1\\ x_2&y_2&z_2&k_2\\ x_3&y_3&z_3&k_3\\ \end{bmatrix} x1x2x3y1y2y3z1z2z3k1k2k3
向量和矩阵的代数表示
向量可以用于表示 一个
多元齐次方程的系数,也可以表示自变量
- w 1 x 1 + w 2 x 2 + w 3 x 3 = 0 w_1x_1+w_2x_2+w_3x_3=0 w1x1+w2x2+w3x3=0
那么这个多元齐次方程的系数,可以用向量 W → W^→ W→表示W = [ w 1 w 2 w 3 ] \begin{bmatrix} w_1\\ w_2\\ w_3\\ \end{bmatrix} w1w2w3 ,自变量标为X = [ x 1 x 2 x 3 ] \begin{bmatrix} x_1\\ x_2\\ x_3\\ \end{bmatrix} x1x2x3
如果有多个
多元齐次方程,但系数可能只有一组,而自变量可能有多组数据,如下多个多元齐次方程
- w 1 x 11 + w 2 x 12 + w 3 x 13 = 0 w_1x_{11}+w_2x_{12}+w_3x_{13}=0 w1x11+w2x12+w3x13=0,自变量向量为X1 = [ x 11 x 12 x 13 ] \begin{bmatrix} x_{11}\\ x_{12}\\ x_{13}\\ \end{bmatrix} x11x12x13
- w 1 x 21 + w 2 x 22 + w 3 x 23 = 0 w_1x_{21}+w_2x_{22}+w_3x_{23}=0 w1x21+w2x22+w3x23=0,自变量向量X2 = [ x 21 x 22 x 23 ] \begin{bmatrix} x_{21}\\ x_{22}\\ x_{23}\\ \end{bmatrix} x21x22x23
- w 1 x 31 + w 2 x 32 + w 3 x 33 = 0 w_1x_{31}+w_2x_{32}+w_3x_{33}=0 w1x31+w2x32+w3x33=0,自变量向量X3 = [ x 31 x 32 x 33 ] \begin{bmatrix} x_{31}\\ x_{32}\\ x_{33}\\ \end{bmatrix} x31x32x33
系数只有一组,即W = [ w 1 w 2 w 3 ] \begin{bmatrix} w_1\\ w_2\\ w_3\\ \end{bmatrix} w1w2w3 ,自变量数据有多组,X = [ x 11 x 21 x 31 x 12 x 22 x 32 x 13 x 23 x 33 ] \begin{bmatrix} x_{11}&x_{21}&x_{31}\\ x_{12}&x_{22}&x_{32}\\ x_{13}&x_{23}&x_{33}\\ \end{bmatrix} x11x12x13x21x22x23x31x32x33
这时候,要表示多元齐次方程组的计算式,需要将向量W转置后,再与X相乘
即 W T X = [ w 1 w 2 w 3 ] [ x 11 x 21 x 31 x 12 x 22 x 32 x 13 x 23 x 33 ] W^TX=\begin{bmatrix} w_1&w_2&w_3\\ \end{bmatrix}\begin{bmatrix} x_{11}&x_{21}&x_{31}\\ x_{12}&x_{22}&x_{32}\\ x_{13}&x_{23}&x_{33}\\ \end{bmatrix} WTX=[w1w2w3] x11x12x13x21x22x23x31x32x33
这是一种基础的矩阵乘法的代数意义,系数可能只有一组
- w 1 x 11 + w 2 x 12 + w 3 x 13 = 0 w_1x_{11}+w_2x_{12}+w_3x_{13}=0 w1x11+w2x12+w3x13=0
- w 1 x 21 + w 2 x 22 + w 3 x 23 = 0 w_1x_{21}+w_2x_{22}+w_3x_{23}=0 w1x21+w2x22+w3x23=0
- w 1 x 31 + w 2 x 32 + w 3 x 33 = 0 w_1x_{31}+w_2x_{32}+w_3x_{33}=0 w1x31+w2x32+w3x33=0
还有另外一种进阶的矩阵乘法代数意义,就是系数可能有多组
第一组齐次方程 | 第二组齐次方程 |
---|---|
w 11 x 11 + w 12 x 12 + w 13 x 13 = 0 w_{11}x_{11}+w_{12}x_{12}+w_{13}x_{13}=0 w11x11+w12x12+w13x13=0 | w 21 x 11 + w 22 x 12 + w 23 x 13 = 0 w_{21}x_{11}+w_{22}x_{12}+w_{23}x_{13}=0 w21x11+w22x12+w23x13=0 |
w 11 x 21 + w 12 x 22 + w 13 x 23 = 0 w_{11}x_{21}+w_{12}x_{22}+w_{13}x_{23}=0 w11x21+w12x22+w13x23=0 | w 21 x 21 + w 22 x 22 + w 23 x 23 = 0 w_{21}x_{21}+w_{22}x_{22}+w_{23}x_{23}=0 w21x21+w22x22+w23x23=0 |
w 11 x 31 + w 12 x 32 + w 13 x 33 = 0 w_{11}x_{31}+w_{12}x_{32}+w_{13}x_{33}=0 w11x31+w12x32+w13x33=0 | w 21 x 31 + w 22 x 32 + w 23 x 33 = 0 w_{21}x_{31}+w_{22}x_{32}+w_{23}x_{33}=0 w21x31+w22x32+w23x33=0 |
W1 = [ w 11 w 12 w 13 ] , X = [ x 11 x 21 x 31 x 12 x 22 x 32 x 13 x 23 x 33 ] \begin{bmatrix}w_{11}\\w_{12}\\w_{13}\\\end{bmatrix},X=\begin{bmatrix}x_{11}&x_{21}&x_{31}\\x_{12}&x_{22}&x_{32}\\x_{13}&x_{23}&x_{33}\\\end{bmatrix} w11w12w13 ,X= x11x12x13x21x22x23x31x32x33 | W2 = [ w 21 w 22 w 23 ] , X = [ x 11 x 21 x 31 x 12 x 22 x 32 x 13 x 23 x 33 ] \begin{bmatrix}w_{21}\\w_{22}\\w_{23}\end{bmatrix},X=\begin{bmatrix}x_{11}&x_{21}&x_{31}\\x_{12}&x_{22}&x_{32}\\x_{13}&x_{23}&x_{33}\\\end{bmatrix} w21w22w23 ,X= x11x12x13x21x22x23x31x32x33 |
W= [ w 11 w 21 w 12 w 22 w 13 w 23 ] \begin{bmatrix}w_{11}&w_{21}\\w_{12}&w_{22}\\w_{13}&w_{23}\\\end{bmatrix} w11w12w13w21w22w23 , X = [ x 11 x 21 x 31 x 12 x 22 x 32 x 13 x 23 x 33 ] X=\begin{bmatrix}x_{11}&x_{21}&x_{31}\\x_{12}&x_{22}&x_{32}\\x_{13}&x_{23}&x_{33}\\\end{bmatrix} X= x11x12x13x21x22x23x31x32x33
要表示这两组方程,一样需要将W转置后,再与X相乘,
W T X = [ w 11 w 12 w 13 w 21 w 22 w 23 ] [ x 11 x 21 x 31 x 12 x 22 x 32 x 13 x 23 x 33 ] W^TX=\begin{bmatrix}w_{11}&w_{12}&w_{13}\\w_{21}&w_{22}&w_{23}\\\end{bmatrix}\begin{bmatrix}x_{11}&x_{21}&x_{31}\\x_{12}&x_{22}&x_{32}\\x_{13}&x_{23}&x_{33}\\\end{bmatrix} WTX=[w11w21w12w22w13w23] x11x12x13x21x22x23x31x32x33
最终得到的是2x3的矩阵,第一行表示第一组的齐次方程,第二行表示第二组的齐次方程
我常常迷糊的矩阵乘法,忽然变得眉目
向量和矩阵的几何表示
一维向量与矩阵
- 一维向量表示直线上的方向向量,例如x坐标方向上,x=3
二维向量与矩阵
- 二维向量表示XY平面上的方向向量,如 [ x y ] = [ 3 2 ] \begin{bmatrix} x\\ y\\ \end{bmatrix}=\begin{bmatrix} 3\\ 2\\ \end{bmatrix} [xy]=[32]
- 二维矩阵,则表示多个二维向量的组合,如 [ x y ] : [ 3 3 5 2 4 9 ] \begin{bmatrix} x\\ y\\ \end{bmatrix}: \begin{bmatrix} 3&3&5\\ 2&4&9\\ \end{bmatrix} [xy]:[323459],这是三个二维向量,组合成的矩阵
三维向量与矩阵
- 三维向量表示xyz空间上的方向向量 [ x y z ] = [ 0 1 1 ] \begin{bmatrix} x\\ y\\ z\\ \end{bmatrix}=\begin{bmatrix} 0\\ 1\\ 1\\ \end{bmatrix} xyz = 011
哭了,用上matplotlib吧
- 三维矩阵则表示在xyz空间上的多个向量组合,如 [ x y z ] : [ 0 2 3 9 1 1 6 0 1 8 9 0 ] \begin{bmatrix} x\\ y\\ z\\ \end{bmatrix}:\begin{bmatrix} 0&2&3&9\\ 1&1&6&0\\ 1&8&9&0\\ \end{bmatrix} xyz : 011218369900 ,这是4个三维向量组成的矩阵
向量和矩阵的乘法
向量乘法,一般指的是点乘,即
A = [ a 1 a 2 a 3 ] \begin{bmatrix} a_1\\ a_2\\ a_3\\ \end{bmatrix} a1a2a3 ,B = [ b 1 b 2 b 3 ] \begin{bmatrix} b_1\\ b_2\\ b_3\\ \end{bmatrix} b1b2b3 ,则 A B = a 1 ∗ b 1 + a 2 ∗ b 2 + a 3 ∗ b 3 AB = a_1*b_1+ a_2*b_2+ a_3*b_3 AB=a1∗b1+a2∗b2+a3∗b3
向量点乘的代数意义
我猜,向量乘法,可以看作是自变量系数和自变量数值的相乘再加和
即 y = a 1 x 1 + a 2 x 2 + a 3 x 3 y = a_1x_1+a_2x_2+a_3x_3 y=a1x1+a2x2+a3x3
A = [ a 1 a 2 a 3 ] \begin{bmatrix} a_1\\ a_2\\ a_3\\ \end{bmatrix} a1a2a3 ,B = [ x 1 x 2 x 3 ] \begin{bmatrix} x_1\\ x_2\\ x_3\\ \end{bmatrix} x1x2x3
向量点乘的几何意义
向量点乘,是将一个向量,投影在另外一个向量上。
向量与矩阵的关系
矩阵的乘法
矩阵乘法的功能:伸缩
矩阵乘法功能:旋转
矩阵乘法功能:伸缩+旋转
首先,任何矩阵,都可以进行奇异值分解
M = U Σ V T , 其中, U 和 V 都是对称矩阵, Σ 是正交对角阵 M = UΣV^T,其中,U和V都是对称矩阵,Σ是正交对角阵 M=UΣVT,其中,U和V都是对称矩阵,Σ是正交对角阵