Lu, C., et al., Tensor robust principal component analysis: Exact recovery of corrupted low-rank tensors via convex optimization, in IEEE Conference on Computer Vision and Pattern Recognition. 2016. p. 5249–5257.
本文是这篇 CVPR 会议论文的笔记,主要是对文中的理论方法进行展开详解。本人学术水平有限,文中如有错误之处,敬请指正。
摘要: 此文研究的问题是 Tensor Robust Principal Component Analysis (TRPCA) 问题,其扩展自矩阵的 RPCA 条件。此文的模型基于一个全新的 tensor 奇异值分解(t-SVD),以及其衍生出的 tubal rank 和 tensor 核范数 。考虑已有一个 3 维的 tensor X∈Rn1×n2×n3 ,并满足 X=L0+S0 ,其中 L0 是低秩部分而 S0 是稀疏部分。有没有可能同时恢复出两个部分?此文中,作者证明了在特定的合适假设下,可以精确地恢复出低秩和稀疏的部分,通过求解一个凸优化问题,其目标函数为一个核范数和一个 ℓ1 范数的加权和,即
一个在高维的数据中探索低维结构的问题在图像、文本和视频处理中已经越来越重要,还包括网页搜索,这些数据都是存在于非常高维的数据空间中。经典的 PCA 1 被广泛用于数据分析和维度降低的统计工具中。其计算非常高效,对小的噪声破坏的数据。然而,PCA 最大的问题是对严重的损坏或离异值的观察很脆弱,这些都是真实的数据中随处可见的。虽然很多改进版本的 PCA 被提出了,但是它们均有这很高昂的计算代价。
最近提出的 robust PCA 2 是第一个能实现多项式时间的算法,并有较强的性能保证。假设给定一个数据矩阵 X∈Rn1×n2 ,其可以被分解为 X=L0+E0 ,其中 L0 是低秩的, E0 是稀疏的。[2] 表明如果 L0 的奇异向量满足一些非相干性,而 L0 是低秩的并且 E0 是稀疏的, L0 和 E0 可以很大概率被恢复,通过求解如下的凸问题
RPCA 的一个主要缺点是其只能处理二维的数据(矩阵)。然而,真实的数据随处可见是高维的,也被记为 tensor 。比如,一幅彩色的图像是一个三维的;一个灰度的视频(两个空间变量,一个时间变量)。为了使用 RPCA,首先要将多维的数据重新转化为矩阵。这样的预处理通常会导致信息损失,造成性能下降。为了改善这样的问题,通常的办法是在高维的数据上进行操作,利用多维结构的优势。
此文中,研究的是 Tensor RPCA,旨在准确地恢复出低秩地 tensor,分离出稀疏地误差,如图所示。
更具体地来说,给定一个 tensor 数据 X ,并知道其可以被分解为
期望的是将 low-rank matrix recovery 扩展到 tensor 的情况。然而,这并不容易。主要的问题是如何定义 tensor 的秩,和矩阵的秩不同,它并不能很容易给定。已经有好几种 tensor rank 的定义提出,每种都有缺陷。例如,CP rank 5,定义为秩一 tensor 分解之后的最小值,计算是 NP-hard 。另一个是 Tucker rank [5] 和其凸松弛。对于一个 k 维的 tensor X ,Tucker rank 是一个向量: ranktc(X):=(rank(X(1)),rank(X(2)),⋯,rank(X(k))) ,其中 X(i) 是 X 的模 i 的矩阵化。Tucker rank 是基于矩阵的秩,所以是可以计算的。受启发于核范数是是矩阵的秩的凸包络在谱范数的单位球中,核范数之和(the Sum of Nuclear Norms, SNN)6,定义为 ∑i||X(i)||∗ ,用作 Tucker rank 的凸松弛。此方法的有效性已经被大量研究证明 [6] 7 8 9 。然而 SNN 并不是一个紧凑的 Tucker rank 的凸松弛。10 中考虑低秩 tensor 补全问题,基于 SNN,
最近,12 提出了 tensor tubal rank,基于一个新的 tensor 分解机制 13 14,也被记为 tensor SVD (t-SVD) 。其中定义了一个新的 tensor-tensor 乘积,与矩阵的情况类似。tensor 核范数 15 用于代替 tubal rank 求解 low-rank tensor completion 问题
符号 | 含义 |
---|---|
A | tensor |
A | 矩阵 |
a | 向量 |
a | 标量 |
In | 单位矩阵 |
R,C | 实数域,复数域 |
Aijk 或 aijk | 第 i,j,k 个元素 |
A(i,:,:), A(:,i,:), A(:,:,i) | 第 i 个水平,侧向,正面的切片 |
A(i)=A(:,:,i) | 第 i 个正面的切片 |
A(i,j,:) | 管道 |
⟨A,B⟩=tr(A∗B) | 矩阵的内积 |
⟨A,B⟩=∑n3i=1⟨A(i),B(i)⟩ | tensor 的内积 |
||A||1=∑ijk|aijk| | ℓ1 范数 |
||A||∞=maxijk|aijk| | 无穷范数 |
||A||F=∑ijk|aijk|2−−−−−−−−−√ | Frobenius 范数 |
||v||2=∑i|vi|2−−−−−−−√ | ℓ2 范数 |
||A||=maxiσi(A) | 谱范数, σi(A) 是矩阵的最大奇异值 |
||A||∗=∑iσi(A) | 核范数,奇异值之和 |
A¯=fft(A,[],3) | 离散傅里叶变换 |
A=ifft(A¯,[],3) | 离散傅里叶反变换 |
A¯=bdiag(A¯)=⎡⎣⎢⎢⎢⎢⎢⎢A¯(1)A¯(2)⋱A¯(n3)⎤⎦⎥⎥⎥⎥⎥⎥
|
块对角矩阵 ,每一个对角块都是一个 A¯ 的正面切片 |
bcirc(A)=⎡⎣⎢⎢⎢⎢⎢⎢A(1)A(2)⋮A(n3)A(n3)A(1)⋮A(n3−1)⋯⋯⋱⋯A(2)A(3)⋮A(1)⎤⎦⎥⎥⎥⎥⎥⎥
|
块循环矩阵 bcirc(A)∈Rn1n3×n2n3 |
unfold(A)=⎡⎣⎢⎢⎢⎢⎢A(1)A(2)⋮A(n3)⎤⎦⎥⎥⎥⎥⎥, fold(unfold(A))=A
|
展开操作和逆操作 |
t-product 令 A∈Rn1×n2×n3 和 B∈Rn2×l×n3 ,那么有如下定义
共轭转置 A∗∈Rn2×n1×n3 是一个 tensor A∈Rn1×n2×n3 的共轭转置。其中需要将每一个正面的切片进行共轭转置,并将转置后的切片从第 2 个到 第 n3 个切片的顺序逆转 (第一张切片位置不变)。
单位 tensor I∈Rn×n×n3 ,其第一个正面切片是一个 n×n 单位矩阵,而其他切片矩阵都为零。
正交 tensor tensor Q∈Rn×n×n3 是正交的如果其满足
F-对角 tensor 一个 tensor 的每一个正面的切片都是对角矩阵。
T-SVD 令 A∈Rn1×n2×n3 ,其可以被分解为
注意的是 t-SVD 可以在 傅里叶域内通过矩阵的 SVD 高效地计算得到。根据一个关键的性质:块循环矩阵可以被映射到一个傅里叶域的块对角矩阵,即
Tensor multi rank 和 tubal rank A∈Rn1×n2×n3 的 multi rank 定义为一个向量,其第 i 个元素的值是 A¯ 第 i 个正面的切片的秩,即 ri=rank(A¯(i)) 。tubal rank 定义为 rankt(A) ,也就是 S 中非零 tube 的个数。 A=U∗S∗V∗ 。
Tensor 核范数 定义为所有正面切片的矩阵核范数的平均值, ||A||∗:=1n3∑n3i=1||A¯(i)||∗ 。这里有一个因子 1/n3 ,此文提出的模型与之前的研究不同。该 tensor 核范数定义在傅里叶变换域,那么其非常接近原来的块循环矩阵的核范数,如下
Tensor 谱范数 谱范数定义为 ||A||:=||A¯|| ,矩阵的最大奇异值。
Tensor 标准基 列基,记为 e˚i 是一个 n×1×n3 的 tensor,其中第 (i,1,1) 个元素值为 1,其他都为零。那么其转置 e˚∗ 是行基。tube 基,记为 e˙k 是一个 1×1×n3 的 tensor,其第 (1,1,k) 个元素等于1,而其他都为零。为了方便,记 eijk=e˚i∗e˙j∗e˚∗k ,并且有 A=∑ijk⟨eijk,A⟩eijk=∑ijkaijkeijk 。
Tensor 非相干条件 对于 L0∈Rn1×n2×n3 ,假设 rankt(L0)=r ,并其 skinny t-SVD L0=U∗S∗V∗ ,其中 U∈Rn1×r×n3 , V∈Rn2×r×n3 满足 U∗∗U=I, V∗∗V=I ,并且 S∈Rr×r×n3 是一个 f-对角 tensor 。 L0 会满足 tensor 非相干条件,如果
算法 1 求解 (6) 通过 ADMM
输入: tensor 数据 X ,参数 λ 。
初始化: L0=S0=Y0=0, ρ=1.1, μ0=1e−3, μmax=1e10, ϵ=1e−8 。
while not converged do
1. 更新 Lk+1 :
详见原文