Streaming Principal Component Analysis in Noisy Settings

2023-11-02 08:50

本文主要是介绍Streaming Principal Component Analysis in Noisy Settings,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文背景:

  • 面对来袭的数据,连续样本不一定是不相关的,甚至不是同分布的。
  • 当前,大部分在线PCA都只关注准确性,而忽视时效性!
  • 噪声?数据缺失,观测有偏,重大异常?

论文内容:
在这里插入图片描述

Section 2

Online Settings
Online PCA, 就是在观察到 x 1 , x 2 , x 3 , … , x t − 1 x1, x2, x3, \dots, x_{t-1} x1,x2,x3,,xt1后,“构造”一个 k − k- k维的子空间,通常用投影矩阵 P ( t ) P^{(t)} P(t)表示——为了最小化残差 ∥ x t − P ( t ) ∥ 2 \|x_t - P^{(t)}\|^2 xtP(t)2
这篇论文重点在于界的分析,考虑下面的“遗憾”(大概就是误差的意思):
R ( T , P ) = ∑ t = 1 T x t ⊤ P x t − ∑ t = 1 T x t ⊤ P ( t ) x t 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 R(T,P)=t=1TxtPxtt=1TxtP(t)xt
其中P为任意的rank-k的正交投影矩阵,T为迭代次数。
R ( T , P ) R(T,P) R(T,P)的界是次线性的,所以,我们可以通过 1 T R ( T , P ) \frac{1}{T}R(T,P) T1R(T,P)来计算算法到达 ε − \varepsilon- ε界所需的时间,从而衡量算法的优劣。
Matrix gradient descent (MGD)

  1. 将非凸条件放松为凸条件:
    C = { P : T r ( P ) : = k , 0 ⪯ P ⪯ I , P = P ⊤ } C =\lbrace P: Tr(P):=k, 0\preceq P \preceq I, P = P^{\top} \rbrace C={P:Tr(P):=k,0PI,P=P}
  2. P t + 1 = ∏ F ( P t + η g t ⊤ ) P^{t+1} = \prod_F(P^{t} + \eta g_t^{\top}) Pt+1=F(Pt+ηgt) Here
  3. 学习后的 P P P,不一定满足原来的凸条件(投影), 故:
    P ^ t = r o u n d i n g ( P t ) \hat{P}^{t} = rounding(P^{t}) P^t=rounding(Pt)

对于这个算法并不了解,姑且只能这么想了。点这里
下面是关于(遗憾)的一个界:
在这里插入图片描述

Stochastic Settings
在某些情况下,MGD算法复杂度比较高,所以,在额外的假设下,利用Oja的另外一种算法可能会比较有优势。
The additional assumption that x t x_t xt are sampled i.i.d. from some unknown distribution D D D and that ∥ x t ∥ ≤ 1 \|x_t\|\leq1 xt1 almost surely.
最近已经有相关方面的论文指出,在 k = 1 k=1 k=1的条件下,这个算法也可以到达次线性。
在这里插入图片描述

Section 3 corrupted gradients
在这一节,论文讲关于梯度被“污染”的情形。
Online Setting
梯度被污染的原因:

  1. 对于大数据不正确的运算
  2. 分布式和并行运算中,异步和噪声通讯导致的误差
    此时的学习单位步长为:
    g ^ t = x t x t ⊤ + E t \hat{\mathrm{g}}_t = x_tx_t^{\top}+E_t g^t=xtxt+Et

给出了下列定理:
在这里插入图片描述

Stochastic Setting

被污染的原因:数据被污染,设噪声向量为 y t y_t yt,且与 x t x_t xt独立。(k=1)
g ^ t = ( x t + y t ) ( x t + y t ) ⊤ \hat{\mathrm{g}}_t = (x_t + y_t)(x_t + y_t)^{\top} g^t=(xt+yt)(xt+yt)
在这里插入图片描述
在这里插入图片描述

Section 4 Missing Entries

这一章,讲矩阵缺失数据的情形。
假设 x t x_t xt的每个元素将按照 q − B r t n o u l l i q-Brtnoulli qBrtnoulli分布被保留,否则缺失。
在这里插入图片描述

Online Setting

此时,学习步长又变为:
g ^ t : = x ^ t x ^ t ⊤ − z t z t ⊤ \hat{\mathrm{g}}_t := \hat{x}_t\hat{x}_t^{\top} - z_tz_t^{\top} g^t:=x^tx^tztzt
论文中为上式取负,但更新 P P P的时候又取负,所以我直接不变了。

有下面的界:

在这里插入图片描述

Stochastic Setting

在推导这个界的时候,似乎遇到了麻烦,新的迭代步长不能保证半正定,所以需要进行一个处理(因为证明都没看,所以不懂啊)。

给出了一个定理(k = 1):

在这里插入图片描述

Section 5 Partial Observations

本节是讲观测偏差, x t x_t xt只有 r &lt; d r&lt;d r<d个元素被观测到。

下面是对步长的分析与构造,但是,我对 z z z的构造存疑,我觉得
z = d 2 − d r r − 1 x ~ i s e i s z = \sqrt{\frac{d^2-dr}{r-1}}\widetilde{x}_{i_s}e_{i_s} z=r1d2dr x iseis
在这里插入图片描述

Online Setting

