原文地址:http://www.xiongfuli.com/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/2016-06/tensor-decomposition-tucker.html

Tucker分解

Tucker的1966年文章中第一次提到了Tucker分解。一个三阶张量的Tucker分解的图示如下图所示。

对于一个三阶张量X∈RI×J×KX∈RI×J×K, 由Tucker分解可以得到A∈RI×PA∈RI×P,B∈RJ×QB∈RJ×Q,C∈RK×RC∈RK×R三个因子矩阵和一个核张量 G∈RP×Q×RG∈RP×Q×R,每个mode上的因子矩阵称为张量在每个mode上的基矩阵或者是主成分,因此Tucker 分解又称为高阶PCA, 高阶SVD等。从图中可以看出,CP分解是Tucker分解的一种特殊形式:如果核张量的各个维数相同并且是对角的,则Tucker分解就退化成了CP分解。

在三阶张量形式中,有

X=G×1A×2B×3C=∑p=1P∑q=1Q∑r=1Rgpqrap∘bq∘cr=[[G;A,B,C]]X=G×1A×2B×3C=∑p=1P∑q=1Q∑r=1Rgpqrap∘bq∘cr=[[G;A,B,C]]

将上面的公式写成矩阵的形式即:

X1=AG(1)(C⊗B)TX2=BG(2)(C⊗A)TX3=CG(3)(B⊗A)TX1=AG(1)(C⊗B)TX2=BG(2)(C⊗A)TX3=CG(3)(B⊗A)T

对于三阶张量固定一个因子矩阵为单位阵,就得到Tucker分解一个重要的特例:Tucker2。例如固定 C=IC=I ,则退化为:

X=G×1A×2B=[[G;A,B,I]]X=G×1A×2B=[[G;A,B,I]]

进一步,如果固定两个因子矩阵,就得到了Tucker1例如固定 C=IC=I , B=IB=I ,则Tucker 分解就退化成了普通的PCA

X=G×1A=[[G;A,I,I]]X=G×1A=[[G;A,I,I]]

把上面的公式推广到 NN 阶的模型即可得到:

X=G×1A(1)×2A(2)⋯×(N)A(N)=[[G;A(1),A(2),⋯,A(N)]]X=G×1A(1)×2A(2)⋯×(N)A(N)=[[G;A(1),A(2),⋯,A(N)]]

写成矩阵形式即:

X(n)=A(n)G(n)(A(N)⊗⋯⊗A(n+1)⊗A(n−1)⋯⊗A(1))TX(n)=A(n)G(n)(A(N)⊗⋯⊗A(n+1)⊗A(n−1)⋯⊗A(1))T

n-秩与低秩近似

nn-秩又称为多线性秩。一个N阶张量XX的n-mode秩定义为:

rankn(X)=rank(X(n))rankn(X)=rank(X(n))

令 rankn(X)=Rn,n=1,⋯,Nrankn(X)=Rn,n=1,⋯,N 则 XX 叫做秩 (R1,R2,⋯,Rn)(R1,R2,⋯,Rn) 的张量。 RnRn 可以看作是张量 XX 在各个mode上fiber所构成的空间的维度。如果 rankn(X)=Rn,n=1,⋯,Nrankn(X)=Rn,n=1,⋯,N ,则很容易得到 XX 的一个精确秩- (R1,R2,⋯,RN)(R1,R2,⋯,RN) Tucker分解;然而如果至少有一个  nn  使得  rankn(X)>Rnrankn(X)>Rn ,则通过Tucker分解得到的就是 XX 的一个秩-  (R1,R2,⋯,RN)(R1,R2,⋯,RN) 近似。下图展示了一个三阶张量的低秩近似,这个在图像处理中有可以认为是干净的图像。

Tucker分解的求解

对于固定的nn-秩,Tucker分解的唯一性不能保证,一般加上一些约束,如分解得到的因子单位正交约束等。比如HOSVD(High Order SVD)求解算法,它通过张量的每一个mode上做SVD分解对各个mode上的因子矩阵进行求解,最后计算张量在各个mode上的投影之后的张量作为核张量。它的算法过程如下图所示。

