Belabbas M A, Wolfe P J. Fast Low-Rank Approximation for Covariance Matrices[C]. IEEE International Workshop on Computational Advances in Multi-Sensor Adaptive Processing, 2007: 293-296.

Nystorm method

和在WIKI看到的不是同一个东西?

假设\(G \in \mathbb{R}^{n \times n}\)为对称正定矩阵。
\[
G =
\left [ \begin{array}{ll}
A & B^T \\
B & C
\end{array} \right ]
\]
其中\(A \in \mathbb{R}^{k \times k}, k<n\)。
假设\(G = U \Lambda U^T\),\(A = U_A \Lambda_A U_A^T\),令
\[
\widetilde{U} =
\left [ \begin{array}{c}
U_A \\
BU_A \Lambda_A^{-1}
\end{array} \right ]
\]
则:
\[
\widetilde{G} := \widetilde{U} \Lambda_A \widetilde{U}^T =
\left [ \begin{array}{ll}
A & B^T \\
B & BA^{-1}B^T
\end{array} \right ]
\]
易得:
\[
\|G - \widetilde{G}\| = \|C-BA^{-1}B^T\|
\]

再玩一下,令:
\[
G =
\left [ \begin{array}{lll}
A_1 & A_2^T & A_3^T \\
A_2 & M & B^T \\
A_3 & B & C
\end{array} \right ]
\]
且\(M = U_M \Lambda_M U_M^T\).
再令
\[
\widetilde{U} :=
\left [ \begin{array}{c}
A_2^TU_M \Lambda_M^{-1} \\
U_M \\
B U_M \Lambda_M^{-1}
\end{array} \right ]
\]
则:
\[
\widetilde{G} := \widetilde{U} \Lambda_M \widetilde{U}^T =
\left [ \begin{array}{ccc}
A_2^T M^{-1} A_2 & A_2^T & A_2^T M^{-1} B^T \\
A_2 & M & B^T \\
BM^{-1}A_2 & B & BM^{-1} B^T
\end{array} \right ]
\]
这个阵型还蛮酷的。

低秩逼近

先来介绍一个性质:\(F(F^TF)^{-1/2}\)列正交(当然\(F^TF\)得可逆)。
\[
(F(F^TF)^{-1/2})^TF(F^TF)^{-1/2} = (F^TF)^{-1/2}F^TF(F^TF)^{-1/2} = I
\]
实际上,如果\(F^TF = V\Lambda V^T\),那么\(FV_k \Lambda_k^{-1/2}\)列正交。
所以,我们可以让\(F\)的列为\(G\)中某些列的组合,再让\(P_k := FV_k \Lambda_k^{-1/2}\),最后:
\[
\widetilde{G}_k := P_kP_k^TGP_kP_k^T
\]
来作为\(G\)的一个近似。

矩阵乘法的逼近

如果我们能够令\(\|GG^T-FF^T\|\)尽可能小,那么\(P_kP_k^TG\)就越有可能成为一个好的逼近,这需要利用矩阵乘法的逼近。
对于矩阵\(A \in \mathbb{R}^{m \times n}\)和\(B \in \mathbb{R}^{n \times p}\),得:
\[
AB = \sum_{i=1}^n A_iB^i
\]
其中\(A_i\)为\(A\)的第i列,\(B^i\)为\(B\)的第i行。
论文举了一个例子:
如果\(n=2\),且\(A_2 = \sqrt{\alpha} A_1\),\(B=A^T\),
那么\(AB = (1+\alpha)A_1A_1^T\)。这意味着,我们只需通过\(A\)的第一列就能恢复\(AB\)。
所以接下来的问题是:

  • 如何选择行或者列
  • 如何调整它们的大小(乘个系数)

作者说,有一个神谕说列和行应该为\(S \subset \{1, \ldots, n\}\),不失一般性,假设其为\(S = \{1, \ldots, k\}\)。下面的定理给出了权重的选择:

所以我们要挑选\(S\),使得\(Z\)的对角线元素尽可能小,这意味着,我们要挑选这样的\(S\),使得\(<A_i, A_i><B^i, B^i>\)最大。
于是有了下面的俩个算法,分别针对矩阵乘法和矩阵逼近的:

