简介

奇异值是矩阵中的一个非常重要的概念,一般是通过奇异值分解的方法来得到的,奇异值分解是线性代数和矩阵论中一种重要的矩阵分解法,在统计学和信号处理中非常的重要。

在了解奇异值之前,让我们先来看看特征值的概念。

相似矩阵

在线性代数中,相似矩阵是指存在相似关系的矩阵。设A,B为n阶矩阵,如果有n阶可逆矩阵P存在,使得P-1AP=B,则称矩阵A与B相似,记为A~B。

对角矩阵

对角矩阵(diagonal matrix)是一个主对角线之外的元素皆为0的矩阵,常写为diag(a1,a2,...,an) 。对角矩阵可以认为是矩阵中最简单的一种,值得一提的是:对角线上的元素可以为 0 或其他值,对角线上元素相等的对角矩阵称为数量矩阵;对角线上元素全为1的对角矩阵称为单位矩阵。对角矩阵的运算包括和、差运算、数乘运算、同阶对角阵的乘积运算,且结果仍为对角阵。

可对角化矩阵

可对角化矩阵是线性代数和矩阵论中重要的一类矩阵。如果一个方块矩阵 A 相似于对角矩阵,也就是说,如果存在一个可逆矩阵 P 使得 P −1AP 是对角矩阵,则它就被称为可对角化的。

特征值

设A为n阶矩阵,若存在常数λ及n维非零向量x,使得Ax=λx,则称λ是矩阵A的特征值,x是A属于特征值λ的特征向量。

一个矩阵的一组特征向量是一组正交向量。

即特征向量被施以线性变换 A 只会使向量伸长或缩短而其方向不被改变。

一个线性变换通常可以由其特征值和特征向量完全描述。特征空间是相同特征值的特征向量的集合。

特征分解

特征分解(Eigendecomposition),又称谱分解(Spectral decomposition)是将矩阵分解为由其特征值和特征向量表示的矩阵之积的方法。需要注意只有对可对角化矩阵才可以施以特征分解。

A 是一个 N×N 的方阵,且有 N 个线性无关的特征向量 qi(i=1,…,N)。这样, A 可以被分解为: A= QΛQ-1

其中 Q 是N×N方阵,且其第 i列为 A 的特征向量 。如果A的所有特征向量用x1,x2 … xm来表示的话,那么Q可以表示为:\(\left[x_1,x_2,…,x_m\right]\), 其中x是n维非零向量。

Λ 是对角矩阵,其对角线上的元素为对应的特征值,也即Λiii。 也就是\(\left[\begin{matrix}λ_1 … 0\\… … …\\0 … λ_m \end{matrix}\right]\)

这里需要注意只有可对角化矩阵才可以作特征分解。比如 \(\left[\begin{matrix}11\\01 \end{matrix}\right]\)不能被对角化,也就不能特征分解。

因为 A= QΛQ-1 ,可以看做A被分解为三个矩阵,也就是三个映射。

假如现在有一个向量x,我们可以得出下面的结论:

\(Ax=QΛQ^{-1}x\)

Q是正交矩阵,正交阵的逆矩阵等于其转置,所以\(Q^{-1}\) = \(Q^T\). \(Q^T\)对x的变换是正交变换,它将x用新的坐标系来表示,这个坐标系就是A的所有正交的特征向量构成的坐标系。比如将x用A的所有特征向量表示为:

\(x=a_1x_1+a_2x_2+…+a_mx_m\)

则通过第一个变换就可以把x表示为\([a_1 a_2 ... a_m]^T\)。

\(QΛQ^{-1}x=QΛ\left[\begin{matrix}x_1^T\\x_2^T\\…\\…\\x_m^T \end{matrix}\right](a_1x_1+a_2x_2+a_3x_3+…+a_mx_m)=QΛ\left[\begin{matrix}a_1\\a_2\\…\\a_m \end{matrix}\right]\)

然后,在新的坐标系表示下,由中间那个对角矩阵对新的向量坐标换,其结果就是将向量往各个轴方向拉伸或压缩:

