1. 引言
随着人工智能和大数据技术的飞速发展,数据规模和复杂性呈指数级增长,传统的向量和矩阵形式的数据表示已无法有效捕获高维数据的内在结构。在此背景下,张量作为高维数据的自然表达形式,广泛应用于推荐系统、图像处理、自然语言处理、生物信息学等领域。然而,大规模张量数据的处理和分析面临计算复杂性高、存储成本昂贵等挑战,这对高效算法的设计提出了更高要求。
在高阶张量分析的研究中,张量积是构建代数运算和分解模型的核心工具。传统的张量积形式包括模积(tensor mode product) [1]-[3]、哈达玛积(Hadamard product) [4] [5]和爱因斯坦积(Einstein product) [6] [7]等。虽然这些张量积在特定场景中具有一定优势,但在处理多维数据的代数一致性和计算效率方面存在局限性。2011年,Kilmer等人[8]首次提出基于三阶张量间的t-积(t-product),作为一种基于离散傅里叶变换(DFT)的创新张量积定义,近年来引起了广泛关注。t-积在多维数据处理和张量代数中具有独特优势[9]。首先,t-积能够利用离散傅里叶变换将卷积操作简化为逐元素乘法,大幅降低计算复杂度,同时保留张量的多维结构。张量t-积的突出优势之一在于它支持一系列线性代数操作,例如t-SVD、t-张量逆等,为张量分解和低秩逼近提供了强有力的工具。张量在不同应用广泛的领域,特别是彩色图像、视频恢复或压缩[1] [2] [5] [6] [10]-[17]。张量在现代科学中的其他应用,如信号处理[7] [18],数据挖掘[8],张量互补问题,计算机视觉,更多细节见[9]。最近的张量方法被用于数值求解[19]中的偏微分方程。
在图像处理中,随着图像数据维度的增加,尤其是在处理彩色图像、视频以及其他多维数据时,传统的线性模型往往难以准确捕捉复杂的图像结构。当图像数据不完整、受损或被噪声污染时,求解过程可能无法获得稳定和精确的结果,这时张量求解的离散化过程便可能面临不适定问题。本文主要研究彩色图像与视频恢复等图像处理中的大规模线性离散问题[1] [10] [11] [20]-[22],可将其表述为
(1.1)
或张量最小二乘问题
(1.2)
其中
和
为已知三阶张量,
为张量间可逆线性变换L的乘积[23],
表示张量的Frobenius范数。若L为快速傅里叶变换(FFT)时,
为t-积。
2. 预备知识
对于三阶张量
,可以通过不同的分割方式得到其各类切片,本文使用
或
表示张量
的第k个正面切片,
或
表示张量
的第j个侧面切片,
表示为张量管,这几种张量结构如图1所示:
(a) (b) (c)
Figure 1. (a) frontal slices
, (b) lateral slices
, (c) tube fibers
图1. (a) 正面切片
,(b) 横向切片
,(c) 管
在本节预备一些t-积的定义和性质,是基于离散傅里叶变换(DFT)所定义的,给定向量
,假设
是
DFT矩阵,那么
其中
的元素是复数形式,其分量被定义为
这里
。
给定
是一个三阶张量,使用三个算子bcirc、unfold和fold,即
定义2-1 张量
和
之间的t-积被定义为
对于三阶张量
,其第j个张量侧面切片为
,也称侧面切片为张量列,则有
定义2-2 由三阶张量
和张量列
生成的k维tKrylov张量,定义如下
设
是在张量
的所有3-模管上应用DFT得到的张量。用Matlab命令fft得到
,并运用快速傅里叶反变换ifft得到。得益于张量t-积的特殊循环结构,可将两个张量的t-积投影到傅里叶变换域中展开计算,即对于两个尺寸合适的张量
和
可在MATLAB中快速计算,如算法2-1所示。
算法2-1. 基于fft的t-积 |
输入:
和
输出:
; For
End |
定义2-3 若尺寸为
的张量
的第1个正面切片是一个单位矩阵,其他索引位置元素都为零,则称张量
为t-积下的单位张量。
特别注意,管标量
表示
的单位张量,其形式为一个管状向量,除索引(1, 1, 1)的元素为1外,其他位置都为0。
定义2-4 若
为正交张量,则满足
。
若
是一个正交张量,则对任意满足尺寸的张量
都有
或
。
定义2-5 若张量
可逆,则张量
的逆记作
,满足

