高阶张量的分解与压缩

这篇博客介绍了高阶张量的奇异值分解和低秩近似。通过二阶张量的奇异值分解,引出低秩近似的基本思想,即保留前R'个最大奇异值。对于高阶张量,由于无法直接做奇异值分解,文章提出了使用幂级数方法求解最大奇异值和单秩分解,并扩展到完整的高阶奇异值分解。讨论了Tucker分解和CP分解的概念,强调了在高阶张量低秩近似中的应用和挑战。
摘要由CSDN通过智能技术生成

本次的博客也算是开启了自己张量网络部分的学习,大部分内容来自首都师范的张量网络暑期课,还有一部分来自博客。可能有些地方理解的有些问题,也欢迎大家指正。

首先,任意的二阶张量M可以通过奇异值分解写成U Λ \varLambda ΛV, Λ \varLambda Λ中的非零奇异值是该张量的奇异谱(非升序排列),极大化U第一个元素的实部,就可以实现唯一分解。

接着引入低秩近似的概念:
低秩近似在这里插入图片描述
低秩近似本质上是一个优化问题,给定一个小于R的秩R’,要求出一个矩阵M’使其和M之间的范数最小。

实际上,当我们得到M的奇异值分解后,这个问题就已经可解了,我们只要保留前R’个奇异值并保留他们的奇异向量 u,v,这样构成的矩阵M’就是秩为R’的所有矩阵中的最优解。

然而这只是二阶张量的结果。下面我们逐步给出高阶张量做低秩近似的结果(高阶我们暂时没办法直接做奇异值分解,所以我们并不是像二阶这样,先给出奇异值的分解结果,然后一劳永逸给出所有低秩近似的最优解。高阶部分,我们从单秩分解说起(就是秩为1的低秩近似))

二阶张量的单秩分解结果是由最大奇异值和其对应的两个奇异向量构成的。
抛开奇异值分解的方法,实际上我们可以采用迭代的方法(或者说幂级数的方法)来求最大的奇异值与相应的奇异向量(在张量网络里面,很多算法求最大本征值的方法也是这种幂级数的方法,而不是直接把方阵做本征值分解)。

首先,我们有一个恒等式:
在这里插入图片描述
将M的奇异值分解代入,这两个恒等式是显然的(左奇异向量乘上矩阵M等于奇异值乘上右奇异向量)。任意给定初始点(u0,v0),不断带入这两个恒等式进行迭代更新就能稳定收敛到最大的奇异值与奇异向量(稳定不动点)。

我们将上述的幂级数方法延拓到高阶:
在这里插入图片描述
拓展的方法如图所示,需要注意的是这里的运算是张量的缩并运算(前述二阶张量的乘法本质上就是缩并运算在二阶的特例)。

以上都是单秩分解,下面我们把完整的奇异值分解延拓到高阶:
在这里插入图片描述在这里插入图片描述
我们对上述的方法做几点说明:

  • 第二步的本征值分解是能够完成的,因为得到的键约化矩阵是实对称阵(如果张量T有复数,求键约化矩阵要做一个共轭)
  • 第三步中得到的核张量对应的键约化矩阵是一个非升序排列的半正定对角阵,满足tucker分解的要求。证明这一点的过程中注意I,J,K本身是T构成的键约化矩阵,而U,V,W是他们的特征向量构成的矩阵,注意到这一点,接下来直接把式子带进去疯狂缩并就完了
  • tucker 秩是I,J,K的秩构成的一组秩向量,也是张量T在各个纬度上的秩,也就是n-rank秩,具体的定义是rankn​(T)=rank(T(n)​),T(n)表示的是张量T切片构成的矩阵
  • 这里只说明了如何做高阶奇异值分解(对应的是低阶奇异值分解),至于低秩近似,道理是相同的,从I,J,K开始做秩的裁剪。但是这种近似的方法并不是很好,一种更优的方法是HOOI算法

这里我们初步讲完了张量分解的内容,还有一些概念性的东西,比如slice,fiber,超对角,超对称,高阶张量矩阵化(就是前面的T(n),稍微提一下,其他资料里面会看到张量缩并运算的矩阵化形式,那个矩阵化公式是好理解的,大家自己算一算就能明白)等等,这些概念大家可以去看上面的那个博客,大佬解释的很全面。

最后提一点关于cp分解的,cp分解是把一个张量写成多个单秩张量和的形式(cp秩的概念也可以由此得到),不过这个分解方法还有几个问题要解决,比如如何求cp秩,如何实现最优的低秩近似?这里不过多赘述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值