2016-Tensor Ring Decomposition-论文笔记

找个地方记录一下

近年来,张量网络已成为解决大规模优化问题的有力工具。最流行的张量网络之一是张量Train (TT) 分解,它充当复杂张量网络的构建块。然而,TT 分解高度依赖于张量维度的排列,因为它在潜在核心上具有严格的顺序多线性乘积,这导致难以找到最佳 TT 表示。

在本文中,我们引入了一种基本的张量分解模型,通过在一系列低维核上的循环多线性积来表示大维张量,可以用图形将其解释为三阶张量的循环互连,因此称为张量环(TR)分解。 TR 模型的主要优点是循环维数置换不变性,这是通过使用迹操作平等处理潜在核获得的。

TR模型可以看作是TT分解的线性组合,从而获得强大的泛化表示能力。

为了优化潜在核,我们提出了四种基于顺序 SVD、ALS 方案和逐块 ALS 技术的不同算法。此外,研究了TR模型的数学性质,表明使用TR表示可以有效地执行基本的多线性代数,并且可以方便地将经典张量分解转换为TR表示。最后,对合成信号和真实世界数据集进行了实验,以评估不同算法的性能。

最近,被认为是张量分解的泛化的张量网络已成为分析大规模张量数据的潜在强大工具。 主要概念是将一个大规模的优化问题转化为一组小规模的易处理优化问题,这可以通过将一个高阶张量表示为相互连接的低阶张量来实现。 最流行的张量网络是张量序列/矩阵乘积状态 (TT/MPS) 表示,它需要 O(dnr^2) 参数,因此可能允许有效处理更高维张量。 另一个重要的张量网络是分层 Tucker (HT) 格式,其中 Tucker 类型的递归分层结构用于低维表示。这些张量格式的有用性目前正在研究各种高维问题。 例如,TT 格式已成功应用于数值分析中不同类型的大规模问题,其中包括瑞利商的优化,例如密度矩阵重整化群 (DMRG) 、 特征值或奇异值问题 以及线性系统的近似解,例如交替最小能量 (AMEn) 。 HT 和 TT 格式的一个主要优点在于,高阶张量的表示减少到最多为 3 阶的 d 张量。因此,HT/TT 格式因此在形式上不受维数的影响。 同时,已经提出了新的张量格式,例如 量化张量序列
(QTT) 和 QTT-Tucker ,它们也已应用于大规模优化问题。

这些张量格式的有用性目前正在研究各种高维问题[35],[36]。 例如,TT 格式已成功应用于数值分析中不同类型的大规模问题,其中包括瑞利商的优化,例如密度矩阵重整化群 (DMRG) [37]、[38]、 特征值或奇异值问题 [39]、[40] 以及线性系统的近似解,例如交替最小能量 (AMEn) [41]。 HT 和 TT 格式的一个主要优点在于,高阶张量的表示减少到最多为 3 阶的 d 张量。因此,HT/TT 格式因此在形式上不受维数的影响。 同时,已经提出了新的张量格式,例如 量化张量序列
(QTT) [42]、[43] 和 QTT-Tucker [44],它们也已应用于大规模优化问题 [41]、[45]、[46]。

TT 分解的局限性包括 i) 对 TT-ranks 的约束,即 r1 = rd+1 = 1,导致表示能力和灵活性有限; ii) TT-ranks 总是有一个固定的模式,即边界核较小,中间核较大,这可能不是特定数据张量的最佳选择; iii) TT 中核的多线性乘积必须遵循严格的顺序,使得优化的 TT 核高度依赖于张量维数的排列。 因此,找到最佳排列仍然是一个具有挑战性的问题。

考虑到 TT 分解位置的这些限制,我们引入了一种新型的张量分解,它可以被认为是 TT 模型的推广。首先,我们考虑放宽 TT 秩上的条件,即 r1 = rd+1 = 1,从而增强表示能力。其次,应该缓解核之间多线性乘积的严格排序。
第三,应通过使模型对称来对核进行平等对待。为此,我们发现这些目标可以通过简单地使用迹操作来实现。
更具体地说,我们认为每个张量元素都是通过对核的顺序多线性乘积执行迹操作来近似的。由于迹操作确保了标量输出,因此不需要 r1 = rd+1 = 1。此外,由于迹操作的特性,可以对核进行循环移位和等效处理。
通过使用图形说明(见图 1),这个概念意味着核心是圆形互连的,看起来像一个环形结构。因此,我们将此模型称为张量环 (TR) 分解,并将其核心称为张量环 (TR) 表示。尽管在少数文献 [29]、[42]、[53] 中提到了类似的概念并将其称为 MPS 或张量链,但算法和属性尚未得到很好的探索。在本文中,将研究 TR 分解的优化算法,其目标是用 TR 格式表示高阶张量,这对于大规模多线性优化问题具有潜在的强大功能。