对于非零张量
,可以将其分解为一个归一化张量
与管标量
的t-积,如下
算法2-2为张量列的归一化分解过程。
算法2-2. 归一化(Normalization) |
输入:非零张量
, tol 输出:
,
(
), 且
. 1. 计算 2. 对于
3. 计算
4. 如果
则 计算
5. 否则 计算 6. 计算 |
张量QR (tQR)的分解由Kilmer等人[9]描述。
的QR分解表示为
其中张量
是部分正交的,
的每个正面切片是一个上三角形。算法2-3的tQR分解是在傅里叶域实现tQR分解。
算法2-3. tQR分解[1] |
输入:
输出:
For
End , . |
3. 张量全局-GMRES算法
首先介绍了El Guide等人[20]使用的其他定义,设三阶张量
与向量
,El Guide等人将定义了一个积
为
另外,若使三阶张量
表示为
则
定义3-1 设
,那么
的管秩是其非零傅里叶系数的个数。如果
的秩等于
,它是可逆的,用
表示
的逆:
,其中
是单位张量管。
考虑张量线性方程组
(3.1)
这里
和
。由张量
和
生成的k维Krylov子空间表示为
可得到出张量全局-Arnoldi算法,如算法3-1所示。
算法3-1. 张量全局-Arnoldi算法 |
输入:
输出:k维Krylov子空间
;
For
For
End
If
Break EndIf
. End |
由算法3-1得到的张量
是
张量,且
是
的元素所组成的
的上海森伯格矩阵(Hesenberg),
是由
删去最后一行所得到的矩阵。将
表示矩阵
的第j列,则
命题3-1 设
是由
定义的张量,其中
由张量全局-Arnoldi算法定义,那么对任一
都有
设
是一个任意的初始猜测,则相应的剩余残差张量
。若经过m次迭代后得到的近似解
,则相应地将问题(3.1)转换为寻找最小化问题的最优解:
设
,然后
则得到问题
(3.2)
事实上,由于
和
,
是
中的第一个标准基向量,利用命题3-1,得到
最后
其中
综上得到了将大规模问题(3.1)转换为小规模问题张量全局-GMRES算法(算法3-2)。
算法3-2. 张量全局-GMRES算法(G-GMRES) |
输入:
, itermax, tol, 子空间维数m. 输出:问题(3.1)近似解
. For
until itermax 计算
使用张量全局-Arnoldi算法用计算
和
. 计算.
If
Break End If
End |
4. 张量Krylov子空间算法
对问题(1.1)的直接求解所花费的代价会随着系统的维度增加而呈现几何倍的增长,可能会导致程序崩溃,因此将问题(1.1)转换为小规模问题是可能是一种有效的方式。本文发展了形式问题(1.1)的最小二乘问题的t-积Arnoldi (t-Arnoldi)和t-积GMRES方法。该方法将用于说明相对于矢量化或矩阵化张量方程的一般情况下,张量化的潜在优势。
对于问题(3.1)中
,可视为
个独立的子问题,即
令
,则有
(4.1)
其中
中的张量列两两相互正交,且
。问题(4.1)的正规方程为
(4.2)
则可以得到问题(4.1)的解为
(4.3)
4.1. 张量Arnoldi算法
首先介绍一个带t-Arnoldi过程的算法。将大规模问题(3.1)简化为小规模问题。算法4-1所描述的t-Arnoldi过程将张量
简化为一个上海森伯格张量(tHessenberg),其每个正面切片都是一个上海森伯格矩阵。
算法4-1. t-Arnoldi分解算法 |
输入:
输出:k维Krylov子空间
For
For
End End |
假设t-Arnoldi过程的步数小以避免分解,当k选择足够小以使得对任何次对角管标量
都不可逆,则称算法4-1为t-Arnoldi分解算法。
其中
而
形成t-Krylov子空间的标准正交张量基。
4.2. 张量GMRES算法
在t-Arnoldi分解算法中,生成了张量列正交的张量
,若将
的列作为子空间的基,则有
且
,则
由于
,可以得到
其中
是一个管标量,除其索引位置(1, 1, 1)元素为1外的其他位置元素都为0。又因为
张量列正交,那么可以将求解问题(4.1)转化为求解
将张量GMRES算法的过程在算法4-2中进行描述。
算法4-2. 张量GMRES算法 |
输入:
, itermax, tol 输出:问题(3.1)近似解 .
For
计算
For
until 收敛 使用张量Arnoldi算法用计算
和
. 计算.
End For
End For |
5. 数值实例
本节的数值实例的实验部分的环境配置均如表1所述。
Table 1. System configuration specifications
表1. 环境配置
环境 |
配置 |
CPU |
Inter(R) Core(H) i7-11800H @2.30GHz |
GPU |
NVIDIA GeForce RTX 3060 |
操作系统 |
WINDOWS10 |
内存 |
16 GB |
MATLAB |
2018a |
例子5.1. 数值恢复
本例比较张量全局-GMRES算法和张量GMRES算法两种算法在对称正定张量系统中的计算性能,在MATLAB中Hansen [24]的正则化工具中的函数baart生成矩阵
设
,张量
满足
的正面切片的条件数都大于1015。因此张量
是高度离散化的,令真实数据
的元素全为1,并通过
生成数据张量。
经典的最小二乘问题为
(5.1)
这里的
是模糊矩阵,而
是
向量化后的结果,问题(5.1)是问题(1.2)矩阵化后的结果。
表2给出了GMRES、G-GMRES和tGMRES算法在数字恢复实验中得到的解的相对误差,所需的迭代次数(子空间维数k),以及计算时间。表中的数据显示的是GMRES算法求解经典最小化问题(5.1),以及G-GMRES和tGMRES算法求解t-积结构的问题(1.2)的数据恢复情况。在数字恢复实验中,令收敛的条件是相邻两次迭代解的相对误差小于1e−06,则GMRES算法得到解与真解的相对误差要高于G-GMRES和tGMRES算法,这是因为G-GMRES和tGMRES算法的t-积结构保持了数据的空间结构性,而G-GMRES算法使用的时间多于tGMRES算法,且tGMRES在构建子空间时,构建的子空间维数更小,得到稳定解时的迭代解的相对误差更小。
Table 2. Performance comparison of G-GMRES and tGMRES algorithms in digital restoration experiment
表2. G-GMRES和tGMRES算法在数字恢复实验中的性能比较
算法 |
迭代数 |
相对误差 |
CPU时间(s) |
GMRES |
213 |
8.71e−06 |
103.23 |
G-GMRES |
65 |
2.03e−06 |
346.45 |
tGMRES |
44 |
8.25e−07 |
236.32 |
例子5.2. 彩色图像恢复
此例显示了模糊彩色图像辣椒在G-GMRES和tGMRES算法下的恢复情况。原始图像数据在MATLAB中存储为张量
,将其转换为张量列的形式存储,即
,其中
的第j个张量列的数据由
中的第j个正面切片的数据构成。对于模糊张量
,定义为
令
,其中张量
的前12个正面切片的条件数大于107,其余切片的条件数皆为无限。
表3显示了在例子5.2的彩色图像恢复实验中,G-GMRES和tGMRES算法的性能比较,包括相对误差和计算时间。在彩色图像恢复实验中,可以得到和例子5.1类似的结果,而G-GMRES算法涉及到扁平化,tGMRES算法相较于G-GMRES算法始终保持t-积结构,保持了彩色图片三通道间的可能存在的空间结构性,这使其得到解时的迭代解的相对误差更小。
Table 3. Performance comparison of G-GMRES and tGMRES algorithms in color image restoration experiment
表3. G-GMRES和tGMRES算法在彩色图像恢复实验中的性能比较
算法 |
相对误差 |
CPU时间(s) |
G-GMRES |
6.32e−06 |
862.56 |
tGMRES |
5.11e−07 |
635.24 |
原图 模糊图 G-GMRES恢复图 tGMRES恢复图
Figure 2. The restoration effect of color images
图2. 彩色图像的恢复效果图
图2给出了彩色图像辣椒和被模糊的图像,以及使用G-GMRES和tGMRES算法得到的恢复图像。
6. 结论
传统的图像恢复方法通常需要将模糊图像进行矩阵化或者向量化,这可能破坏了图像各个通道间可能存在的空间结构性,从而导致恢复质量不佳,而全局构建子空间的方法会占用更多的存储空间,在计算时会将误差扩大,使得解的质量下降。张量t-积结构会避免图像进行矩阵化或者向量化,且张量切片形式构建的子空间,占用的空间更少,计算时间更短。
基金项目
资助项目1:KYZK2024010:图像处理中的张量离散不适定问题及其高性能迭代算法研究。
资助项目2:KYZK2024027:变分不等式与不动点问题非单调步长的惯性投影算法。
资助项目3:KYZK2024003:变分不等式与不动点问题在NASH群体博弈的应用研究。
NOTES
*通讯作者。