g ^ t \hat{\mathrm{g}}_t g^t同上

有下面的界:
在这里插入图片描述

Stochastic Setting

有下面的界(k=1):

在这里插入图片描述

Section 6 Robust streaming PCA

针对异常值,探讨如何使得算法变得“健壮”。

新的regret:

R a b s ( T ) = ∑ t = 1 T ∥ x t − P t x t ∥ 2 − i n f P ∈ P k ∑ t = 1 T ∥ x t − P x t ∥ 2 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 Rabs(T)=t=1TxtPtxt2PPkinft=1TxtPxt2
for any sequence x 1 , … , x T ∈ R d x_1,\ldots,x_T \in \mathbb{R}^{d} x1,,xTRd.
新的:
g t = − x t x t ⊤ ( I − P ( t ) ) + ( I − P ( t ) ) x t x t ⊤ 2 ∥ ( I − P ( t ) ) x t ∥ 2 \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} gt=2(IP(t))xt2xtxt(IP(t))+(IP(t))xtxt
denote:
y t = ( I − P ( t ) ) x t y_t = (I-P^{(t)})x_t yt=(IP(t))xt and c t = η 2 ∥ y t ∥ 2 c_t = \frac{\eta}{2\|y_t\|_2} ct=2yt2η
P ( t + 1 ) = ∏ F ( P t + c t ( x t y t ⊤ + y t x t ⊤ ) ) P^(t+1) = \prod_F(P^{t} + c_t(x_ty_t^{\top}+y_tx_t^{\top})) P(t+1)=F(Pt+ct(xtyt+ytxt))

从而有下面定理:

在这里插入图片描述

这篇关于Streaming Principal Component Analysis in Noisy Settings的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/329476

相关文章

context:component-scan使用说明!

<!-- 使用annotation 自动注册bean, 并保证@Required、@Autowired的属性被注入 --> <context:component-scan base-package="com.yuanls"/> 在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controll

Versioned Staged Flow-Sensitive Pointer Analysis

VSFS 1.Introduction2.Approach2.1.相关概念2.2.VSFS 3.Evaluation参考文献 1.Introduction 上一篇blog我介绍了目前flow-sensitive pointer analysis常用的SFS算法。相比IFDS-based方法,SFS显著通过稀疏分析提升了效率,但是其内部依旧有许多冗余计算,留下了很大优化空间。 以

周期性清除Spark Streaming流状态的方法

在Spark Streaming程序中,我们经常需要使用有状态的流来统计一些累积性的指标,比如各个商品的PV。简单的代码描述如下,使用mapWithState()算子: 现在的问题是,PV并不是一直累加的,而是每天归零,重新统计数据。要达到在凌晨0点清除状态的目的,有以下两种方法。 编写脚本重启Streaming程序 用crontab、Azkaban等在凌晨0点调度执行下面的Shell脚本

Structured Streaming | Apache Spark中处理实时数据的声明式API

关于Spark的相关文章在这里: 《Spark面对OOM问题的解决方法及优化总结》 《Spark 动态资源分配(Dynamic Resource Allocation) 解析》 《Apache Spark在海致大数据平台中的优化实践》 《Spark/Flink广播实现作业配置动态更新》 《Spark SQL读数据库时不支持某些数据类型的问题》 《阿里云Spark Shuffle的优化》 《Spa

打通实时流处理log4j-flume-kafka-structured-streaming

大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! 模拟产生log4j日志 jar包依赖 pom.xml 12345678910111213<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId></dependency><depe

Spark Streaming整合log4j、Flume与Kafka的案例

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 来源:作者TAI_SPARK,http://suo.im/5w7LF8 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! 1.框架 2.log4j完成模拟日志输出 设置模拟日志格式,log4j.properties: log4j.rootLogger = INFO,stdo

Android Settings搜索Search方案分析

Android开发会遇到一些自写界面需要允许被搜索,或者三方应用挂靠在Settings,用户也希望能被搜索。 在知道怎么添加之前,得先了解下整个框架,才能更好地加入我们自己的代码。   这里稍微整理了下整个search database数据如何索引加载流程。 Settings搜索界面是由SearchFragment展现,当用户在Settings主页中点击搜索图标,会启动到SearchAc

[UVM]6.component driver monitor sequencer agent scoreboard env test

1.知识点回顾 (1)component需要有parent,因为参加构成组件,所以需要(继承); (2)object与component之间间隔report_object。 2.组件家族 (1)构建寄存器模型 :uvm_reg_predictor;激励器:driver/random_stimulus/sequencer_base/sequencer;监测器:monitor;

How to apply streaming in azure openai dotnet web application?

题意:"如何在 Azure OpenAI 的 .NET Web 应用程序中应用流式处理?" 问题背景: I want to create a web api backend that stream openai completion responses. "我想创建一个 Web API 后端,用于流式传输 OpenAI 的完成响应。" How can I apply the f

OpenCV_连通区域分析(Connected Component Analysis-Labeling)

申明:本文非笔者原创,原文转载自:http://blog.csdn.net/icvpr/article/details/10259577 OpenCV_连通区域分析(Connected Component Analysis/Labeling) 【摘要】 本文主要介绍在CVPR和图像处理领域中较为常用的一种图像区域(Blob)提取的方法——连通性分析法(连通区域标