FAST LOW-RANK APPROXIMATION FOR COVARIANCE MATRICES的更多相关文章

  1. Generalized Low Rank Approximation of Matrices

    Generalized Low Rank Approximations of Matrices JIEPING YE*jieping@cs.umn.edu Department of Computer ...

  2. Sparse Principal Component Analysis via Regularized Low Rank Matrix Approximation(Adjusted Variance)

    目录 前言 文章概述 固定\(\widetilde{\mathrm{v}}\) 固定\(\widetilde{\mathrm{u}}\) Adjusted Variance 前言 这篇文章用的也是交替 ...

  3. 吴恩达机器学习笔记59-向量化:低秩矩阵分解与均值归一化(Vectorization: Low Rank Matrix Factorization & Mean Normalization)

    一.向量化:低秩矩阵分解 之前我们介绍了协同过滤算法,本节介绍该算法的向量化实现,以及说说有关该算法可以做的其他事情. 举例:1.当给出一件产品时,你能否找到与之相关的其它产品.2.一位用户最近看上一 ...

  4. 推荐系统(recommender systems):预测电影评分--构造推荐系统的一种方法:低秩矩阵分解(low rank matrix factorization)

    如上图中的predicted ratings矩阵可以分解成X与ΘT的乘积,这个叫做低秩矩阵分解. 我们先学习出product的特征参数向量,在实际应用中这些学习出来的参数向量可能比较难以理解,也很难可 ...

  5. <<Numerical Analysis>>笔记

    2ed,  by Timothy Sauer DEFINITION 1.3A solution is correct within p decimal places if the error is l ...

  6. <Numerical Analysis>(by Timothy Sauer) Notes

    2ed,  by Timothy Sauer DEFINITION 1.3A solution is correct within p decimal places if the error is l ...

  7. cvpr2015papers

    @http://www-cs-faculty.stanford.edu/people/karpathy/cvpr2015papers/ CVPR 2015 papers (in nicer forma ...

  8. Official Program for CVPR 2015

    From:  http://www.pamitc.org/cvpr15/program.php Official Program for CVPR 2015 Monday, June 8 8:30am ...

  9. CVPR 2015 papers

    CVPR2015 Papers震撼来袭! CVPR 2015的文章可以下载了,如果链接无法下载,可以在Google上通过搜索paper名字下载(友情提示:可以使用filetype:pdf命令). Go ...

随机推荐

  1. 如何创建应用程序包(C ++)

    备注 如果您要创建UWP应用程序包,请参阅使用MakeAppx.exe工具创建应用程序包. 了解如何使用打包API为Windows应用商店应用创建应用包. 如果要手动创建桌面应用程序包,还可以使用使用 ...

  2. 01 JVM 从入门到实战 | 什么是 JVM

    什么是 JVM 先来看下百度百科的解释: JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,JVM 是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算 ...

  3. 细说mysql索引

    本文从如何建立mysql索引以及介绍mysql的索引类型,再讲mysql索引的利与弊,以及建立索引时需要注意的地方 首先:先假设有一张表,表的数据有10W条数据,其中有一条数据是nickname='c ...

  4. 【Android Studio安装部署系列】二十二、Android studio自动生成set、get方法

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 操作步骤 将光标放置我们所要生成get,set方法的实体类空白处——然后右键——选择Generate. 选择“Getter and Set ...

  5. ZooKeeper 02 - ZooKeeper集群的节点为什么是奇数个

    目录 1 关于节点个数的说明 2 ZooKeeper集群的容错数 3 ZooKeeper集群可用的标准 4 为什么不能是偶数个节点 4.1 防止由脑裂造成的集群不可用 4.2 奇数个节点更省资源 4. ...

  6. Python:strip 函数踩坑

    S.strip(chars=None) strip 函数用于去除字符串首尾的空格,当 chars 不为 None 时,则删除字符串首尾的 chars 中的字符. 当 chars=None 时,去除首尾 ...

  7. Windows10下安装Docker的步骤

    一.启用Hyper-V 打开控制面板 - 程序和功能 - 启用或关闭Windows功能,勾选Hyper-V,然后点击确定即可,如图: 点击确定后,启用完毕会提示重启系统,我们可以稍后再重启. 二.安装 ...

  8. Tomcat NIO 模型的实现

    Tomcat 对 BIO 和 NIO 两种模型都进行了实现,其中 BIO 的实现理解起来比较简单,而 NIO 的实现就比较复杂了,并且它跟常用的 Reactor 模型也略有不同,具体设计如下: 可以看 ...

  9. Netflix网关zuul(1.x和2.x)全解析

    zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用. Zuul可以通过加载动态过滤机制,从而实现以下各项功能: 验证与安全保障: 识别面向各类 ...

  10. 前端javascript如何阻止按下退格键页面回退 但 不阻止文本框使用退格键删除文本

    这段代码可以: document.onkeydown = function (e) { e.stopPropagation(); // 阻止事件冒泡传递 e.preventDefault(); // ...