1. 引言
在科学与工程计算领域,求解大规模线性方程组是一个极为常见且关键的任务。这类方程组广泛出现于诸如信号处理、医学成像、机器学习以及计算机图形学等众多重要应用场景之中。传统的直接求解方法,像高斯消元法,虽然在理论上能够精确地求解线性方程组,但当面对大规模甚至超大规模的方程组时,其计算复杂度会急剧增加,所需的计算时间和存储空间常常超出实际可承受的范围,导致求解过程变得极为耗时且在很多情况下难以实现。迭代法应运而生,成为解决大规模线性方程组的重要途径。
我们考虑大规模的线性方程组的解:
(1)
其中
,
,
为未知向量。Kaczmarz算法[1]是一种非常流行的求解此类方程的迭代投影方法,它是作用方法的一种特例,并被广泛用于医学图像重构[2]、信号处理[3]和分布式计算[4]等问题中。如果我们用
表示矩阵
的第
行,
表示向量
的第
项,那么给定一个初始估计
,Kaczmarz方法可以定义为
这里的上标
表示一个向量或矩阵的转置,
表示欧式范数,根据
选择编号为
的目标行。
考虑到具体应用的特殊数据结构和算法实现的计算机体系结构,许多研究人员提出了块式迭代方法。其中块Kaczmarz [5]方法是这些方法的典型代表。在块Kaczmarz方法中,解空间由系数矩阵
的多行生成。具体来说,在每次迭代
时,从矩阵
的行指标的一个分区
中循环地选择一个子集
,则下一个近似解可通过以下方案得到:
其中,
表示以
为索引的
行子矩阵,
,上标
表示一个矩阵的Moore-Penrose逆。
块Kaczmarz方法的实现与表现很大程度上取决于由划分
中的块
所索引的子矩阵
的性质。在合适的块划分情况下,块Kaczmarz方法可能具有更快的收敛速度。因为每次投影利用了一个块中的多个方程的信息,相比于经典Kaczmarz方法每次只使用一个方程,它能够更全面地调整近似解,使其更快地接近真实解。例如,当方程组中存在一些方程之间相关性很强的情况,将这些相关方程划分为一个块,可以更有效地利用它们之间的信息来加速收敛。
计数草图[6] [7]是一种在数据处理和数值线性代数等领域广泛应用的随机线性变换技术。它的主要目的是对高维数据进行降维处理,同时保留数据的一些关键特性。在数值线性代数中,对于大型线性方程组
,其中
是一个大型矩阵,计数草图可以用于加速迭代求解算法。例如,通过对矩阵或向量等进行计数草图变换,在保证一定求解精度的前提下,减少计算量,加快收敛速度。
受文献[8]中使用计数草图加速最大加权残差Kaczmarz方法的启发,本文将计数草图与平均块Kaczmarz方法[9]相结合,提出了计数草图平均块Kaczmarz方法。
本文的结构安排如下:第一节分析了本文的研究背景;第二节具体讲述了计数草图平均块Kaczmarz方法的创新点和算法步骤;第三节进行数值实验分析。
2. 计数草图平均块Kaczmarz方法(CS-RaBK)
随机块Kaczmarz方法[10]需要求解子矩阵的摩尔–彭罗斯伪逆,这个计算耗时较长。因此,为了避免这一缺点,引入了平均块技术,Necoara [9]提出了随机平均块Kaczmarz方法。随机平均块Kaczmarz方法的迭代相当于随机Kaczmarz方法在不同方向上以一定步长进行更新的凸组合。随机平均块Kaczmarz的算法描述如下:
算法1. 随机平均块Kaczmarz方法(RaBK)
输入:
,
,初始值
,步长序列
,权重序列
1) 令
直到满足停止标准为止 2) 绘制样本
并更新 3)
4) 结束 |
这里,
是在第
次迭代时所选择的行对应的索引集合,
表示在集合
的索引子集的集合上的概率分布。
在该方法中,步长序列存在三种选择方式。其一为常数步长,即在整个迭代过程里,步长始终固定不变;其二是自适应步长,它会依据迭代过程中的相关信息,例如残差大小、迭代进展状况等动态地对步长加以调整;其三则是切比雪夫步长,此步长依据切比雪夫多项式的特性来确定,通过预估系数矩阵的特征值范围,将矩阵变换至适宜区间,进而构建步长序列。本文第三节主要对前两种步长的随机平均块Kaczmarz方法进行加速研究。
定义1 [6] 计数草图变换:定义一个计数草图变换为
。这里,
是一个
随机对角矩阵,每个对角项独立选择为
或
的概率相等,
是一个
二进制矩阵,其中
,其余所有项为
,其中
是一个随机映射,使得对于每个
,
,每个
的概率为
。
尽管进行了降维,计数草图能够在一定程度上保留数据的结构特性。例如,在对高维数据进行聚类分析时,计数草图得到的低维表示仍然可以大致反映原始数据的聚类结构。这是因为计数草图在构造过程中,通过随机的哈希和符号分配,使得数据中的重要信息得以以一种近似的方式保留下来。
在上面算法的基础上,本文将计数草图技术与随机平均块Kaczmarz方法结合,产生新的方法。计数草图随机平均块Kaczmarz的算法描述如下:
算法2. 计数草图随机平均块Kaczmarz方法(CS-RaBK)
输入:
,
,初始值
,步长序列
,权重序列
1) 引入计数草图矩阵
,
2) 计算
,
3) 令
直到满足停止标准为止 4) 绘制样本
并更新 5)
6) 结束 |
引理1 [8]当计数草图随机平均块Kaczmarz方法的步长为常数步长或者自适应步长时,有以下收敛速率:
其中
表示给定矩阵的最小非零特征值,
。
定理1 [9]设
是一个计数草图矩阵,其中
,这里
,对于计数草图随机平均块Kaczmarz方法的序列
,以概率
,有
成立。
3. 数值实验
在本节中,我们考虑以下RaBK变体[7]:
1) 具有均匀采样和自适应外推步长的RaBK:
称为自适应步长的RaBK (用RaBK-a表示)。
2) 具有均匀采样和恒定步长的RaBK:
称为常数步长的RaBK (用RaBK-c表示)。
本节的所有实验都是在个人计算机上使用MATLAB R2022a进行的,计算机中央处理器为2.50 GHz (Intel(R) Core(TM) i5-12500H CPU),内存为16.00 GB,操作系统为Windows 11。值得注意的是,当测试方法运行50次时,“CPU”是平均运行时间。为了便于对测试方法的运行时间进行比较,我们定义
为了进一步比较收敛性能,在表1和表2中,分别列出了CS-RaBK-a方法、RaBK-a方法、CS-RaBK-c以及RaBK-c方法针对不同规模随机矩阵所耗费的CPU时间。在表3和表4中,分别列出了CS-RaBK-a方法、RaBK-a方法、CS-RaBK-c以及RaBK-c方法针对不同规模随机矩阵所需要的IT迭代次数。我们可以看到CS-RaBK-a方法和CS-RaBK-c方法对比RaBK-a和RaBK-c方法在运行时间上有显著提升,并且在我们的实验中,其
和
分别可高达3.4315和9.5128。这主要因为计数草图将矩阵
降维成
,大大减小了迭代过程的计算量,从而加快了运行时间。
Table 1. CPU numerical results of CS-RaBK-a, RaBK-a, CS-RaBK-c and RaBK-c for different sized matrices A
表1. CS-RaBK-a、RaBK-a、CS-RaBK-c和RaBK-c对不同规模矩阵A的CPU数值结果
|
|
CS-RaBK-a |
RaBK-a |
CS-RaBK-c |
RaBK-c |
|
|
0.0438 |
0.0750 |
0.0563 |
0.0828 |
|
0.0594 |
0.0828 |
0.0359 |
0.0672 |
|
0.0453 |
0.0734 |
0.0313 |
0.1016 |
|
0.0625 |
0.0875 |
0.0422 |
0.0703 |
|
|
0.0875 |
0.1422 |
0.0156 |
0.1484 |
|
0.1094 |
0.1547 |
0.0766 |
0.1844 |
|
0.0609 |
0.1172 |
0.0313 |
0.1203 |
|
0.0750 |
0.1328 |
0.0828 |
0.1906 |
|
|
0.0906 |
0.2844 |
0.0922 |
0.1953 |
|
0.0953 |
0.2438 |
0.1266 |
0.2000 |
|
0.1063 |
0.2266 |
0.1438 |
0.2031 |
Table 2. CPU numerical results of CS-RaBK-a, RaBK-a, CS-RaBK-c and RaBK-c for different sized matrices A
表2. CS-RaBK-a、RaBK-a、CS-RaBK-c和RaBK-c对不同规模矩阵A的CPU数值结果
|
|
CS-RaBK-a |
RaBK-a |
CS-RaBK-c |
RaBK-c |
|
|
0.1891 |
0.6000 |
0.2531 |
0.5766 |
|
0.2281 |
0.5531 |
0.2422 |
0.5844 |
|
0.2203 |
0.5250 |
0.1938 |
0.5750 |
|
0.2391 |
0.5984 |
0.2547 |
0.5719 |
|
|
0.3469 |
1.1904 |
0.3922 |
1.2594 |
|
0.5344 |
1.1547 |
0.5078 |
1.1938 |
|
0.5297 |
1.2422 |
0.5469 |
1.2047 |
|
0.4297 |
1.1813 |
0.4797 |
1.1719 |
|
|
0.6953 |
2.0109 |
0.7578 |
2.0703 |
|
0.7109 |
1.9313 |
0.7328 |
1.9578 |
|
0.8141 |
2.0266 |
0.8250 |
2.0516 |
Table 3. IT numerical results of CS-RaBK-a, RaBK-a, CS-RaBK-c and RaBK-c for different sized matrices A
表3. CS-RaBK-a、RaBK-a、CS-RaBK-c和RaBK-c对不同规模矩阵A的IT数值结果
|
|
CS-RaBK-a |
RaBK-a |
CS-RaBK-c |
RaBK-c |
|
|
733.9800 |
606.1700 |
226.1800 |
182.7800 |
|
513.5600 |
453.7800 |
211.3800 |
180.4800 |
|
433.2700 |
388.9700 |
205.7900 |
179.4700 |
|
376.8900 |
358.4500 |
198.6800 |
178.2400 |
|
|
2978.7600 |
2167.5000 |
564.3800 |
376.6700 |
|
1456.3300 |
1256.0700 |
458.9800 |
368.2400 |
|
736.2700 |
712.5600 |
389.7900 |
359.7400 |
|
627.5600 |
609.0400 |
376.3400 |
357.3600 |
|
|
1124.7000 |
1073.7800 |
587.3400 |
545.8000 |
|
808.7400 |
788.6000 |
564.0000 |
540.7000 |
|
715.7600 |
734.5800 |
559.6800 |
534.6200 |
Table 4. IT numerical results of CS-RaBK-a, RaBK-a, CS-RaBK-c and RaBK-c for different sized matrices A
表4. CS-RaBK-a、RaBK-a、CS-RaBK-c和RaBK-c对不同规模矩阵A的IT数值结果
|
|
CS-RaBK-a |
RaBK-a |
CS-RaBK-c |
RaBK-c |
|
|
716.8900 |
612.7000 |
227.5600 |
184.2200 |
|
423.6700 |
397.5600 |
203.8900 |
178.4700 |
|
349.3500 |
312.4600 |
189.6500 |
166.5800 |
|
314.6800 |
297.3900 |
156.4600 |
136.5400 |
|
|
1476.4600 |
1245.8900 |
455.7600 |
356.4500 |
|
768.3600 |
704.3600 |
399.7500 |
351.6400 |
|
568.5100 |
534.7700 |
380.2600 |
347.4500 |
|
526.5700 |
511.1600 |
374.2600 |
332.5400 |
|
|
1158.3800 |
1055.7600 |
598.5000 |
531.6200 |
|
859.2600 |
786.4600 |
565.0000 |
528.3700 |
|
706.6000 |
698.4700 |
552.2100 |
518.4900 |
4. 结束语
本文提出一种用于求解高度超定线性系统的计数草图随机平均块Kaczmarz方法,并通过数值实验验证了方法的可行性,从数值实验中发现CS-RaBK-a和CS-RaBK-c方法在CPU方面优于RaBK-a和RaBK-c方法,CS-RaBK-a方法在相同精度下所需的运行时间最少。