0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器学习进阶之线性代数-奇异值分解(上)

jf_78858299 来源:人工智能大讲堂 作者:人工智能大讲堂 2023-05-22 16:26 次阅读

机器学习(ML)中,最重要的线性代数概念之一是奇异值分解(SVD)和主成分分析(PCA)。在收集到所有原始数据后,我们如何发现其中的结构?例如,通过过去6天的利率,我们能否理解其组成并发现趋势?

图片

对于高维原始数据,这变得更加困难,就像在一堆干草中找针一样。SVD使我们能够提取和解开信息。在本文中,我们将详细介绍SVD和PCA。我们假设您具备基本的线性代数知识,包括秩和特征向量。如果您在阅读本文时遇到困难,我建议您先刷新这些概念。在本文末尾,我们将回答上面的利率示例中的一些问题。本文还包含可选部分。根据您的兴趣程度随意跳过。

误解

我发现一些非初学者可能会问这样的问题。PCA是降维吗?PCA确实可以降维,但它远远不止于此。我喜欢维基百科的描述:

主成分分析(PCA)是一种统计过程,它使用正交变换将一组可能存在相关性的变量(每个实体都具有各种数值)的观测值转换为一组线性不相关变量的值,这些变量称为主成分。

从一个简化的角度来看,PCA将数据线性转换为彼此不相关的新属性。对于机器学习而言,将PCA定位为特征提取,可能比将其定位为降维更能充分发挥其潜力。

SVD和PCA的区别是什么?SVD将矩阵对角化为易于操作和分析的特殊矩阵,从而为将数据分解成独立成分奠定了基础。PCA跳过了较不重要的成分。显然,我们可以使用SVD来找到PCA,方法是在原始SVD矩阵中截断较不重要的基向量。

矩阵对角化

在特征值和特征向量的文章中,我们描述了一种将n×n方阵A分解为以下形式的方法:

图片

例如,

图片

如果A是一个方阵并且A具有n个线性无关的特征向量,则可以将矩阵对角化。现在,是时候使用SVD为所有矩阵开发解决方案了。

奇异向量和奇异值

在线性代数中,矩阵AAᵀ和AᵀA非常特殊。考虑任何m×n矩阵A,我们可以分别将其与Aᵀ相乘以形成AAᵀ和AᵀA。这些矩阵:

  • 对称的,
  • 方阵,
  • 至少是半正定的(特征值为零或正),
  • 这两个矩阵具有相同的正特征值,
  • 这两个矩阵的秩与A的秩相同,均为r。

此外,我们在机器学习中经常使用的协方差矩阵也处于这种形式。由于它们是对称的,我们可以选择其特征向量为正交的(彼此垂直且长度为1)——这是对称矩阵的基本性质。

图片

现在,让我们介绍一些在SVD中经常使用的术语。我们在这里将AAᵀ的特征向量称为uᵢ,将AᵀA的特征向量称为vᵢ,并将这些特征向量集合u和v称为A的奇异向量。这两个矩阵具有相同的正特征值。这些特征值的平方根被称为奇异值。

到目前为止还没有太多解释,但让我们先把所有东西放在一起,解释将在接下来给出。我们将向量uᵢ连接成U,将向量vᵢ连接成V,以形成正交矩阵。

图片

由于这些向量是正交的,很容易证明U和V遵循以下关系:

图片

SVD

我们先从难的部分开始。SVD表明,任何矩阵A都可以分解为:

图片

其中U和V是正交矩阵,其特征向量分别从AAᵀ和AᵀA中选择。S是一个对角矩阵,其r个元素等于AAᵀ或AᵀA的正特征值的平方根(这两个矩阵具有相同的正特征值)。对角线元素由奇异值组成。

图片

即一个m×n矩阵可以分解为:

图片

图片

我们可以按不同的顺序排列特征向量来产生U和V。为了标准化解决方案,我们将特征值较大的向量排在较小的值的前面。

图片

与特征值分解相比,SVD适用于非方阵。对于SVD中的任何矩阵,U和V都是可逆的,并且它们是正交的,这是我们所喜欢的。在这里不提供证明,我们还告诉您,奇异值比特征值更具数值稳定性。

示例

在进一步深入之前,让我们用一个简单的例子来演示一下。这将使事情变得非常容易理解。

图片

计算:

图片

这些矩阵至少是半正定的(所有特征值均为正或零)。如图所示,它们共享相同的正特征值(25和9)。下面的图还显示了它们对应的特征向量。

图片

奇异值是正特征值的平方根,即5和3。因此,SVD分解为:

图片

证明(可选)

为了证明SVD,我们要解出U、S和V,使得:

图片

我们有三个未知数。希望我们可以使用上面的三个方程解决它们。A的转置为:

图片

已知

图片

计算 AᵀA,

图片

最后一个方程相当于矩阵(AᵀA)的特征向量定义。我们只是将所有特征向量放入一个矩阵中。

图片

其中VS²等于

图片

V保存AᵀA的所有特征向量vᵢ,而S保存AᵀA的所有特征值的平方根。我们可以对AAᵀ重复相同的过程,并得到类似的方程式。

图片

现在,我们只需要解出U、V和S,使其符合以下条件:

图片

总结

以下是SVD的总结。

图片

其中

图片

重新表述SVD

由于矩阵V是正交的,VᵀV等于I。我们可以将SVD方程重写为:

图片

这个方程式建立了uᵢ和vᵢ之间的重要关系。

回顾

图片

应用AV = US,

图片

这可以推广为:

图片

回顾

图片

and

图片

SVD分解可以被认为是uᵢ和vᵢ的一系列外积。

图片

这种SVD的公式化是理解A的构成要素的关键。它提供了一种将纠缠在一起的m×n数据数组分解为r个组件的重要方法。由于uᵢ和vᵢ是单位向量,我们甚至可以忽略具有非常小奇异值σᵢ的项(σᵢuᵢvᵢᵀ)。 (稍后我们会回到这个问题。)

让我们先重用之前的例子,展示一下它是如何工作的。

图片

上面的矩阵A可以分解为:

图片

列空间,行空间,左零空间和零空间(可选-高级用户)

接下来,我们将看看U和V由什么组成。假设A是一个秩为r的m×n矩阵。AᵀA将是一个n×n的对称矩阵。所有对称矩阵都可以选择n个正交的特征向量vⱼ。由于Avᵢ = σᵢuᵢ,而vⱼ是AᵀA的正交特征向量,我们可以计算uᵢᵀuⱼ的值:

图片

它等于零,即uᵢ和uⱼ互相正交。如前所述,它们也是AAᵀ的特征向量。

由于Avᵢ = σuᵢ,我们可以认识到uᵢ是A的列向量。

图片

由于A的秩为r,所以我们可以选择这r个uᵢ向量为正交基。那么AAᵀ的剩余m-r个正交特征向量是什么呢?由于A的左零空间与列空间正交,因此将其选为剩余的特征向量非常自然。(左零空间N(Aᵀ)是由Aᵀx = 0定义的空间。)对于AᵀA的特征向量,类似的论证也是适用的。因此,我们有:

图片

从前面的SVD方程式回到原来的方程式,我们有:

图片

我们只需将特征向量放回左零空间和零空间中。

图片

Moore-Penrose伪逆

对于线性方程组,我们可以计算一个方阵A的逆来求解x。

图片

但并非所有矩阵都可逆。而且,在机器学习中,由于数据中存在噪声,很难找到精确的解。我们的目标是找到最适合数据的模型。为了找到最佳拟合解,我们需要计算一个伪逆。

图片

该伪逆最小化以下最小二乘误差:

图片

解x的估计值为:

图片

在线性回归问题中,x是我们的线性模型,A包含训练数据,b包含相应的标签。我们可以通过以下方式解决x:

图片

图片

下面是一个例子

图片

方差和协方差

在机器学习中,我们识别模式和关系。我们如何确定数据中属性之间的相关性?让我们从一个例子开始讨论。我们随机抽取了12个人的身高和体重,并计算它们的均值。我们通过将原始值减去其均值来将其零中心化。例如,下面的矩阵A保存了调整后的零中心化身高和体重。

图片

当我们绘制数据点时,我们可以看出身高和体重是正相关的。但是我们如何量化这种关系呢?

图片

首先,一个属性如何变化?我们可能在高中就学过方差。让我们介绍一下它的近亲。样本方差的定义为:

图片