\(QΛ\left[\begin{matrix}a_1\\a_2\\…\\a_m \end{matrix}\right]=Q\left[\begin{matrix}λ_1 … 0\\… … …\\0 … λ_m \end{matrix}\right]\left[\begin{matrix}a_1\\a_2\\…\\a_m \end{matrix}\right]=Q\left[\begin{matrix}λ_1a_1\\λ_2a_2\\…\\λ_ma_m \end{matrix}\right]\)

​ 如果A不是满秩的话,那么就是说对角阵的对角线上元素存在0,这时候就会导致维度退化,这样就会使映射后的向量落入m维空间的子空间中。

最后一个变换就是Q对拉伸或压缩后的向量做变换,由于Q和\(Q^{-1}\)是互为逆矩阵,所以Q变换是\(Q^{-1}\)变换的逆变换。

特征值的几何意义

一个矩阵乘以一个列向量相当于矩阵的列向量的线性组合。一个行向量乘以矩阵,相当于矩阵的行向量的线性组合。

所以向量乘以矩阵之后,相当于将这个向量进行了几何变换。

之前讲了 Λ 是对角矩阵,其对角线上的元素为对应的特征值,也即Λiii。 也就是\(\left[\begin{matrix}λ_1 … 0\\… … …\\0 … λ_m \end{matrix}\right]\)

这些特征值表示的是对向量做线性变换时候,各个变换方向的变换幅度。

奇异值 Singular value

假如A是m * n阶矩阵,q=min(m,n),A*A的q个非负特征值的算术平方根叫作A的奇异值。

奇异值分解SVD

特征值分解可以方便的提取矩阵的特征,但是前提是这个矩阵是一个方阵。如果是非方阵的情况下,就需要用到奇异值分解了。先看下奇异值分解的定义:

\(A=UΣV^T\)

其中A是目标要分解的m * n的矩阵,U是一个 n * n的方阵,Σ 是一个n * m 的矩阵,其非对角线上的元素都是0。\(V^T\)是V的转置,也是一个n * n的矩阵。

奇异值跟特征值类似,在矩阵Σ中也是从大到小排列,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了。也就是说,我们也可以用前r大的奇异值来近似描述矩阵。r是一个远小于m、n的数,这样就可以进行压缩矩阵。

通过奇异值分解,我们可以通过更加少量的数据来近似替代原矩阵。

本文已收录于 www.flydean.com

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!

