本文主要是介绍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,…,xt−1后,“构造”一个 k − k- k−维的子空间,通常用投影矩阵 P ( t ) P^{(t)} P(t)表示——为了最小化残差 ∥ x t − P ( t ) ∥ 2 \|x_t - P^{(t)}\|^2 ∥xt−P(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=1∑Txt⊤Pxt−t=1∑Txt⊤P(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)
- 将非凸条件放松为凸条件:
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,0⪯P⪯I,P=P⊤} - 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
- 学习后的 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 ∥xt∥≤1 almost surely.
最近已经有相关方面的论文指出,在 k = 1 k=1 k=1的条件下,这个算法也可以到达次线性。
Section 3 corrupted gradients
在这一节,论文讲关于梯度被“污染”的情形。
Online Setting
梯度被污染的原因:
- 对于大数据不正确的运算
- 分布式和并行运算中,异步和噪声通讯导致的误差
此时的学习单位步长为:
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 q−Brtnoulli分布被保留,否则缺失。
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^t⊤−ztzt⊤
论文中为上式取负,但更新 P P P的时候又取负,所以我直接不变了。
有下面的界:
Stochastic Setting
在推导这个界的时候,似乎遇到了麻烦,新的迭代步长不能保证半正定,所以需要进行一个处理(因为证明都没看,所以不懂啊)。
给出了一个定理(k = 1):
Section 5 Partial Observations
本节是讲观测偏差, x t x_t xt只有 r < d r<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=r−1d2−drx 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=1∑T∥xt−Ptxt∥2−P∈Pkinft=1∑T∥xt−Pxt∥2
for any sequence x 1 , … , x T ∈ R d x_1,\ldots,x_T \in \mathbb{R}^{d} x1,…,xT∈Rd.
新的:
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∥(I−P(t))xt∥2xtxt⊤(I−P(t))+(I−P(t))xtxt⊤
denote:
y t = ( I − P ( t ) ) x t y_t = (I-P^{(t)})x_t yt=(I−P(t))xt and c t = η 2 ∥ y t ∥ 2 c_t = \frac{\eta}{2\|y_t\|_2} ct=2∥yt∥2η
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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!