机器学习中的矩阵方法03:QR 分解

1. QR 分解的形式

QR 分解是把矩阵分解成一个正交矩阵与一个上三角矩阵的积。QR 分解经常用来解线性最小二乘法问题。QR 分解也是特定特征值算法即QR算法的基础。用图可以将分解形象地表示成:

其中, Q 是一个标准正交方阵, R 是上三角矩阵。

2. QR 分解的求解

QR 分解的实际计算有很多方法,例如 Givens 旋转、Householder 变换,以及 Gram-Schmidt 正交化等等。每一种方法都有其优点和不足。上一篇博客介绍了 Givens 旋转和 Householder 变换, 第三种方法线性代数课程里面已经非常常见。下面用 Householder 变换的方法推导中间的过程。

假设 A 是一个 5×4 的矩阵,用 × 号表示本次变换未变化的元素,用 + 号表示本次发生变换的元素, H 矩阵等效于对右侧的 A 矩阵进行行操作:

四次变换之后, A 就转化成一个上三角矩阵。并且如果 A 是列向量不相关,则 R 矩阵是非奇异矩阵。

由于 H1, H2, H3, H4 都是标准化正交矩阵,那么 QT 也是标准正交矩阵。

根据矩阵相乘的性质,由于 R 下面都是 0 元素,因此,可以将 Q 矩阵对应分解成 Q1 和 Q2 两个部分,后面乘以 0 向量的部分可以省略,这就是 thin QR 分解:

上式中 R 的列向量可以看做是以 Q1 列向量为基的子空间的坐标。

3. 用 QR 解决最小二乘法

这个系列的第一篇博客就用 Normal equations 的方法解决了最小二乘的问题,具体来说使用了“伪逆”,但是这种做法存在缺陷,比如计算量大和浮点数运算中 roundoff 的问题。现在我们尝试用 QR 的方法来试一试。对于一个 OverDeterminded 的矩阵 A, 最小二乘的问题可以归结为:

将 A 进行 QR 分解,很容易可以推导出目标函数(残差的平方):

其中, 

后面一项是硬伤,没有办法优化,令前面一项等于 0, 可以得到最小二乘法的 solution:

而且有一个好处是,用 Householder 变换得到的 P1, P2, P3...等,我们完全没有必要把用 Q = P1P2P3 显性地求出来,而是将 b 向量添加到 A 矩阵右侧, 与 A 一起做 Householder 变换即可:

另外一个福利是:由于 Householder 变换和平面旋转变换对于浮点运算的 rounding error 问题有优良的性质,QR 分解方法比 Normal equations 的条件数更小, 某些问题的 solution 也更加精确。

4. 更新最小二乘的解集

在一些应用里面,系统要求我们实时更新解集,但是样本数据是逐渐产生的,也就是说矩阵 A 和向量 b 是逐渐变长的,如何在已有的解集上进行更新?

问题可以描述如下:假设现在已经将产生的数据进行了 QR 分解,新产生的数据是 a 和 beta,

由于中间的 Q_2^T b 对于运算没有作用,我们暂且将它扔掉,用 × 表示不变的元素,用 + 表示变化的元素,我们的主要思路是用 Givens 旋转操作(上一篇博客有介绍,实际上 Householder 变换和 Givens 旋转都是左乘一个标准化的正交矩阵,在这里是等效的),先对第 1 行和第 n+1 行进行旋转,然后对第 2 行和地 n+1 行进行旋转... 一步一步求出更新后的 R 和 Q1b:

第一行和第 n+1 行进行旋转:

第二行和第 n+1 行进行旋转:

依次进行,直到:

最终得到解集。

时间: 2024-10-01 05:12:08

机器学习中的矩阵方法03:QR 分解的相关文章

机器学习中的矩阵方法04:SVD 分解

