Randomized Online PCA Algorithms with Regret Bounds that are Logarithmic in the Dimension
前俩次,都用到了\(rounding()\),遗憾的是,都没有讲清楚,这次稍微具体地讲下这篇论文。但是说实话,我感觉,我还是没有领会到这篇文章的精髓。
Setup of Batch PCA and Online PCA
Batch PCA的目标,就是寻找一个子空间,能够最小化平方误差。
这篇论文,给出了一个比较新颖的表达方式:

where,
\(m\in \mathbb{R}^{n}\)
\(rank(P) =k\)
一般来讲,最优解就是,\(m = \overline{x}\), 而\(P\)所对应的子空间就是协方差矩阵的前\(k\)个特征向量组成的子空间。
论文对(1)进行了一个改写:


上面式子的一种直观解释就是,\(comp(P)\)就是一种损失,这个损失是由投影矩阵\(P\)带来的。
而在streaming PCA(论文里为Online PCA):

很自然的,

成了\(T\)次迭代所积累的损失。
我们希望,这些损失,能够接近由Batch PCA所产生的损失。
Hedge Algorithm
假设,有\(n\)个专家:expert \(i\), \(i=1,2,\ldots,n\).
有一个概率向量\(\mathsf{w}\),每个元素\(\mathsf{w}_i\)为舍弃expert \(i\)的概率。
自然而然,会有一个损失,称之为:\(\mathcal{l}\),每个元素是舍弃相应expert的损失,但是要求\(\mathcal{l}\in[0,1]\),所以我估计得有个单位化的过程。
下面就是如何选取专家,和迭代更新\(\mathsf{w}\)的算法。

这个\(\mathbf{w}\)的更新,有点类似adaboost,感觉其它地方也有看到过,至于其中的原理,估计还是得看论文吧。
同时,有下面的性质:


改进算法
这个算法的目标是,将\(\mathbf{w}\)分解为\(\mathop{\sum}\limits_{i}p_ir_i\),其中\(p_i\)为概率,\(r_i\)为\((n-k)\)-corner.\(d\)-corner,是指有且仅有\(d\)个非零项,且非零项的值为:\(\frac{1}{d}\).分解完毕只有,不同于上面的算法,这个算法将通过分布\(p_i\)选择\(r_i\),而\(r_i\)中的非零项所对应的指标就是相应的要舍弃的专家,expert。
分解算法如下:

\(\mathbf{w} \in B_d^n\)是指\(|\mathbf{w}|=\mathop{\sum}\limits_{i}\mathbf{w}_i=1\),且\(0 \leq \mathbf{w}_i \leq \frac{1}{d}\)
为了使\(\mathbf{w} \in B_d^{n}\),有下面的算法:

接下来就是结合上面的分解所得到的改进的Hedge算法:

有一个性质:

用于矩阵

定义:

矩阵\(d\)-corner是指\(A\)的特征值,有且仅有\(d\)个非零项,且均为\(\frac{1}{d}\)。
其他的类似定义。
这里的\(W\)是密度矩阵:对称正定矩阵,且迹为1。
则:


\(\mathbf{log}A=\mathop{\sum}\limits_ilog(\lambda_i)a_ia_i^{\top}\), 如果\(A=\mathop{\sum}\limits_i\lambda_ia_ia_i^{\top}\)
\(\mathbf{exp}A\)同理。
这个算法貌似是为了将\(W\)投影到\(B_d^{n}\)中的理论依据。
下面的算法五,就是关于如何利用\(W\)进行PCA:

