zoukankan      html  css  js  c++  java
  • Randomized Online PCA Algorithms with Regret Bounds that are Logarithmic in the Dimension

    前俩次,都用到了(rounding()),遗憾的是,都没有讲清楚,这次稍微具体地讲下这篇论文。但是说实话,我感觉,我还是没有领会到这篇文章的精髓。

    Setup of Batch PCA and Online PCA

    Batch PCA的目标,就是寻找一个子空间,能够最小化平方误差。
    这篇论文,给出了一个比较新颖的表达方式:
    在这里插入图片描述
    where,
    (min mathbb{R}^{n})
    (rank(P) =k)
    一般来讲,最优解就是,(m = overline{x}), 而(P)所对应的子空间就是协方差矩阵的前(k)个特征向量组成的子空间。
    论文对(1)进行了一个改写:
    在这里插入图片描述
    在这里插入图片描述
    上面式子的一种直观解释就是,(comp(P))就是一种损失,这个损失是由投影矩阵(P)带来的。
    而在streaming PCA(论文里为Online PCA):
    在这里插入图片描述
    很自然的,
    在这里插入图片描述
    成了(T)次迭代所积累的损失。
    我们希望,这些损失,能够接近由Batch PCA所产生的损失。

    Hedge Algorithm

    假设,有(n)个专家:expert (i), (i=1,2,ldots,n).
    有一个概率向量(mathsf{w}),每个元素(mathsf{w}_i)为舍弃expert (i)的概率。
    自然而然,会有一个损失,称之为:(mathcal{l}),每个元素是舍弃相应expert的损失,但是要求(mathcal{l}in[0,1]),所以我估计得有个单位化的过程。
    下面就是如何选取专家,和迭代更新(mathsf{w})的算法。
    在这里插入图片描述

    这个(mathbf{w})的更新,有点类似adaboost,感觉其它地方也有看到过,至于其中的原理,估计还是得看论文吧。
    同时,有下面的性质:
    在这里插入图片描述
    在这里插入图片描述

    改进算法

    这个算法的目标是,将(mathbf{w})分解为(mathop{sum}limits_{i}p_ir_i),其中(p_i)为概率,(r_i)((n-k))-corner.(d)-corner,是指有且仅有(d)个非零项,且非零项的值为:(frac{1}{d}).分解完毕只有,不同于上面的算法,这个算法将通过分布(p_i)选择(r_i),而(r_i)中的非零项所对应的指标就是相应的要舍弃的专家,expert。
    分解算法如下:
    在这里插入图片描述
    (mathbf{w} in B_d^n)是指(|mathbf{w}|=mathop{sum}limits_{i}mathbf{w}_i=1),且(0 leq mathbf{w}_i leq frac{1}{d})

    为了使(mathbf{w} in B_d^{n}),有下面的算法:
    在这里插入图片描述

    接下来就是结合上面的分解所得到的改进的Hedge算法:
    在这里插入图片描述

    有一个性质:
    在这里插入图片描述

    用于矩阵

    在这里插入图片描述

    定义:
    在这里插入图片描述

    矩阵(d)-corner是指(A)的特征值,有且仅有(d)个非零项,且均为(frac{1}{d})
    其他的类似定义。
    这里的(W)是密度矩阵:对称正定矩阵,且迹为1。
    则:
    在这里插入图片描述
    在这里插入图片描述
    (mathbf{log}A=mathop{sum}limits_ilog(lambda_i)a_ia_i^{ op}), 如果(A=mathop{sum}limits_ilambda_ia_ia_i^{ op})
    (mathbf{exp}A)同理。

    这个算法貌似是为了将(W)投影到(B_d^{n})中的理论依据。

    下面的算法五,就是关于如何利用(W)进行PCA:
    在这里插入图片描述

    (rounding())

    那么如何将上面的种种算法应用到之前提到的文章呢。之前的文章说,算法二就可以了,所以是这么理解吗?
    最后得到的矩阵,根据特征值,得到概率向量(mathbf{w}),然后再进行分解,通过概率(p_i),得到(r_i),接着,舍弃这些特征向量,得到最后的投影矩阵(P)?
    但是,用特征值,总觉得和上面的不大相符,可不用特征值又能用什么呢?因为他们都是在最后一步利用这个(rounding())。但是,用算法五,就和他们本身的算法不一致了,具体如何,不得而知了。

  • 相关阅读:
    查看端口被占用
    Eclipse导入包
    Eclipse中构造方法自动生成
    Eclipse中get/set方法自动生成
    Eclipse改字体大小
    设计六原则
    类的关系
    JAVA实现多线程下载
    try...catch的前世今生
    447. 回旋镖的数量
  • 原文地址:https://www.cnblogs.com/MTandHJ/p/10527989.html
Copyright © 2011-2022 走看看