虽然利用SVD对每个mode做一次Tucker1分解,但是HOSVD 不能保证得到一个较好的近似,但HOSVD的结果可以作为一个其他迭代算法(如HOOI)的很好的初始化。(\textit{High-order orthogonal iteration})HOOI算法,将张量分解看作是一个优化的过程,不断迭代得到分解结果。假设有一个NN 阶张量X∈RI1×I2×⋯×INX∈RI1×I2×⋯×IN,那么对XX进行分解就是对下面的问题进行求解:

 ∣∣X−[[G;A(1),⋯,A(N)]]∣∣ =∣∣vec(X)−(A(N)⊗⋯⊗A(1))vec(G)∣∣  |X−[[G;A(1),⋯,A(N)]]| =|vec(X)−(A(N)⊗⋯⊗A(1))vec(G)| 

将上述的目标函数进一步化简得到:

 ∥∥X−[[G;A(1),⋯,A(N)]]∥∥2 =∥X∥2−2⟨X,[[G;A(1),⋯,A(N)]]⟩+∣∣[[G;A(1),⋯,A(N)]]∣∣2 =∥X∥2−2⟨X×1A(1)T⋯×NA(N)T,G⟩+∥G∥2 =∥X|2−2⟨G,G⟩+∥G∥2  ‖X−[[G;A(1),⋯,A(N)]]‖2 =‖X‖2−2⟨X,[[G;A(1),⋯,A(N)]]⟩+|[[G;A(1),⋯,A(N)]]|2 =‖X‖2−2⟨X×1A(1)T⋯×NA(N)T,G⟩+‖G‖2 =‖X|2−2⟨G,G⟩+‖G‖2 

而 GG 满足

G=X×1A(1)T⋯×NA(N)TG=X×1A(1)T⋯×NA(N)T

从而可与可以得到:

=∥X∥2−∥∥X×1A(1)T⋯×NA(N)T∥∥2=‖X‖2−‖X×1A(1)T⋯×NA(N)T‖2

由于 ∥X∥‖X‖ 是一个常数,最小化上面的式子相当于最大化:

max∥∥X×1A(1)T⋯×NA(N)T∥∥subjecttoA(n)∈In×Rnandcolumnwiseorthogonalmax‖X×1A(1)T⋯×NA(N)T‖subjecttoA(n)∈In×Rnandcolumnwiseorthogonal

写成矩阵形式即:

max∥∥A(n)TW∥∥ s.t. W=X(n)(A(N)⊗⋯⊗A(n+1)⊗A(n−1)⋯⊗A(1))max‖A(n)TW‖ s.t. W=X(n)(A(N)⊗⋯⊗A(n+1)⊗A(n−1)⋯⊗A(1))

这个问题可以通过令 A(n)A(n)  为  WW  的前  RnRn  个左奇异值向量来进行求解。HOOI算法的过程如下图所示。

约束Tucker的分解

除了可以在Tucker分解的各个因子矩阵上加上正交约束以外,还可以加一些其它约束,比如稀疏约束,平滑约束,非负约束等。另外在一些应用的场景中不同的mode的物理意义不同,可以加上不同的约束。在下图中在三个不同的mode上分别加上了正交约束,非负约束以及统计独立性约束等。

Tucker的分解的应用

前面我们说Tucker分解可以看作是一个PCA的多线性版本,因此可以用于数据降维,特征提取,张量子空间学习等。比如说一个低秩的张量近似可以做一些去噪的操作等。Tucker分解同时在高光谱图像中也有所应用,如用低秩Tucker分解做高光谱图像的去噪,用张量子空间做高光谱图像的特征选择,用Tucker分解做数据的压缩等。下面以高光谱图像去噪为例作相关的介绍。 http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=6909773中对高光谱图像去噪的流程如下图所示,它首先对高光谱图像进行分块,然后对分的快进行聚类,得到一些group,最后对各个group里面的数据进行低秩Tucker分解。处理之前的噪声图像和处理之后的图像的对比如下图所示,可以发现Tucker分解可以对高光谱数据做有效的去噪处理。

