Streaming Principal Component Analysis in Noisy Settings
论文背景:
- 面对来袭的数据,连续样本不一定是不相关的,甚至不是同分布的。
- 当前,大部分在线PCA都只关注准确性,而忽视时效性!
- 噪声?数据缺失,观测有偏,重大异常?
论文内容:
Section 2
Online Settings
Online PCA, 就是在观察到\(x1, x2, x3, \dots, x_{t-1}\)后,“构造”一个\(k-\)维的子空间,通常用投影矩阵\(P^{(t)}\)表示——为了最小化残差\(\|x_t - P^{(t)}\|^2\)
这篇论文重点在于界的分析,考虑下面的“遗憾”(大概就是误差的意思):
\(R(T,P) = \mathop{\sum}\limits_{t=1}^{T}x_t^{\top}Px_t-\mathop{\sum}\limits_{t=1}^{T}x_t^{\top}P^{(t)}x_t\)
其中P为任意的rank-k的正交投影矩阵,T为迭代次数。
\(R(T,P)\)的界是次线性的,所以,我们可以通过\(\frac{1}{T}R(T,P)\)来计算算法到达\(\varepsilon-\)界所需的时间,从而衡量算法的优劣。
Matrix gradient descent (MGD)
- 将非凸条件放松为凸条件:
\(C =\lbrace P: Tr(P):=k, 0\preceq P \preceq I, P = P^{\top} \rbrace\) - \(P^{t+1} = \prod_F(P^{t} + \eta g_t^{\top})\) Here
- 学习后的\(P\),不一定满足原来的凸条件(投影), 故:
\(\hat{P}^{t} = rounding(P^{t})\)
对于这个算法并不了解,姑且只能这么想了。点这里
下面是关于(遗憾)的一个界:
Stochastic Settings
在某些情况下,MGD算法复杂度比较高,所以,在额外的假设下,利用Oja的另外一种算法可能会比较有优势。
The additional assumption that \(x_t\) are sampled i.i.d. from some unknown distribution \(D\) and that \(\|x_t\|\leq1\) almost surely.
最近已经有相关方面的论文指出,在\(k=1\)的条件下,这个算法也可以到达次线性。
Section 3 corrupted gradients
在这一节,论文讲关于梯度被“污染”的情形。
Online Setting
梯度被污染的原因:
- 对于大数据不正确的运算
- 分布式和并行运算中,异步和噪声通讯导致的误差
此时的学习单位步长为:
\(\hat{\mathrm{g}}_t = x_tx_t^{\top}+E_t\)
给出了下列定理:
Stochastic Setting
被污染的原因:数据被污染,设噪声向量为\(y_t\),且与\(x_t\)独立。(k=1)
\(\hat{\mathrm{g}}_t = (x_t + y_t)(x_t + y_t)^{\top}\)
Section 4 Missing Entries
这一章,讲矩阵缺失数据的情形。
假设\(x_t\)的每个元素将按照\(q-Brtnoulli\)分布被保留,否则缺失。
Online Setting
此时,学习步长又变为:
\(\hat{\mathrm{g}}_t := \hat{x}_t\hat{x}_t^{\top} - z_tz_t^{\top}\)
论文中为上式取负,但更新\(P\)的时候又取负,所以我直接不变了。
有下面的界:
Stochastic Setting
在推导这个界的时候,似乎遇到了麻烦,新的迭代步长不能保证半正定,所以需要进行一个处理(因为证明都没看,所以不懂啊)。
给出了一个定理(k = 1):
Section 5 Partial Observations
本节是讲观测偏差,\(x_t\)只有\(r<d\)个元素被观测到。
下面是对步长的分析与构造,但是,我对\(z\)的构造存疑,我觉得
\(z = \sqrt{\frac{d^2-dr}{r-1}}\widetilde{x}_{i_s}e_{i_s}\)
Online Setting
\(\hat{\mathrm{g}}_t\)同上
有下面的界:
Stochastic Setting
有下面的界(k=1):
Section 6 Robust streaming PCA
针对异常值,探讨如何使得算法变得“健壮”。
新的regret:
\(R_{abs}(T) = \mathop{\sum}\limits_{t=1}^{T}\|x_t-P^{t}x_t\|_2-\mathop{inf}\limits_{P\in P_k} \mathop{\sum}\limits_{t=1}^{T}\|x_t-Px_t\|_2\)
for any sequence \(x_1,\ldots,x_T \in \mathbb{R}^{d}\).
新的:
\(\mathrm{g}_t=-\frac{x_tx_t^{\top}(I-P^{(t)}) + (I-P^{(t)})x_tx_t^{\top}}{2\|(I-P^{(t)})x_t\|_2}\)
denote:
\(y_t = (I-P^{(t)})x_t\) and \(c_t = \frac{\eta}{2\|y_t\|_2}\)
\(P^(t+1) = \prod_F(P^{t} + c_t(x_ty_t^{\top}+y_tx_t^{\top}))\)
从而有下面定理:
Streaming Principal Component Analysis in Noisy Settings的更多相关文章
- Principal Component Analysis(PCA) algorithm summary
Principal Component Analysis(PCA) algorithm summary mean normalization(ensure every feature has sero ...
- Robust Principal Component Analysis?(PCP)
目录 引 一些微弱的假设: 问题的解决 理论 去随机 Dual Certificates(对偶保证?) Golfing Scheme 数值实验 代码 Candes E J, Li X, Ma Y, e ...
- Sparse Principal Component Analysis via Rotation and Truncation
目录 对以往一些SPCA算法复杂度的总结 Notation 论文概述 原始问题 问题的变种 算法 固定\(X\),计算\(R\) 固定\(R\),求解\(X\) (\(Z =VR^{\mathrm{T ...
- 《principal component analysis based cataract grading and classification》学习笔记
Abstract A cataract is lens opacification caused by protein denaturation which leads to a decrease i ...
- PCA(Principal Component Analysis)主成分分析
PCA的数学原理(非常值得阅读)!!!! PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可 ...
- Principal Component Analysis(PCA)
Principal Component Analysis(PCA) 概念 去中心化(零均值化): 将输入的特征减去特征的均值, 相当于特征进行了平移, \[x_j - \bar x_j\] 归一化(标 ...
- (4)主成分分析Principal Component Analysis——PCA
主成分分析Principal Component Analysis 降维除了便于计算,另一个作用就是便于可视化. 主成分分析-->降维--> 方差:描述样本整体分布的疏密,方差越大-> ...
- Principal Component Analysis ---- PRML读书笔记
To summarize, principal component analysis involves evaluating the mean x and the covariance matrix ...
- 从矩阵(matrix)角度讨论PCA(Principal Component Analysis 主成分分析)、SVD(Singular Value Decomposition 奇异值分解)相关原理
0. 引言 本文主要的目的在于讨论PAC降维和SVD特征提取原理,围绕这一主题,在文章的开头从涉及的相关矩阵原理切入,逐步深入讨论,希望能够学习这一领域问题的读者朋友有帮助. 这里推荐Mit的Gilb ...
随机推荐
- Sql Server XML
实验数据: Create table xmldata (name NVARCHAR(20), age int, sex NVARCHAR(5) ) INSERT INTO xmldata VALUES ...
- sqlserver waitfor time 延迟函数的用法
SQL有定时执行的语句 WaitFor,可以写到一个存储过程中再执行一次 语法:WaitFor{Delay 'time'|Time 'time} Delay后面的时间为延迟多少时间执行 Time后面的 ...
- 利用uWSGI和nginx进行服务器部署
搭建服务器虚拟环境 1)在本机进入虚拟环境,执行命令导出当前需要的所有包. pip freeze > plist.txt 2)通过ftp软件将项目代码和plist.txt文件上传到服务器. 3) ...
- Ajax入门例子
在customer.php的文件中,代码如下: <html> <head> <script type="text/javascript"> fu ...
- 设计模式のAdapterPattern(适配器模式)----结构模式
一.产生背景 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能.举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器.您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本 ...
- Error response from daemon: rpc error: code = Unknown desc = name conflicts with
环境:centos7 执行一下命令时, docker service create --mode global --name logspout gliderlabs/logspout 出现以下报错: ...
- JavaScript 浮点数运算的精度问题
问题描述 在 JavaScript 中整数和浮点数都属于 Number 数据类型,所有数字都是以 64 位浮点数形式储存,即便整数也是如此. 所以我们在打印 1.00 这样的浮点数的结果是 1 而非 ...
- 通过JS如何获取IP地址
通过JS获取你真实的外网IP和内网IP,就算开代理也没有用,想想真是太可怕了,还能不能愉快的装逼了! 代码: //get the IP addresses associated with an acc ...
- multiply对应位置相乘 与 dot矩阵乘
区别 # -*- coding: utf- -*- import numpy as np a = np.array([[,], [,]]) b= np.arange().reshape((,)) c ...
- 解决.NET Web API生成的Help无Controller说明&服务端接收不到请求
今天在用.NET Web API写一个接口的时候遇到一个问题.在Controller中新加了一个方法,客户端就不能请求接口了,当时建WEB API项目是用的VS默认设置,在服务端打断点一直没有进去,而 ...