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 ...
随机推荐
- [20181116]18c DML 日志优化.txt
[20181116]18c DML 日志优化.txt 1.环境:xxxxxxxx> select banner_full from v$version;BANNER_FULL---------- ...
- Mysql的NULL和Empty String
本文基于Mysql5.7版本的参考资料: https://dev.mysql.com/doc/refman/5.7/en/working-with-null.html https://dev.mysq ...
- 转:EditPuls 5.0 注册码
EditPlus5.0注册码 注册名 Vovan 注册码 3AG46-JJ48E-CEACC-8E6EW-ECUAW EditPlus3.x注册码 EditPlus注册码生成器链接 http://ww ...
- 本博客停止更新改用wordperss
http://www.azurew.com/ 还是能有自己的博客比较爽 哈哈哈
- AndroidStudio2.2.x以上使用cMake编译调用底层c生成依赖库
最近使用AndroidStudio的最新ndk编译方式cMake来编译底层cpp文件,由于之前没有接触过cMake语法,先附上官方学习文档地址:https://developer.android.co ...
- 【PAT】B1007 素数对猜想
素数筛筛出规定范围内的所有素数存入数组 遍历数组,如果满足于后边的差2,计数器加加 #include <cstdio> const int maxn = 10000001; int pri ...
- java 开发注意事项
开发过程中的一些经验总结,不定时更新 1, 在开发接口的时候,尽量一个接口一个功能,不要多个功能共用一个接口,以免后期需求更改时修改接口困难, 使逻辑复杂
- 汲取营养的blog专栏
网路上博客专栏是学习提升.思考深化的好途径,目前发现的博客价值高的平台: (1)EETOP www.eetop.cn (2)CSND www.csdn.net (3)cnblog www.cnblog ...
- 转 CSS3+js实现多彩炫酷旋转圆环时钟效果
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- html 初识
一.web请求流程模拟 python编写的简易服务器应用程序 import socket server=socket.socket() ip_port =('127.0.0.1',8080) serv ...