Online PCA for Contaminated Data


发表时间:2013(NIPS 2013)
文章要点:这篇文章提出了一个online robust PCA算法。在online case下,需要根据数据流不断更新Principal Component,但是数据流里面可能有异常值,如果不剔除就会影响Principal Component的估计效果。作者的想法是来了一个sample之后,先根据当前的Principal Component张成的子空间去计算一下这个sample的距离

这里的距离其实像是一个余弦距离,所以如果太小,就可以认为是异常值。不过作者计算这个值并不直接设置阈值剔除,而是根据概率来接受或者拒绝。这里有个normalized的假设,所以这个值在0-1之间,就可以当成采样的概率来用,伪代码里用(delta_i)表示。如果不是异常值(authentic samples),(delta_i)就会比较大,被接受的概率就大,如果是异常值(outlier),(delta_i)就会很小,被接受的概率就会小。然后就用接受的样本去做online PCA的更新。然后整个流程一直做下去。
总结:很不错的思路,感觉貌似所有的robust的估计都会用相似的想法做一下,就是先排除一些异常值,然后去做更新。
疑问:文章里面第一个PCA的计算会严重依赖第一个batch的样本,这个batch里的异常值是没有被剔除的,对初始Principal Component的估计会不会影响很大?
证明没看。

原文地址:https://www.cnblogs.com/initial-h/p/15503115.html