为什么叫奇异值分解(形象直观透彻理解奇异值分解)

今天,奇异值分解已经通过许多科学分支传播,特别是心理学和社会学、气候和大气科学以及天文学。它在机器学习以及描述性和预测性统计中也非常有用。

历史

奇异值分解技术(简称SVD)具有长期且有些令人惊讶的历史。它开始于社会科学与智力测试。早期的情报研究人员指出,用于衡量智力的不同方面的测试,例如口头和空间,通常是密切相关的。

因此,他们假设有一个共同的智力的一般衡量标准,他们称之为“g”,因为“一般情报”,现在通常被称为“智商”,所以他们着手解释构成的不同因素智力,以便拉出最重要的一个。

今天,奇异值分解已经通过许多科学分支传播,特别是心理学和社会学,气候和大气科学以及天文学。它在机器学习以及描述性和预测性统计中也非常有用。

力学的启发

回顾基本力学,力的分解是力的合成的逆运算,求一个力的分力的过程,同样遵守平行四边形法则。如果分解后的两个力是互相垂直的,就类似于坐标分解,一般可有无数种分法,如图所示。

令人失望的是,几乎所有网上SVD方面的博客都讲的使其比必要的更复杂,而核心思想是非常简单的。

SVD只不过是将矢量分解为正交轴 - 我们只是认为它可能需要更堂皇的名称。

让我们看看情况如何。

当矢量a被分解时,我们得到3个信息:

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(1)

第一、 投影方向单元矢量(v ₁v ₂)我们进行矢量分解的方向。在上面它们是x和y轴,但可以是任何其他正交轴。

第二长度投影(线段sa1sa2),这告诉我们有多少矢量被包含在投影的各个方向(a在v₁比在v₂上的投影更多,因此,sa1>sa2)。

第三、矢量投影(矢量pa1pa2),用于重建原始矢量的分量(矢量和为原始矢量),以及用于其可以很容易地验证pa1 = sa1* v₁pa2= sa2* v₂ ,很容易从以前的2个推断出来。

关键结论:

任何向量都可以用下式表示:

1.投影方向单位向量(v 1,v 2,...)。

2.投影到它们上面的长度(sₐ1,sₐ2,......)。

SVD所做的就是将这个结论扩展到多个向量(或点)和所有维度:

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(2)

这是数据集的一个示例,一个点可以被认为是从原点出发的矢量。但是要处理这么多数据就是一个比较棘手的混乱。

如何处理这个混乱

如果不先处理单个向量,我们就无法处理这个混乱!

数学中的许多概括,主要使用矩阵。因此,我们必须找到一种方法来表示使用矩阵的向量分解的操作。

事实证明这是很自然的事情:

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(3)

与之前的数字相同,但通过倾斜投影轴,来表明不限于x和y。aₓ和aᵧ是向量a的坐标,按照惯例放入列矩阵(列向量)。对于v1和v2也是如此。

我们想要沿着单位矢量v 1v 2分解或者说投影矢量a

该投影是由点积来实现的 ,它为我们提供了长度投影sa1和sa2:

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(4)

将a投射到v1和v2上。

但是如果我们可以利用矩阵,那么效率是出色的......

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(5)

通过为每个单位矢量添加更多的列,一次写入两个方程式。

我们甚至可以添加更多点......

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(6)

添加一个额外的行就相当于添加了点S是包含投影长度的矩阵。

在添加点b之后,它就是这样的样子:

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(7)

现在可以很容易地推广到任意数量的点和维度

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(8)

n =点的个数;

d =维度大小;

A =包含点的矩阵;

V =包含分解轴的矩阵;

S =包含投影长度的矩阵。

下面的动态很好的体现了数学优雅:

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(9)

总结概括:

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(10)

在这种情况下,点积只是普通的矩阵乘法

这就是说:

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(11)

因为V列是正交的,所以它的逆=它的转置(正交矩阵的属性)。

这就是SVD的关键结论:

任何一组矢量(A)可以用其在某组正交轴(V)上的投影长度(S)表示。

传统的SVD公式说:

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(12)

但这只是意味着我们想看看如何:

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(13)

这就是接下来需要我们推导的。

如果仔细查看矩阵S,您会发现它包括:

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(14)

事实证明(出于后面会看到的原因)我们最好能够对这些列向量进行归一化,即使它们具有单位长度

这是通过相当于将每个列向量除以其大小来完成的,以矩阵形式

看一个例子,来看看这个"分裂"的事情是如何完成的。

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(15)

假设我们想将M第1列除以2。要求必须乘以另一个矩阵来保持恒等:

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(16)

可以直接验证未知矩阵只不过是单位矩阵,第1行第1列被除数2替换

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(17)

第二列除以3现在变成了直接的事-只需用元素3有来更换单位阵第2行第2列

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(18)

应该明白如何将此操作推广到任何大小的任何矩阵。

现在,我们要在上面的"除法"的概念应用到矩阵。

为了标准化S的列,我们将它们除以它们的大小......

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(19)

.通过使用S,我们在上面的例子中用M做了什么:

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(20)

最后得到:

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(21)

这不就是奇异值分解的形式吗?

解释

我们来谈谈这个UΣ ......

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(22)

σ是什么?为什么我们要把S标准化来找到它们?

由上面我们已经知道,σ是所有点在单位矢量vᵢ投影长度的平方和的平方根。

这是什么意思?

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(23)

红色部分= 向量在v1上的投影。蓝色部分= 向量在v2上的投影。点越接近特定投影轴,相应σ的值越大。

因为σ在其定义中包含特定轴上的投影长度之和,因此它们表示所有点与该轴的接近程度。

例如,如果σ1>σ2,那么大多数点比v2更接近v1,反之亦然。

这在SVD的无数应用中具有巨大的实用性。

主要应用

找到矩阵的SVD分解的算法并不是不随机选择投影方向(矩阵V的列)的。

他们选择要投影的向量作为数据集的主成分(矩阵A)。

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(24)

它们是变化最大的线(最大方差)。

特征降维的目的是把数据集投影到方差最大的线(或平面)

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(25)

洋红色:投射前的点。紫罗兰:投影后的点(维数减少)。

现在,使用SVD投影数据集的行为变得非常简单,因为所有点都已经在所有主成分(vᵢ单位向量)上投影(分解):

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(26)

因此,例如,将数据集投影到第一个主成分上......

为什么叫奇异值分解(形象直观透彻理解奇异值分解)(27)

现在,我们要做的就是删除与第一主成分无关的所有列。现在A'中的投影数据集 。

将两个矩阵(上面的S和Vᵀ)相乘得到包含投影点的矩阵A'

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页