《Randomized Low-Rank Dynamic Mode Decomposition for Motion Detection》读书笔记(上)

谢绝任何不标注出处的转载

如有问题请联系作者

原文链接:https://arxiv.org/abs/1512.03526


这篇文章介绍了一种使用随机动态模式分解(Randomized Dynamic Mode Decomposition, rDMD)来进行矩阵低秩计算的快速算法。动态模式分解(DMD)是流体力学(主要研究各种力的作用下,流体本身的静止状态和运动状态以及流体和固体界壁间有相对运动时的相互作用和流通规律【1】)中的一个新兴概念,但是也可以用于视屏流的动作侦测(motion detection)和背景提取(background extraction)。

先来梳理一下标题《Randomized Low-Rank Dynamic Mode Decomposition for Motion Detection》的概念。

所谓“低秩”(low-rank),根据用户“柒生”在知乎问题《矩阵低秩的意义?》的回答,就是图像所包含的信息的丰富程度很低。在现实生活的图像中,一张图片的大部分“成分”是相似的。【2】例如监控视频组成的图像,没有动态物体出现的图像(只有背景)和有动态物体(例如行人等)图像相比,前者就是低秩的。“秩”可以理解为图像的信息量。

那么我们可以认为,对于一个由若干图像组成的视频,图像的秩一直在改变。背景部分的变化很少,即他们的秩改变的很慢(甚至不变),而运动的物体的位置对应的秩变化会很快。所以我们能通过DMD来做动作侦测——计算图像和前一张图像矩阵的差值,设置合理的threshold来做分类。同时,根据秩的变化,我们也可以确定背景,从而达到背景提取的目的。

当然,这类方法也有缺陷,如果遇到一直在动的背景(background noise),例如被风吹动的树叶,翻滚的海浪,这个方法准确率就会大打折扣。

其实,我们已经有了现成的方法——稳健主成分析(robust principal component analysis, RPCA,“This can be formulated as a convex optimization problem that minimizes a combination of the l2 and l1 norm”)就是其中之一。但是RPCA有两个问题:(1)计算成本高,嗯我已经感受到了,没有GPU基本就散伙了。(2)对于高分辨率视频,能力有限。因此,科学家们在寻求对于视频(尤其是高分辨率视频)的更优解。

当然还有很多别的方法,但是核心问题就是大量的奇异值分解过程(singular value decompostion, SVD/svd)。svd又有很多分支,比如LMSVD, Gauss-Newton method based SVD, monte-carlo based SVD, rsvd等等。但核心问题不变。

要想了解rDMD的原理,我们要先了解什么是奇异值分解svd和随机奇异值分解rsvd,以及DMD。

svd: 

相比于svd, rsvd能通过GPU进行并行计算。对于一个m*n的矩阵A,我们可以将其分解为:


其中,U是一个m*m的矩阵,V为n*n。U和V的列分别为左奇异向量和右奇异向量。Σ是以一个由A的奇异值组成的m*n的对角线矩阵(对角线上的值被定义为σi)。*是厄米特矩阵转置(Hermitian transpose)。

在实际中,我们要将A的奇异值分解计算产生的U, Σ,V降维至低维度k(k远小于m和n),然后用k生成新的近似于A的A_new矩阵。对于k的选取,需要根据任务的要求定夺(是低维度优先还是产生一个良好的A的重组优先)。

那么对于原矩阵和新矩阵的误差,我们用F-范数(Frobenius norm)来计算:


对于传统svd,计算量可能是巨大的,尤其是对于非结构数据(unstructured data)。所以论文有了rsvd,一个更快速的随机计算算法。

rsvd:

低秩svd大致分为两步:

(1)寻找一个能够最好描述A的列空间的低维度子空间。这里我们会用到随机投影(random projections)。首先生成目标秩k个随机正太向量xi(i=1,2,...k),然后我们有:

A是一个m*n的矩阵,xi是n*1的正太向量。那么对于整个数据集A,我们有:


大写的Omega(记作O)是k个xi组成的n*k维矩阵(k是向量xi的个数)。然后我们通过对Y做QR分解(QR-Decomposition)获取m*k维的正交矩阵Q(在python中用numpy的qr(A)即可求得)。根据百度百科:“如果实(复)非奇异矩阵A能够化成正交矩阵Q与实(复)非奇异上三角矩阵R的乘积,即A=QR,则称其为A的QR分解。QR是目前求一般矩阵全部特征值的最有效并广泛应用的方法”【4】。得到Y的QR分解后,有:


(2)第二阶段我们将A投影到一个低维度子空间中:


Q是m*k矩阵,A是m*n矩阵,那么B的维度则为(k*m)*(m*n)即k*n维度,这里k应远小于m,n。这样,相比于计算大维度的m*n的A的svd,我们可以用B来替代,计算出svd:


综上,rsvd可以被推导为:


对于rsvd的 approximation error可以用下式表达:

l的概念与svd中的k类似,是降维到的维度,只不过和svd的k有一点细微的区别——为了让rsvd的精度更好,我们还需要对Y做一下处理,给Y加上幂和oversample,其对应参数分别是q (power iteration)和p(oversampling parameter)。p不会直接展现在下面的式子中,我们有:l=p+k.




参考资料:

【1】https://baike.baidu.com/item/%E6%B5%81%E4%BD%93%E5%8A%9B%E5%AD%A6/620604?fr=aladdin

【2】矩阵低秩的意义? - 柒生的回答 - 知乎https://www.zhihu.com/question/28630628/answer/98955466

【3】https://arxiv.org/abs/1512.03526

【4】https://baike.baidu.com/item/QR%E5%88%86%E8%A7%A3/8918473?fr=aladdin


猜你喜欢

转载自blog.csdn.net/weixin_39965890/article/details/80444585