机器学习——奇异值分解(未完)

开坑,刚看完书,已经有些窒息了

先把坑挖了,再慢慢填,避免自己划水跳过

我爱线代,线代爱我,阿弥陀佛

为什么要学奇异值分解?

因为书本倒数第二章专门提到的,想必一定很重要,于是我上网查了一下奇异值分解的应用

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 ![在这里插入图片描述](https://file.jishuzhan.net/article/1706171131171442690/d3bc7182620ceeda79b4b77f5c20a79e.webp) ##### 二维向量与矩阵 * 二维向量表示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都是对称矩阵,Σ是正交对角阵

相关推荐
DeepSeek忠实粉丝4 分钟前
Deepseek篇--阿里QwQ-325b性能比肩Deepseek满血版
人工智能·程序员·llm
jndingxin5 分钟前
OpenCV CUDA模块图像变形------对图像进行 尺寸缩放(Resize)操作函数resize()
人工智能·opencv·计算机视觉
清醒的兰8 分钟前
OpenCV 多边形绘制与填充
图像处理·人工智能·opencv·计算机视觉
luozhonghua200010 分钟前
opencv opencv_contrib vs2020 源码安装
人工智能·opencv·计算机视觉
JC_You_Know10 分钟前
边缘计算一:现代前端架构演进图谱 —— 从 SPA 到边缘渲染
前端·人工智能·边缘计算
吴声子夜歌10 分钟前
OpenCV——图像金字塔
人工智能·opencv·计算机视觉
吴声子夜歌11 分钟前
OpenCV——图像基本操作(三)
人工智能·opencv·计算机视觉
bug菌12 分钟前
手把手教你DeepSeek-R1本地部署和企业知识库搭建(Ollama+DeepSeek+RAGFlow)【保姆级教学】
人工智能·ollama·deepseek
rocksun13 分钟前
云原生和开源助力扩展Agentic AI工作流
人工智能·云原生·开源
硬核隔壁老王14 分钟前
AI Agent从概念到实战全面解析(三):AI Agent 运作机制与大模型协同
人工智能·程序员·llm