注意,它的分母为n-1而不是n。由于样本数量有限,样本均值存在偏差并与样本相关。相对于总体,平均平方距离会更小。样本协方差S²除以n-1来抵消这个偏差,可以被证明是方差σ²的无偏估计。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ML
    ML
    +关注

    关注

    0

    文章

    139

    浏览量

    34295
  • SVD
    SVD
    +关注

    关注

    0

    文章

    21

    浏览量

    12068
  • 机器学习
    +关注

    关注

    66

    文章

    8134

    浏览量

    130577
收藏 人收藏

    评论

    相关推荐

    MATLAB线性方程和特征奇异命令

    MATLAB线性方程和特征奇异命令线性方程 \和/ 线性方程求解Chol Cholesky
    发表于 09-22 16:01

    线性代数超强总结

    线性代数超强总结
    发表于 05-26 07:26

    基于改进奇异值分解的人耳识别算法研究

    提出了基于特征矩阵和改进的奇异值分解的人耳识别算法。采用特征矩阵及Fisher最优鉴别分析方法将原始样本向最优鉴别矢量投影,有效地降低了维数,再进行奇异值分解后所得
    发表于 06-29 08:53 18次下载

    《工程线性代数(MATLAB版)》程序集

    工程线性代数(MATLAB版)》程序集:《工程线性代数(MATLAB版)》第六章例题6.20程序 陈怀琛,高淑萍,杨威合编,电子工业出版社,2007年6月奇异值分解
    发表于 10-24 08:40 0次下载

    基于奇异值分解的车牌特征提取方法研究

    研究了基于小波分析的车牌图像定位、分割、大小归一化方法,并分析了奇异值分解算法的数学原理和算法。利用奇异值分解作为代数特征提取方法,获得图像的有效特征描述。以Mat
    发表于 10-17 11:08 28次下载
    基于<b class='flag-5'>奇异值分解</b>的车牌特征提取方法研究

    线性代数相关的基本知识

    线性代数包含了关于矩阵的所有相关的基本知识,可以快速学习,适合自学。
    发表于 12-22 17:58 0次下载

    基于FPGA的高光谱图像奇异值分解降维技术

    基于FPGA的高光谱图像奇异值分解降维技术
    发表于 08-30 15:10 2次下载

    机器学习线性代数基础

    机器学习所需要的一些线性代数知识
    发表于 09-04 10:08 0次下载

    一文读懂机器学习线性代数(10案例)

    它是机器学习的重要基础,从描述算法操作的符号到代码中算法的实现,都属于该学科的研究范围。虽然线性代数机器学习领域不可或缺的一部分,但二者的
    发表于 05-05 09:59 3401次阅读

    线性代数是什么?存在的意义是什么?

    在大学数学学科中,线性代数是最为抽象的一门课,从初等数学到线性代数的思维跨度比微积分和概率统计要大得多。
    的头像 发表于 08-19 10:24 29.3w次阅读
    <b class='flag-5'>线性代数</b>是什么?存在的意义是什么?

    线性代数附册学习辅导与习题全解第五版PDF电子书免费下载

    线性代数附册学习辅导与习题全解(同济·第5版)》是与同济大学数学系编《线性代数》第五版配套的学习辅导书,主要面向使用该教材的读者。《线性代数
    发表于 11-29 08:00 0次下载

    基于奇异值分解和引导滤波的低照度图像增强

    基于奇异值分解和引导滤波的低照度图像增强
    发表于 06-18 11:53 4次下载

    线性代数》pdf

    线性代数》第四版pdf
    发表于 02-18 10:12 0次下载

    线性代数机器学习中的应用实例

    线性代数研究的是向量空间以及将一个向量空间映射到另一个向量空间的函数。我们主要考虑线性函数(对于任何常数α和β以及向量 x 和 y,满足关系 f (α · x + β · y) = α · f (x) + β · f (y)。
    发表于 04-14 14:31 730次阅读

    机器学习进阶线性代数-奇异值分解(下)

    机器学习(ML)中,最重要的线性代数概念之一是奇异值分解(SVD)和主成分分析(PCA)。在收集到所有原始数据后,我们如何发现其中的结构?例如,通过过去6天的利率,我们能否理解其组成
    的头像 发表于 05-22 16:27 468次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b><b class='flag-5'>进阶</b>之<b class='flag-5'>线性代数</b>-<b class='flag-5'>奇异值分解</b>(下)