zoukankan      html  css  js  c++  java
  • 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^{ op}Px_t-mathop{sum}limits_{t=1}^{T}x_t^{ op}P^{(t)}x_t)
    其中P为任意的rank-k的正交投影矩阵,T为迭代次数。
    (R(T,P))的界是次线性的,所以,我们可以通过(frac{1}{T}R(T,P))来计算算法到达(varepsilon-)界所需的时间,从而衡量算法的优劣。
    Matrix gradient descent (MGD)

    1. 将非凸条件放松为凸条件:
      (C =lbrace P: Tr(P):=k, 0preceq P preceq I, P = P^{ op} brace)
    2. (P^{t+1} = prod_F(P^{t} + eta g_t^{ op})) Here
    3. 学习后的(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
    梯度被污染的原因:

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

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

    Stochastic Setting

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

    Section 4 Missing Entries

    这一章,讲矩阵缺失数据的情形。
    假设(x_t)的每个元素将按照(q-Brtnoulli)分布被保留,否则缺失。
    在这里插入图片描述

    Online Setting

    此时,学习步长又变为:
    (hat{mathrm{g}}_t := hat{x}_that{x}_t^{ op} - z_tz_t^{ op})
    论文中为上式取负,但更新(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_{Pin 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^{ op}(I-P^{(t)}) + (I-P^{(t)})x_tx_t^{ op}}{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^{ op}+y_tx_t^{ op})))

    从而有下面定理:

    在这里插入图片描述

  • 相关阅读:
    .Net中获取打印机的相关信息
    如何在windows server 2008上配置NLB群集
    jvm分析内存泄露
    JVM调优
    线程池工作队列饱和策略
    线程池的处理流程:
    Java的Executor框架和线程池实现原理(转)
    线程池实现原理详解:
    futer.get()(如果任务没执行完将等待)
    sql注入
  • 原文地址:https://www.cnblogs.com/MTandHJ/p/10528004.html
Copyright © 2011-2022 走看看