奇异值分解 SVD 的数学解释

奇异值分解(Singular Value Decomposition,SVD)是一种矩阵分解(Matrix Decomposition)的方法。除此之外,矩阵分解还有很多方法,例如特征分解(Eigendecomposition)、LU分解(LU decomposition)、QR分解(QR decomposition)和极分解(Polar decomposition)等。这篇文章主要说下奇异值分解,这个方法在机器学习的一些算法里占有重要地位。

相关概念

参考自维基百科。

  • 正交矩阵:若一个方阵其行与列皆为正交的单位向量,则该矩阵为正交矩阵,且该矩阵的转置和其逆相等。两个向量正交的意思是两个向量的内积为 0
  • 正定矩阵:如果对于所有的非零实系数向量 zz,都有 zTAz>0z^TAz>0,则称矩阵 AA 是正定的。正定矩阵的行列式必然大于 0, 所有特征值也必然 > 0。相对应的,半正定矩阵的行列式必然 ≥ 0。

定义

下面引用 SVD 在维基百科中的定义

In linear algebra, the singular value decomposition (SVD) is a factorization of a real or complex matrix. It is the generalization of the eigendecomposition of a positive semidefinite normal matrix (for example, a symmetric matrix with positive eigenvalues) to any m×n m\times n matrix via an extension of polar decomposition.

也就是说 SVD 是线代中对于实数矩阵和复数矩阵的分解,将特征分解从 半正定矩阵 推广到任意 m×n m\times n 矩阵。

注意:本篇文章内如未作说明矩阵均指实数矩阵。

求解

举例

假设

那么可以计算得到

接下来就是求这个矩阵的特征值和特征向量了

Numpy 实现

Python 中可以使用 numpy 包的 linalg.svd() 来求解 SVD。

import numpy as np

A = np.array([[2, 4], [1, 3], [0, 0], [0, 0]])
print(np.linalg.svd(A))

输出

(array([[-0.81741556, -0.57604844,  0.        ,  0.        ],
        [-0.57604844,  0.81741556,  0.        ,  0.        ],
        [ 0.        ,  0.        ,  1.        ,  0.        ],
        [ 0.        ,  0.        ,  0.        ,  1.        ]]),
 array([ 5.4649857 ,  0.36596619]),
 array([[-0.40455358, -0.9145143 ],
        [-0.9145143 ,  0.40455358]]))

END

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法全栈工程师

奇异值分解(SVD)原理与在降维中的应用

地址:https://www.cnblogs.com/pinard/p/6251584.html

1334
来自专栏专知

【专知荟萃19】图像识别Image Recognition知识资料全集(入门/进阶/论文/综述/视频/专家,附查看)

图像识别 Image Recognition 专知荟萃 入门学习 进阶文章 Imagenet result 2013 2014 2015 2016 2017 综...

4285
来自专栏专知

【GAN货】生成对抗网络知识资料全集(论文/代码/教程/视频/文章等)

【导读】当地时间 10月 22 日到10月29日,两年一度的计算机视觉国际顶级会议 International Conference on Computer V...

3324
来自专栏SIGAI学习与实践平台

目标检测算法中检测框合并策略技术综述

物体检测(Object Detection)的任务是找出图像或视频中的感兴趣目标,同时实现输出检测目标的位置和类别,是机器视觉领域的核心问题之一,学术界已有将近...

1692
来自专栏量子位

DeepMind新论文:基于变分方法的自编码生成对抗网络

王小新 编译自 Arxiv 量子位 出品 | 公众号 QbitAI 最近,DeepMind公司的Mihaela Rosca、Balaji Lakshminara...

3126
来自专栏专知

【专知荟萃11】GAN生成式对抗网络知识资料全集(理论/报告/教程/综述/代码等)

生成对抗网络(GAN)专知荟萃 一、理论学习 二、报告 三、教程 四、综述 五、中文博客资料 六、Github资源以及模型 七、最新研究论文 一、理论学习 训...

4058
来自专栏CreateAMind

变分自编码器

VAE变分自编码器方法是优雅的,理论上令人愉快的,并且易于实现。它也获得了出色的结果,是生成式建模中的最先进方法之一。变分自编码器的一个非常好的特性是,同时训练...

722
来自专栏SIGAI学习与实践平台

人体骨骼关键点检测综述

人体骨骼关键点对于描述人体姿态,预测人体行为至关重要。因此人体骨骼关键点检测是诸多计算机视觉任务的基础,例如动作分类,异常行为检测,以及自动驾驶等等。近年来,随...

3204
来自专栏AI研习社

GAN 的理解与 TensorFlow 的实现

前言 本文会从头介绍生成对抗式网络的一些内容,从生成式模型开始说起,到 GAN 的基本原理,InfoGAN,AC-GAN 的基本科普,如果有任何有错误的地方...

3258
来自专栏机器学习算法与Python学习

机器学习(8) -- 降维

Content 10. Dimensionality Reduction   10.1 Motivation     10.1.1 Motivation on...

33010

扫码关注云+社区