AI数学基础之:奇异值和奇异值分解的更多相关文章

  1. AI 数学基础 张量 范数

    1.张量 几何代数中定义的张量是基于向量和矩阵的推广,通俗一点理解的话,我们可以将标量视为零阶张量,矢量视为一阶张量,那么矩阵就是二阶张量. 例如,可以将任意一张彩色图片表示成一个三阶张量,三个维度分 ...

  2. AI数学基础:符号

    1.sigma 表达式 ∑ 是一个求和符号,英语名称:Sigma,汉语名称:西格玛(大写Σ,小写σ) 第十八个希腊字母.在希腊语中,如果一个单字的最末一个字母是小写sigma,要把该字母写成 ς ,此 ...

  3. AI 数学基础:概率分布,幂,对数

    1.概率分布  参考: https://blog.csdn.net/ZZh1301051836/article/details/89371412 p 2.幂次的意义 物理理解:幂次描述的是指数型的变化 ...

  4. AI 数学基础 : 熵

    什么是熵(entropy)? 1.1 熵的引入 事实上,熵的英文原文为entropy,最初由德国物理学家鲁道夫·克劳修斯提出,其表达式为: 它表示一个系系统在不受外部干扰时,其内部最稳定的状态.后来一 ...

  5. Matlab 奇异值、奇异矩阵、svd函数

    奇异值: 奇异值分解法是线性代数中一种重要的矩阵分解法,在信号处理.统计学等领域有重要应用. 定义:设A为m*n阶矩阵,A'表示A的转置矩阵,A'*A的n个特征值的非负平方根叫作A的奇异值.记为σi( ...

  6. AI 奇异值分解(SVD)

    奇异值分解(Singular Value Decomposition,简称SVD),将矩阵分解为奇异向量(singular vector)和奇异值(singular value). 每个实数矩阵都有一 ...

  7. [数学基础]奇异值分解SVD

    之前看到过很多次奇异值分解这个概念,但我确实没有学过.大学线性代数课教的就是坨屎,我也没怎么去上课,后来查了点资料算是搞清楚了,现在写点东西总结一下. 奇异值分解,就是把一个矩阵拆成一组矩阵之和.在数 ...

  8. 数学基础系列(六)----特征值分解和奇异值分解(SVD)

    一.介绍 特征值和奇异值在大部分人的印象中,往往是停留在纯粹的数学计算中.而且线性代数或者矩阵论里面,也很少讲任何跟特征值与奇异值有关的应用背景. 奇异值分解是一个有着很明显的物理意义的一种方法,它可 ...

  9. AI 所需的数学基础

    一.[微积分] 基础概念(极限.可微与可导.全导数与偏导数):只要学微积分,就必须要明白的概念,否则后面什么都无法继续学习. 函数求导:求导是梯度的基础,而梯度是 AI 算法的基础,因此求导非常重要! ...

  10. 【cs229-Lecture15】奇异值分解

    PCA的实现一般有两种,一种是用特征值分解去实现的,一种是用奇异值分解去实现的. 内容: PCA  (主成份分析)是一种直接的降维方法,通过求解特征值与特征向量,并选取特征值较大的一些特征向量来达到降 ...

随机推荐

  1. UNIX 系统调用函数errno返回值搜集(in updating )

    当Unix系统级函数遇到错误时,它们会典型地返回-1,并设置全局整数变量errno来表示什么出错了 阅读redis源码的时候,发现如果对系统级函数出错时的errno比较熟悉,写起程序来会游刃有余不少. ...

  2. 完善dedecms站内搜索代码,为搜索结果添加第*页

    自那些平凡而伟大的程序猿开发了内容管理系统(cms),为了让看客们更快地找到自己感兴趣的内容,他们不断完善站内搜索代码,形成了一个小型的站内搜索引擎.可能有些网站模板设计师没考虑到seo的问题,很多站 ...

  3. 【BZOJ】1043: [HAOI2008]下落的圆盘(计算几何基础+贪心)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1043 唯一让我不会的就是怎么求圆的周长并QAAQ... 然后发现好神!我们可以将圆弧变成$[0, 2 ...

  4. mvc:view-controller

    This tag is a shorcut for defining a ParameterizableViewController that immediately forwards to a vi ...

  5. union与struct以及大小端

    两者的区别: 1. 共用体和结构体都是由多个不同的数据类型成员组成, 但在任何同一时刻, 共用体只存放了一个被选中的成员, 而结构体的所有成员都存在.   2. 对于共用体的不同成员赋值, 将会对其它 ...

  6. Missing artifact com.sun:tools:jar:1.5.0

    http://java-suddy.iteye.com/blog/1821871(解决了我的问题)

  7. PYTHON文件多线程下载

    其实,在一般的文件编程中,这有两个概念要说明: 第一是,下载一个大文件,将这个大文件多为多线程. 第二是,下载N多小文件,将每个线程指定下载多个小文件. 现在实现的是多线程下载一个大文件. 今天完成了 ...

  8. Cygwin ssh

    http://www.evalumation.com/blog/86-cygwin-windows7-sshd

  9. Linux 该文件命令查看内容

    Linux系统,请使用以下命令来查看文件的内容: cat tac  从最后一行開始显示.能够看出 tac 是 cat 的倒著写! nl   显示的时候,顺道输出行号! more 一页一页的显示文件内容 ...

  10. weblogic-部署web应用

    1, weblogic 安装介质的获取: oracle 官方weblogic下载 :   http://www.oracle.com/technetwork/middleware/weblogic/d ...