机器学习中的数学——奇异值和奇异值分解

前言

我们知道,只有方阵才有特征值和特征向量,因此只有方阵才能特征值分解, 那么非方阵怎么办?

奇异值和奇异值分解

特征值分解只适用于方阵, 奇异值分解适用于任意的矩阵.

奇异值分解 𝑆𝑖𝑛𝑔𝑢𝑙𝑎𝑟 𝑣𝑎𝑙𝑢𝑒 𝑑𝑒𝑐𝑜𝑚𝑝𝑜𝑠𝑖𝑡𝑖𝑜𝑛,𝑆𝑉𝐷 ,一种重要的矩阵分解方法以一种方便快捷的方式将我们感兴趣的矩阵分解成更简单且有直观意义的矩阵的乘积
\pmb X=\pmb U\Sigma\pmb V^{-1}

𝑈, 𝑉是两个正交阵[1],𝛴是对角阵,对角元是𝑋的奇异值


例:
\pmb A=\begin{bmatrix}4&0\\3&-5\\\end{bmatrix}想分解的形式:\pmb{A=U\Sigma V^T}.

分解步骤:

1. 求转置矩阵

\pmb A^T=\begin{bmatrix}4&3\\0&-5\\\end{bmatrix}

\pmb A^T\pmb A=\begin{bmatrix}4&3\\0&-5\end{bmatrix}\begin{bmatrix}4&0\\3&-5\\\end{bmatrix}=\begin{bmatrix}25&-15\\-15&25\\\end{bmatrix}

2. 求特征值:

<font color='red'>\pmb A^T\pmb A-\lambda\pmb E=\begin{bmatrix}25-\lambda&-15\\-15&25-\lambda\end{bmatrix}</font>

\lambda_1=40~~~\lambda_2=10

3. <font color='red'>求奇异值:s_1=\sqrt{\lambda_1}=6.3245~~~s_2=\sqrt{\lambda_2}=3.1622

\pmb S=\begin{bmatrix}6.3245&0\\0&3.1622\\\end{bmatrix}~~~;\pmb S^{-1}=\begin{bmatrix}0.1581&0\\0&0.3164\end{bmatrix}

针对特征值\lambda_1,计算特征向量:
\pmb A^T\pmb A-\lambda\pmb E=\begin{bmatrix}-15&-15\\-15&-15\end{bmatrix}

(\pmb A^T\pmb A-\lambda \pmb E)\pmb X_1=0

\begin{bmatrix}-15&-15\\-15&-15\end{bmatrix}\begin{bmatrix}x_1\\x_2\end{bmatrix}=0

x_1=-x_2;~~~~L=\sqrt{x_1^2-x_2^2}=x_1\sqrt{2}

得:\pmb X_1=\begin{bmatrix}x_1/L\\x_2/L\end{bmatrix}=\begin{bmatrix}1/\sqrt{2}\\-1/\sqrt{2}\end{bmatrix}=\begin{bmatrix}0.7071\\-0.7071\end{bmatrix}

同理可得\pmb X_2=\begin{bmatrix}0.7071\\0.7071\end{bmatrix}

我们想分解的形式为:\pmb A=\pmb U\pmb S\pmb V^T

\pmb V=\begin{bmatrix}\pmb X_1&\pmb X_2\end{bmatrix}=\begin{bmatrix}0.7071&0.7071\\-0.7071&0.7071\end{bmatrix}

\pmb V^T=\begin{bmatrix}0.7071&-0.7071\\0.7071&0.7071\end{bmatrix}

\pmb U=\pmb{AVS^{-1}}=\begin{bmatrix}0.4472&0.8944\\0.8944&-0.4472\end{bmatrix}

\pmb{A=USV^{T}}=\begin{bmatrix}3.9998&0\\2.9999&-4.9997\end{bmatrix}\approx\begin{bmatrix}4&0\\3&-5\\\end{bmatrix}

代码实例:

import numpy as np
x2 = np.array([[4, 0], [3, 5]])
u, sigma, vt = np.linalg.svd(x2)
print('u', u)
print('sigma', sigma)
print('vt', vt)
u [[-0.4472136  -0.89442719]
 [-0.89442719  0.4472136 ]]
sigma [6.32455532 3.16227766]
vt [[-0.70710678 -0.70710678]
 [-0.70710678  0.70710678]]

寻找有效特征,数据压缩

image

image

  1. 如果:\pmb A\pmb A^T=\pmb E\pmb E为单位矩阵,\pmb A^t表示“矩阵A的转置矩阵”。)或\pmb A^T\pmb A=\pmb E,则n阶实矩阵A称为正交矩阵。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容