CP分解(Canonical Polyadic Decomposition)
1927年Hitchcock提出了CP 分解。CP 分解将一个N阶的张量X∈RI1×I2×⋯×IN分解为R个秩为1的张量和的形式,即:
张量的低秩近似
在矩阵中定义最小的秩为1的矩阵和的个数为矩阵的秩,类似于矩阵的定义,R的最小值为张量的秩,记作Rank(X)=R,这样的CP分解也称为张量的秩分解。值得注意的是在张量中秩的定义是不唯一的,张量秩的个数求解是一个NP问题。对于一个矩阵A它的SVD分解定义为:
,不同于矩阵的低秩近似,张量的最佳Rank-n近似并不包括在其最佳Rank-n+1近似中,即张量的秩Rank-n 近似无法渐进地得到。
CP的求解
CP分解的求解首先要确定分解的秩1张量的个数,正如前面介绍的由于张量的秩Rank-n 近似无法渐进地得到。通常我们通过迭代的方法对R
从1开始遍历直到找到一个合适的解。当数据无噪声时,重构误差为0所对应的解即为CP分解的解,当数据有噪声的情况下,可以通过CORCONDIA算法估计 R。当分解的秩1张量的个数确定下来之后,可以通过交替最小二乘方法对CP分解进行进行求解。下面我们以三阶张量为例对ALS 算法进行阐述。
假设X∈RI×J×K
是一个三阶张量,对它进行张量分解的目标表达式为
可加约束
在一些应用中,为了使得CP分解更加的鲁棒和精确,可以在分解出的因子上加上一些先验知识即约束。比如说平滑约束(smooth)、正交约束、非负约束(nonegative)、稀疏约束(sparsity)等。
CP分解应用
CP分解已经在信号处理,视频处理,语音处理,计算机视觉、机器学习等领域得到了广泛的应用下面,以去噪为例,对CP分解在高光谱图像处理中的应用进行阐述。
高光谱图像(HSI)是上个世纪80年代以来新兴的一种新型成像技术,它包括了可见光和不可见光范围的几十到几百个连续光谱窄波段构成,形成了一种数据立方体结构的图像。高光谱图像可以看作是一个三阶张量,图像的空间域和光谱域构成了数据的三个维度。采用低秩CP分解对高光谱图像去噪认为低秩的部分是无噪声的部分,剩下的部分认为是噪声数据,它的示意图如下图所示。从图中可以看到一个高光谱图像数据X可以由两部分组成即:
其中S认为是低秩的部分即干净的图像,N是噪声的部分(这里的噪声包括白噪声,高斯噪声等)。可以通过对原始数据X 进行低秩CP分解来得到S。在Urban数据上进行去噪得到去噪前的数据和去噪之后的数据图分别如图下面的两幅图所示。从图中可以看到采用CP分解可以对高光谱图像进行去噪。
http://www.xiongfuli.com/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/2016-06/tensor-decomposition-cp.html