`
thd52java
  • 浏览: 71978 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

矩阵分解

 
阅读更多

LU分解

 

一个可逆矩阵可以进行LU分解当且仅当它的所有子式都非零。如果要求其中的L矩阵(或U矩阵)为单位三角矩阵,那么分解是唯一的。同理可知,矩阵的LDU可分解条件也相同,并且总是唯一的。

 

即使矩阵不可逆,LU仍然可能存在。实际上,如果一个k的矩阵的前k个顺序主子式不为零,那么它就可以进行LU分解,但反之则不然。

 

目前,在任意上一个方块矩阵可进行LU分解的充要条件已经被发现,这些充要条件可以用某些特定子矩阵的秩表示。用高斯消元法来得到LU分解的算法也可以扩张到任意域上。

 

任意矩阵A(不仅仅是方块矩阵)都可以进行LUP分解。其中的LP矩阵是方阵,U矩阵则与A形状一样。

 

对给定的N × N矩阵

 

 A= (a_{n,n})

 

 

 A^{(0)} := A

 

然后定义对于n = 1,...,N-1的情况如下:

 

在第n步,消去矩阵A(n-1)的第n列主对角线下的元素:将A(n-1)的第n行乘以l_{i,n} := -\frac{a_{i,n}^{(n-1)}}{a_{n,n}^{(n-1)}}之后加到第i行上去。其中i = n+1,\ldots,N

 

这相当于在A(n-1)的左边乘上一个单位下三角矩阵:

 

 L_n =\begin{pmatrix}     1 &        &           &         &         & 0 \\       & \ddots &           &         &         &   \\       &        &         1 &         &         &   \\       &        & l_{n+1,n} &  \ddots &         &   \\       &        &    \vdots &         &  \ddots &   \\     0 &        &   l_{N,n} &         &         & 1 \\\end{pmatrix}.

 

于是,定义为:设

 

 A^{(n)} := L_n A^{(n-1)}.

 

经过N-1轮操作后,所有在主对角线下的系数都为0了,于是我们得到了一个上三角矩阵:A(N-1),这时就有:

 

 A = L_{1}^{-1} L_{1} A^{(0)}= L_{1}^{-1} A^{(1)} = L_{1}^{-1} L_{2}^{-1} L_{2} A^{(1)} = L_{1}^{-1}L_{2}^{-1} A^{(2)} =\ldots = L_{1}^{-1} \ldots L_{N-1}^{-1} A^{(N-1)}.

 

这时,矩阵A(N-1) 就是UL=L_{1}^{-1} \ldots L_{N-1}^{-1}。于是我们得到分解:A=LU

 

显然,要是算法成立,在每步操作时必须有a_{n,n}^{(n-1)} \neq 0。如果这一条件不成立,就要将第n行和另一行交换,由此就会出现一个置换矩阵P。这就是为什么一般来说LU分解里会带有一个置换矩阵的原因。

 

奇异值分解

 

SVD分解

 

SVD 分解是LSA的数学基础,本文是我的LSA学习笔记的一部分,之所以单独拿出来,是因为SVD可以说是LSA的基础,要理解LSA必须了解SVD,因此将 LSA笔记的SVD一节单独作为一篇文章。本节讨论SVD分解相关数学问题,一个分为3个部分,第一部分讨论线性代数中的一些基础知识,第二部分讨论 SVD矩阵分解,第三部分讨论低阶近似。本节讨论的矩阵都是实数矩阵。

 

基础知识

 

1. 矩阵的秩:矩阵的秩是矩阵中线性无关的行或列的个数

 

2. 对角矩阵:对角矩阵是除对角线外所有元素都为零的方阵

 

3. 单位矩阵:如果对角矩阵中所有对角线上的元素都为零,该矩阵称为单位矩阵

 

4. 特征值:对一个M x M矩阵C和向量X,如果存在λ使得下式成立

 

2 

 

则称λ为矩阵C的特征值,X称为矩阵的特征向量。非零特征值的个数小于等于矩阵的秩。

 

5. 特征值和矩阵的关系:考虑以下矩阵

 

clip_image004

 

该矩阵特征值λ1 = 30,λ2 = 20,λ3 = 1。对应的特征向量

 

clip_image006

 

假设VT=(2,4,6) 计算S x VT

 

clip_image008

 

clip_image010

 

有 上面计算结果可以看出,矩阵与向量相乘的结果与特征值,特征向量有关。观察三个特征值λ1 = 30,λ2 = 20,λ3 = 1,λ3值最小,对计算结果的影响也最小,如果忽略λ3,那么运算结果就相当于从(60,80,6)转变为(60,80,0),这两个向量十分相近。这也 表示了数值小的特征值对矩阵-向量相乘的结果贡献小,影响小。这也是后面谈到的低阶近似的数学基础。

 

矩阵分解

 

1. 方阵的分解

 

1) 设S是M x M方阵,则存在以下矩阵分解

 

clip_image012

 

其中U 的列为S的特征向量,clip_image014为对角矩阵,其中对角线上的值为S的特征值,按从大到小排列:

 

clip_image016

 

2) 设S是M x M 方阵,并且是对称矩阵,有M个特征向量。则存在以下分解

 

clip_image018

 

其中Q的列为矩阵S的单位正交特征向量,clip_image014[1]仍表示对角矩阵,其中对角线上的值为S的特征值,按从大到小排列。最后,QT=Q-1,因为正交矩阵的逆等于其转置。

 

2. 奇异值分解

 

上面讨论了方阵的分解,但是在LSA中,我们是要对Term-Document矩阵进行分解,很显然这个矩阵不是方阵。这时需要奇异值分解对Term-Document进行分解。奇异值分解的推理使用到了上面所讲的方阵的分解。

 

假设C是M x N矩阵,U是M x M矩阵,其中U的列为CCT的正交特征向量,V为N x N矩阵,其中V的列为CTC的正交特征向量,再假设r为C矩阵的秩,则存在奇异值分解:

 

clip_image020

 

其中CCT和CTC的特征值相同,为clip_image022

 

Σ为M X N,其中clip_image024clip_image026,其余位置数值为0,clip_image028的值按大小降序排列。以下是Σ的完整数学定义:

 

clip_image030

 

σi称为矩阵C的奇异值。

 

用C乘以其转置矩阵CT得:

 

clip_image032

 

上式正是在上节中讨论过的对称矩阵的分解。

 

奇异值分解的图形表示:

 

clip_image034

 

从图中可以看到Σ虽然为M x N矩阵,但从第N+1行到M行全为零,因此可以表示成N x N矩阵,又由于右式为矩阵相乘,因此U可以表示为M x N矩阵,VT可以表示为N x N矩阵

 

3. 低阶近似

 

LSA潜在语义分析中,低阶近似是为了使用低维的矩阵来表示一个高维的矩阵,并使两者之差尽可能的小。本节主要讨论低阶近似和F-范数。

 

给定一个M x N矩阵C(其秩为r)和正整数k,我们希望找到一个M x N矩阵Ck,其秩不大于K。设X为C与Ck之间的差,X=C – Ck,X的F-范数为

 

clip_image036

 

当k远小于r时,称Ck为C的低阶近似,其中X也就是两矩阵之差的F范数要尽可能的小。

 

SVD可以被用与求低阶近似问题,步骤如下:

 

1. 给定一个矩阵C,对其奇异值分解:clip_image038

 

2. 构造clip_image040,它是将clip_image042的第k+1行至M行设为零,也就是把clip_image042[1]的最小的r-k个(the r-k smallest)奇异值设为零。

 

3. 计算Ckclip_image044

 

回忆在基础知识一节里曾经讲过,特征值数值的大小对矩阵-向量相乘影响的大小成正比,而奇异值和特征值也是正比关系,因此这里选取数值最小的r-k个特征值设为零合乎情理,即我们所希望的C-Ck尽可能的小。完整的证明可以在Introduction to Information Retrieval[2]中找到。

 

我们现在也清楚了LSA的基本思路:LSA希望通过降低传统向量空间的维度来去除空间中的“噪音”,而降维可以通过SVD实现,因此首先对Term-Document矩阵进行SVD分解,然后降维并构造语义空间。

 

QR分解

 

 

 

QR分解法是目前求一般矩阵全部特征值的最有效并广泛应用的方法,一般矩阵先经过正交相似变化成为 Hessenberg矩阵,然后再应用QR方法求特征值和特征向量。它是将矩阵分解成一个正规正交矩阵Q与上三角形矩阵R,所以称为QR分解法,与此正规 正交矩阵的通用符号Q有关。

 

在Matlab中,语法为[Q,R]=qr(A),如果A是一个m×n的矩阵,其QR分解后,Q为一个m×m的矩阵,R是一个m×n的矩阵。

 

0
0
分享到:
评论

相关推荐

    对称正定矩阵分解成正定矩阵乘积1

    对称正定矩阵分解成正定矩阵乘积1 对称正定矩阵是一种特殊类型的矩阵,它具有对称性和正定性两个重要特征。在矩阵分解中,对称正定矩阵可以被分解成正定矩阵的乘积,这种分解方式被称为对称正定矩阵分解成正定矩阵...

    非负矩阵分解算法的代码

    非负矩阵分解是一种新的矩阵分解方法,它将一个非负矩阵分解为左右两个非负矩阵的乘积。由于分解前后的矩阵中仅仅包含非负元素,因此原来矩阵中的列向量可解释为对左矩阵中所有列向量(称基向量)的加权和;而权重系数...

    矩阵分解的推荐算法 matlab实现

    在推荐系统领域,矩阵分解是一种广泛应用的技术,它能够有效地处理大规模数据集,挖掘用户与物品之间的潜在关联,从而实现个性化的推荐。本教程将详细探讨矩阵分解的推荐算法,并通过MATLAB实现进行演示。 首先,...

    python机器学习:推荐系统实现(以矩阵分解来协同过滤)

    用户和产品的潜在特征编写推荐系统矩阵分解工作原理使用潜在表征来找到类似的产品。 1. 用户和产品的潜在特征 我们可以通过为每个用户和每部电影分配属性,然后将它们相乘并合并结果来估计用户喜欢电影的程度。 ...

    非负矩阵分解matlab代码(全)

    非负矩阵分解(Non-negative Matrix Factorization, NMF)是一种广泛应用的数据分析方法,它通过将一个非负的矩阵分解为两个非负矩阵的乘积,从而揭示数据的潜在结构和特征。在MATLAB中实现NMF,可以帮助研究人员和...

    矩阵分解算法_matlab_矩阵分解_矩阵matlab仿真_

    在MATLAB环境中,矩阵分解是线性代数中一项重要的技术,它被广泛应用于数据分析、机器学习、图像处理等多个领域。本资源包含了两个MATLAB文件,SMD.m和matrix_decompose.m,它们提供了矩阵分解算法的实现,对于理解...

    稀疏非负矩阵分解及模式识别

    稀疏非负矩阵分解(Sparse Non-negative Matrix Factorization, SNMF)是一种在机器学习和数据挖掘领域广泛应用的技术,尤其在模式识别、图像处理、文本分析等领域有着显著效果。本资源包含的是经典文献“Non-...

    矩阵分解_Fortran_矩阵分解_分解_

    在IT领域,矩阵分解是数值计算中的核心概念,它在科学计算、数据分析、机器学习等多个领域有着广泛应用。这里,我们主要关注的是用Fortran语言实现的矩阵分解算法,包括LU分解、QR分解和奇异值分解。 首先,让我们...

    FFT快速蝶形算法矩阵分解算法

    在矩阵分解算法中,FFT可以通过将DFT矩阵分解为更小的可计算部分来实现。这种方法可以利用矩阵运算的性质,如行交换、块分解等,进一步优化计算效率。1974年的论文提出了这种优化方法,它使得在有限的计算资源下,...

    矩阵分解的LU和QR分解

    在计算机科学和线性代数领域,矩阵分解是解决各种问题的重要工具,特别是在数值计算、数据分析和机器学习中。本文将深入探讨两种常见的矩阵分解方法——LU分解和QR分解,并结合Java的JAMA库来解释如何实现这些方法。...

    深度矩阵分解模型 与 带注意力的深度矩阵分解模型

    深度矩阵分解模型(Deep Matrix Factorization,DMF)与带注意力的深度矩阵分解模型(Attention-based Deep Matrix Factorization,AttnDMF)是推荐系统领域中的两种先进算法,它们通过结合深度学习技术来提升传统...

    矩阵分解完整版代码

    在数学和计算机科学中,矩阵分解是解决众多计算问题的核心技术,它将一个复杂的矩阵转换为更简单、更易于处理的组成部分。本资料提供了一套完整的矩阵分解代码,使用MATLAB编程语言实现,包含了LU分解、QR分解、...

    c语言矩阵分解程序

    在IT领域,矩阵分解是一种重要的数学工具,广泛应用于线性代数、数据分析、机器学习以及图像处理等多个领域。本程序的标题是“C语言矩阵分解程序”,它涉及到的主要知识点是矩阵的运算和分解方法,尤其是如何通过...

    三大矩阵分解算法

    在数学和计算机科学领域,矩阵分解是解决众多问题的关键技术,尤其在数据分析、机器学习、图像处理和线性代数等领域。本主题将详细介绍三种重要的矩阵分解算法:LU分解、QR分解以及Singular Value Decomposition...

    基2和基4矩阵分解的推导以及对应FFT递归实现(matlab实现)

    本文将深入探讨基2和基4矩阵分解在FFT算法中的应用,以及如何用MATLAB实现这两种FFT的递归版本。 首先,我们从基2 FFT开始。基2 FFT算法是FFT中最常见的一种,它利用了DFT的对称性和分治策略。其核心在于分解一个N...

    非负矩阵分解及其应用探讨

    ### 非负矩阵分解及其应用探讨 #### 一、非负矩阵分解的基本概念与算法思想 非负矩阵分解(Non-negative Matrix Factorization, NMF)是一种矩阵分解方法,其核心在于将一个非负矩阵分解为两个较小的非负矩阵的乘积...

    矩阵分解数据集

    标题中的“矩阵分解数据集”指的是在数据挖掘和机器学习领域中广泛应用的一种技术,它涉及到将大型矩阵分解为两个或更多个小规模矩阵的乘积。矩阵分解的主要目标是揭示隐藏在高维数据中的潜在结构,这在推荐系统、...

Global site tag (gtag.js) - Google Analytics