TENSOR RING MODEL

张量环 (TR) 分解旨在通过循环相乘的 3 阶张量序列来表示高阶(或高维)张量。 具体来说,令T为大小为n1×n2×···×nd的d阶张量,记为T ∈ Rn1×···×nd,TR表示是将其分解为一系列潜在张量Zk ∈ R^ {rk× nk×rk+1} , k = 1, 2, . . . , d, 可以用下式给出的逐元素形式表示

在这里插入图片描述

T(i1, i2, . . . . , id) 表示张量的第 (i1, i2, . . . , id) 个元素。 Zk(ik) 表示潜在张量 Zk 的第 ik 个横向切片矩阵,其大小为 rk × r{k+1}。 请注意,任何两个相邻的潜在张量 Zk 和 Zk+1 在其对应的模式上具有相同的维度 rk+1。 最后一个潜在张量 Zd 的大小为 rd×nd×r1,即 rd+1 = r1,这确保了这些矩阵的乘积是一个方阵。 这些先决条件在 TR 分解中起着关键作用,从而产生了一些重要的数字属性。 为简单起见,潜在张量 Zk 也可以称为 kth-core(或节点)。 核的大小 rk, k = 1, 2, . . . , d, 由向量 r = [r1, r2, . . , rd]T 收集并表示, 称为 TR-ranks。 从 (1) 中,我们可以观察到 T(i1, i2, … , id) 等价于矩阵 {Zk(ik)} 的序列乘积的迹。 为了进一步描述这个概念,我们还可以用索引形式重写(1),

在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Tensor Train (TT) 分解是一种高效的张量分解方法,可以用于压缩和近似大规模张量。在MATLAB中,可以使用Tensor Toolbox来实现Tensor Train分解。 首先,需要安装和导入Tensor Toolbox。可以在MATLAB官方网站上找到Tensor Toolbox的安装和导入方法。 Tensor Toolbox提供了用于处理张量的函数,包括进行张量乘法、转置和分解的函数。Tensor Train分解是由tt_tensor类表示的,可以使用Tensor Toolbox提供的函数创建和操作这种类型的张量。 要实现Tensor Train分解,可以按照以下步骤进行: 1. 创建一个tt_tensor对象,该对象表示原始张量。 例如,可以使用tt_tensor类的构造函数创建一个3阶张量: T = tt_tensor(rand([2, 3, 4])); 这将创建一个大小为2x3x4的张量,并将其转换为TT形式。 2. 使用Tensor Toolbox提供的函数来对TT张量进行各种操作,例如转置、乘法等。 例如,可以使用tt_transpose函数对张量进行转置: T_transposed = tt_transpose(T); 3. 使用Tensor Toolbox提供的函数进行Tensor Train分解。 Tensor Toolbox提供了几种不同的张量分解算法,例如HOSVD和TT-SVD。 例如,可以使用tt_tensor函数将原始张量分解为TT形式: T_tt = tt_tensor(T, 'ranks', [1, 2, 3]); 这将返回一个具有指定秩的Tensor Train分解。 4. 可以使用Tensor Toolbox提供的函数对分解的TT张量进行操作,例如逐个元素的访问、转换为其他格式等。 例如,可以使用tt_matrix函数将TT张量转换为矩阵形式: T_matrix = tt_matrix(T_tt); 这是一个简单的示例,说明如何使用MATLAB和Tensor Toolbox实现Tensor Train分解。实际上,Tensor Train分解可能需要更多的步骤和方法,在处理大规模张量时可能会涉及更多的复杂性。这取决于具体的应用和需求,可以使用Tensor Toolbox提供的各种函数和工具来实现特定的操作和算法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值