机器学习中的矩阵方法04:SVD 分解 前面我们讲了 QR 分解有一些优良的特性,但是 QR 分解仅仅是对矩阵的行进行操作(左乘一个酉矩阵),可以得到列空间.这一小节的 SVD 分解则是将行与列同等看待,既左乘酉矩阵,又右乘酉矩阵,可以得出更有意思的信息.奇异值分解( SVD, Singular Value Decomposition ) 在计算矩阵的伪逆( pseudoinverse ),最小二乘法最优解,矩阵近似,确定矩阵的列向量空间,秩以及线性系统的解集空间都有应用. 1. SVD 的形式

机器学习中的矩阵方法01:线性系统和最小二乘

机器学习中的矩阵方法01:线性系统和最小二乘 说明:Matrix Methods in Data Mining and Pattern Recognition 读书笔记 非常 nice 矩阵在线计算器,网址:http://www.bluebit.gr/matrix-calculator/. 1. LU Decomposition 假设现在要解一个线性系统: Ax = b, 其中 A 是 n×n 非奇异方阵,对于任意的向量 b 来说,都存在一个唯一的解. 回顾我们手工求解这个线性方程组的做法,首先

机器学习中的矩阵方法02:正交

机器学习中的矩阵方法02:正交 说明:Matrix Methods in Data Mining and Pattern Recognition 读书笔记 1. 正交的一些概念和性质 在前一章的最小二乘的问题中,我们知道不恰当的基向量会出现条件数过大,系统防干扰能力差的现象,这实际上和基向量的正交性有关. 两个向量的内积如果是零, 那么就说这两个向量是正交的,在三维空间中,正交的两个向量相互垂直.如果相互正交的向量长度均为 1, 那么他们又叫做标准正交基. 正交矩阵则是指列向量相互正交的方阵.标

机器学习(十三)——机器学习中的矩阵方法(3)病态矩阵、协同过滤的ALS算法(1)

http://antkillerfarm.github.io/ 向量的范数(续) 范数可用符号∥x∥λ表示.常用的有: ∥x∥1=|x1|+?+|xn| ∥x∥2=x21+?+x2n???????????√ ∥x∥∞=max(|x1|,-,|xn|) 这里不做解释的给出如下示意图: 其中,0范数表示向量中非0元素的个数.上图中的图形被称为lp ball.表征在同一范数条件下,具有相同距离的点的集合. 范数满足如下不等式: ∥A+B∥≤∥A∥+∥B∥(三角不等式) 向量范数推广可得到矩阵范数.某些

机器学习中的矩阵向量求导(三) 矩阵向量求导之微分法

在机器学习中的矩阵向量求导(二) 矩阵向量求导之定义法中,我们讨论了定义法求解矩阵向量求导的方法,但是这个方法对于比较复杂的求导式子,中间运算会很复杂,同时排列求导出的结果也很麻烦.因此我们需要其他的一些求导方法.本文我们讨论使用微分法来求解标量对向量的求导,以及标量对矩阵的求导. 本文的标量对向量的求导,以及标量对矩阵的求导使用分母布局.如果遇到其他资料求导结果不同,请先确认布局是否一样. 1. 矩阵微分 在高数里面我们学习过标量的导数和微分,他们之间有这样的关系:$df =f'(x)dx$.

机器学习中常见优化方法汇总

http://www.scipy-lectures.org/advanced/mathematical_optimization/index.html#a-review-of-the-different-optimizers 机器学习中数学优化专门用于解决寻找一个函数的最小值的问题.这里的函数被称为cost function或者objective function,或者energy:损失函数或者目标函数. 更进一步,在机器学习优化中,我们并不依赖于被优化的函数的数学解析表达式,我们通过使用$sc

机器学习中的参数估计方法

原文:https://blog.csdn.net/yt71656/article/details/42585873 前几天上的机器学习课上,老师讲到了参数估计的三种方法:ML,MAP和Bayesian  estimation.课后,又查了一些相关资料,以及老师推荐的LDA方面的论文<Parameter estimation for text analysis>.本文主要介绍文本分析的三类参数估计方法-最大似然估计MLE.最大后验概率估计MAP及贝叶斯估计,以及三者之间的区别. 1.最大似然估计

机器学习中的矩阵求导总结

下图为常见的矩阵求导公式及其推导.

个人整理的机器学习中相似度方法及对比