张量分解-Tucker分解相关推荐

  1. 张量分解浅谈(四 Tucker 分解)

    学完了SVD算法之后,我们继续回到张量几大分解的学习上来,本期学习的主要内容是张量的 Tucker 分解 以及 前面的CP分解还留下一点没有说完,正好一并补齐!后面的公式我将采用颜色标记,红色代表必须 ...

  2. 三、Tucker 分解

    Tucker 分解 Tucker 分解 Tucker 分解法可以被视作一种高阶 PCA. 它将张量分解为核心张量在每个mode上与矩阵的乘积. 因此, 对三阶张量 X∈RI×J×K\mathcal{X ...

  3. 浅谈张量分解(五):稀疏张量的CP分解

    在前面的文章中,我们已经讨论了稀疏张量的Tucker分解,并介绍了如何采用梯度下降训练出一个合理的分解结构,与Tucker分解略有不同,这篇文章将介绍在数学表达式上更为简洁的CP分解,同时讨论如何利用 ...

  4. 张量分解——CP分解与Tucker分解详解

    关于张量分解一些简单的介绍,可以看我的这篇 张量的CP分解模型 一般而言,给定一个大小为 n 1 × n 2 × n 3 n_1 \times n_2 \times n_3 n

  5. 基于张量秩一分解的多目标跟踪方法

    基于张量秩一分解的多目标跟踪方法 张量秩一分解 数据关联 多目标跟踪 读'X. Shi, H.Ling, J.Xing, W.Hu, Multi-target Tracking by Rank-1 T ...

  6. 5.9 QR分解--Gram-Schmidt 分解

    5.9 QR分解–Gram-Schmidt 分解 最小二乘法需要解方程 ATAx=ATbA^TA\mathbf{x} = A^T\mathbf{b}ATAx=ATb ,需要计算矩阵乘法 ATAA^TA ...

  7. 矩阵的分解_QR分解

    文章目录 QR分解介绍 施密特正交化 QR分解步骤 QR分解程序实现 QR分解介绍 前提:必须是列满秩的矩阵! 若n阶非奇异矩阵AAAn∗nn*nn∗n可以分解成正交矩阵QQQn∗nn*nn∗n和非奇 ...

  8. 解方程AX=b与矩阵分解:奇异值分解(SVD分解) 特征值分解 QR分解 三角分解 LLT分解

    文章目录 1. 前言 2. LU三角分解 3. Cholesky分解 - LDLT分解 4. Cholesky分解 - LLT分解 5. QR分解 6. 奇异值分解 7. 特征值分解 1. 前言 本博 ...

  9. 【矩阵论】2. 矩阵分解——正规分解——正规阵

    矩阵论 1. 准备知识--复数域上的矩阵与换位公式) 1. 准备知识--复数域上的内积域正交阵 1. 准备知识--相似对角化与合同&正定阵 2. 矩阵分解-- SVD准备知识--奇异值 2. ...

最新文章

  1. 机器学习(2)特征提取1 -- 字典特征提取
  2. 结束php语句的正确方法是,2011-2012-1-《PHP网页设计》试卷b
  3. 《蓝桥小记》 2018-04-01
  4. 使用jdk 自带的jarsigner 签名工具签名的apk 和android规范有区别
  5. rxjs 操作符 pairwise 的一个例子
  6. 微信小程序轮播图中间变大_微信小程序实现带放大效果的轮播图
  7. 算法设计与分析复习第一二章(时间复杂度和蛮力法)
  8. 2021年全球营销趋势报告
  9. 《阿里感悟》- 技术人员的职业规划
  10. jsp编程:用Servlet实现用户登陆
  11. 用云服务器储存文件空间,用云服务器储存文件空间
  12. 十大关系数据库SQL注入工具一览
  13. 通过SetWindowsHookEx实现跨进程子类化
  14. 蓝拓扑便携式分析仪驱动程序_拔出便携式USB硬盘驱动器会损坏计算机吗?
  15. 科学设置百度网盟到访定向,提升竞价转化率!
  16. CPU概述及CPU的内部结构
  17. tsm9_Momentum_Ultimate Oscillators_MACDivergence index_Stochastic RSI_A/D Oscillator_RVI Vigor ADX
  18. 计算机中乘法是什么函数,excl中的乘法函数符号是什么
  19. Python数据挖掘项目:构建随机森林算法模型预测分析泰坦尼克号幸存者数据
  20. ubuntu服务器配置ruby环境(国内傻瓜版)

热门文章

  1. 勤于奋国外LEAD联盟赚钱注意事项
  2. WPF中的渐变色动画
  3. 简单说说 OSChina 的技术架构
  4. android怎么设置图片缩放比例,Android按比例缩放图片
  5. thinkpad e40 安装 nvidia显卡驱动之后
  6. MYSQL分区表如何保证数据唯一性
  7. 商品销售信息管理系统(大一C语言课设)
  8. lisp 标注螺纹孔_螺纹的规定画法及规定标注
  9. 汶川地震它救过我们的命 十年后我们让全国人民爱上它
  10. installshield 2020 R1中文版