AI智能
改变未来

Paper notes(3):Tensor-Train Decomposition

Paper notes(3):Tensor-Train Decomposition

  • 1.文章的主要内容
  • 2.TTD模型
  • 3.TTD的算法

本文只是个人用于记录论文学习笔记,如有写错的地方还望各位大佬批评指正。

1.文章的主要内容

给出了一种简单的非递归的张量分解形式,避免了“维度诅咒”的影响,该分解形式得到的参数数量与正则分解(canonical decomposition)的参数数量相同,但更稳定,因为该种分解是基于辅助展开矩阵的低秩近似。

2.TTD模型

给定一个ddd维张量BBB,如果想用张量AAA近似张量BBB,则AAA的每一个元素可以表示为:
A(i1,i2,…,id)=G1(i1)G2(i2)…Gd(id)(1.2)\\tag{1.2} A(i_1,i_2,…,i_d)=G_1(i_1)G_2(i_2)…G_d(i_d)A(i1​,i2​,…,id​)=G1​(i1​)G2​(i2​)…Gd​(id​)(1.2)

其中Gk(ik)G_k(i_k)Gk​(ik​)是一个rk−1×rkr_{k-1}\\times r_krk−1​×rk​矩阵,因为A(i1,i2,…,id)A(i_1,i_2,…,i_d)A(i1​,i2​,…,id​)代表的是一个元素,所以r0=rd=1r_0=r_d=1r0​=rd​=1。公式(1.2)可以改写为索引的形式:实际上Gk(ik)G_k(i_k)Gk​(ik​)是一个大小为rk−1×nk×rkr_{k-1}\\times n_k\\times r_krk−1​×nk​×rk​的三维数组,它的某个元素Gk(αk−1,nk,αk)=Gk(ik)αk−1αkG_k(\\alpha_{k-1},n_k,\\alpha_k)=G_k(i_k)_{\\alpha_{k-1}\\alpha_k}Gk​(αk−1​,nk​,αk​)=Gk​(ik​)αk−1​αk​​。因此TTD的索引形式可以表示为:
A(i1,i2,…,id)=∑α0…,αdG1(α0,i1,α1)G2(α1,i2,α2)…Gd(αd−1,id,αd)(1.3)\\tag{1.3} A(i_1,i_2,…,i_d)=\\sum_{\\alpha_0…,\\alpha_d} G_1(\\alpha_0,i_1,\\alpha_1)G_2(\\alpha_1,i_2,\\alpha_2)…G_d(\\alpha_{d-1},i_d,\\alpha_d)A(i1​,i2​,…,id​)=α0​…,αd​∑​G1​(α0​,i1​,α1​)G2​(α1​,i2​,α2​)…Gd​(αd−1​,id​,αd​)(1.3)

注:以上内容来自于原文的翻译,以下为个人的简单理解


上图是TTD的一个图解,虽然图解给出的rk−1,rk,nkr_{k-1},r_k,n_krk−1​,rk​,nk​的方向与上文中的不同,但解释的道理是相同的。图中的pkp_kpk​即为上文中的nkn_knk​,代表着被分解张量第kkk维的大小。结合上图和公式(1.2),我们可以看出Gk(ik)G_k(i_k)Gk​(ik​)是三维张量GkG_kGk​的一个lateralslicelateral \\ slicelateralslice,即一个大小为rk−1×rkr_{k-1}\\times r_krk−1​×rk​矩阵,总的来说矩阵AAA的某个元素A(i1,i2,…,id)A(i_1,i_2,…,i_d)A(i1​,i2​,…,id​)就是其每一个下标对应的GkG_kGk​张量的第iki_kik​个lateralslicelateral \\ slicelateralslice的乘积。

3.TTD的算法

参考文章:
1. Tensor-Train Decomposition
2. 张量分解(四):Tensor-train Decomposition

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Paper notes(3):Tensor-Train Decomposition