\(rounding()\)
那么如何将上面的种种算法应用到之前提到的文章呢。之前的文章说,算法二就可以了,所以是这么理解吗?
最后得到的矩阵,根据特征值,得到概率向量\(\mathbf{w}\),然后再进行分解,通过概率\(p_i\),得到\(r_i\),接着,舍弃这些特征向量,得到最后的投影矩阵\(P\)?
但是,用特征值,总觉得和上面的不大相符,可不用特征值又能用什么呢?因为他们都是在最后一步利用这个\(rounding()\)。但是,用算法五,就和他们本身的算法不一致了,具体如何,不得而知了。
Randomized Online PCA Algorithms with Regret Bounds that are Logarithmic in the Dimension的更多相关文章
- Stochastic Optimization of PCA with Capped MSG
目录 Problem Matrix Stochastic Gradient 算法(MSG) 步骤二(单次迭代) 单步SVD \(project()\)算法 \(rounding()\) 从这里回溯到此 ...
- [转载]Maximum Flow: Augmenting Path Algorithms Comparison
https://www.topcoder.com/community/data-science/data-science-tutorials/maximum-flow-augmenting-path- ...
- 主成分分析(PCA)学习笔记
这两天学习了吴恩达老师机器学习中的主成分分析法(Principal Component Analysis, PCA),PCA是一种常用的降维方法.这里对PCA算法做一个小笔记,并利用python完成对 ...
- 近年Recsys论文
2015年~2017年SIGIR,SIGKDD,ICML三大会议的Recsys论文: [转载请注明出处:https://www.cnblogs.com/shenxiaolin/p/8321722.ht ...
- Beginners Guide To Learn Dimension Reduction Techniques
Beginners Guide To Learn Dimension Reduction Techniques Introduction Brevity is the soul of wit This ...
- 【转载】NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩、机器学习及最优化算法
原文:NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩.机器学习及最优化算法 导读 AI领域顶会NeurIPS正在加拿大蒙特利尔举办.本文针对实验室关注的几个研究热点,模型压缩.自 ...
- 3D点云配准算法简述
蝶恋花·槛菊愁烟兰泣露 槛菊愁烟兰泣露,罗幕轻寒,燕子双飞去. 明月不谙离恨苦,斜光到晓穿朱户. 昨夜西风凋碧树,独上高楼,望尽天涯路. 欲寄彩笺兼尺素.山长水阔知何处? --晏殊 导读: 3D点云 ...
- 【转载】VC维的来龙去脉
本文转载自 火光摇曳 原文链接:VC维的来龙去脉 目录: 说说历史 Hoeffding不等式 Connection to Learning 学习可行的两个核心条件 Effective Number o ...
- Support Vector Machines for classification
Support Vector Machines for classification To whet your appetite for support vector machines, here’s ...
随机推荐
- web前端(9)—— CSS属性
属性 终于到css属性,前面就零零散散的用了什么color,font-size之类,本篇博文就专项的介绍它了 字体属性 font-family 此属性是设置字体样式的,比如微软雅黑,方正书体,华文宋体 ...
- python发展史
一:Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum)(龟叔).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹 打发时间,决心开发一个新的脚本解释程序, ...
- June 10. 2018, Week 24th, Sunday
There is no friend as loyal as a book. 好书如挚友,情谊永不渝. From Ernest Miller Hemingway. Books are my frien ...
- JavaScript数据类型之文本类型
引言 字符串(string)是一组由16位值组成的不可变的有序序列,每个字符通常来自于Unicode字符集.JavaScript通过字符串类型来表示文本.字符串的长度(length)是其所含16位值的 ...
- docker-machine on azure
1.准备Azure的虚拟机,安装docker-machine 由于azure虚拟机的管理员账号不是root,所以这里我们使用自己创建的管理员yy 1.base=https://github.com/d ...
- [python] os.path.join() 与 sys.path
脚本文件本地目录挂入系统环境变量 import sys, os sys.path.append(os.pardir) print(sys.path) os.getcwd()获取当前目录路径 impor ...
- JDK动态代理Demo代码,进一步学习分析
import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflec ...
- 第一章 mysql的体系结构与存储引擎
数据库从逻辑上可以分为两部分,一部分负责存储即文件系统,这部分有个更时髦的名字叫存储引擎,存储引擎负责如何把数据以及索引相关的内容以合适的形式组织并存储到磁盘上.另一部分为server部分,负责和用户 ...
- (二 -3) 天猫精灵接入Home Assistant-自动发现Mqtt设备--灯系列
参考网站 1该mqtt光平台可以让您控制您的MQTT启用灯.它支持设置亮度,色温,效果,闪烁,开/关,RGB颜色,过渡,XY颜色和白色值. https://www.home-assistant.io/ ...
- Emacs 中 GDB 的使用
Emacs 提供了方便的 GDB 调试功能,使用方法简明如下, 1. 编译时加入调试信息, 例如: $ clang++ -g -Wall t.cpp -o t 2. 调试 t ,直接用命令 M-x g ...