求解大型线性系统的K-均值最大残差块方法
K-Means Maximum Residual Block Method for Solving Large Linear Systems
摘要: 求解大型线性系统,带K-均值聚类的贪婪随机块Kaczmarz方法是近几年被广受关注的一类方法。本文在该方法基础上做了进一步的研究即在每一次迭代中优先消除残差向量中的最大块,构建了最大残差块Kaczmarz方法及其加速版本并进行了收敛性分析。数值实验证实了本文算法的有效性。
Abstract: The greedy random block Kaczmarz method with K-means clustering for solving large linear systems has been widely studied in recent years. This article conducted further research on this method by prioritizing the elimination of the largest block in the residual vector in each iteration, constructing the Kaczmarz method for the maximum residual block and its accelerated version, and conducting convergence analysis. Numerical experiments have confirmed the effectiveness of the algorithm proposed in this paper.
文章引用:黄柏顺. 求解大型线性系统的K-均值最大残差块方法[J]. 应用数学进展, 2024, 13(11): 5063-5072. https://doi.org/10.12677/aam.2024.1311489

1. 引言

随着数据科学的发展和现实世界问题规模的不断扩大,研究求解大型线性系统的有效算法成为一个重要的课题。具体地说,我们考虑如下形式的线性系统

Ax=b (1)

其中 A R m×n 是一个 m×n 矩阵,是已知向量且系统(1)是相容的。研究者通常使用选代方法求解此类问题。其中一种方法是Kaczmarz方法[1],该方法的选代形式如下:

x k+1 = x k + b ( i k ) A ( i k ) x k A ( i k ) 2 2 ( A ( i k ) ) T

其中 A ( i ) 表示A的第i行, b ( i ) 表示b的第i个元素。

对于任何向量 y n ( y ) ( j k ) 表示第k次选代的第j个元素,用 e i 表示除了第i个位置的元素为1其余为零的列向量,给定任意矩阵B,对于矩阵 B=( b ij ) m×n B ( j ) 表示B的第j列,如果B对称的,用 σ min ( B ) 表示B的最小奇异值,用 σ max ( B ) 表示B的最大奇异值。此外,我们定义[m]为 1,2,,m ,其中m是任意的正整数。我们考虑集合 V={ V 1 , V 2 ,, V k } 作为[m]的一个划分,如果索引集 V ,其中 i=1,2,,k ,满足条件 V i V j = ,其中 是空集。对于 ij ,以及 U i=1 k V i =[ m ] 。进一步地,给定一个行索引集 V ,我们使用 A V i 表示由 V 索引的矩阵A的子矩阵,使用 b ν i 表示向量b的子向量, A V i b V i 的大小由K-means聚类后的结果决定。

为了便于解释,我们简要说明一下K-means方法。K-means聚类是一种迭代算法,他将输入的数据X分为k组,每个项分配给具有最近质心的聚类。这些组 C={ C 1 ,, C k } 满足

v=1 k C v =X, C v C j =

其中 1vjk 是一个空集。

在K-means均值聚类中,聚类的数量由K决定,是我们指定的正整数。最初,k个聚类是从给定数据中随机选择的然后将一个项分配给质心最近的聚类所谓“最接近”就是指对它们的距离或者相似度最小。对于距离我们定义为:

r=1 k x i C r x i ρ r 2 2

其中 X={ x i } 是给定的数据,是聚类的质心, i=1,2,,m v=1,2,,k 。对于相似系数,我们使用以下标准来衡量项目对的接近度,该标准为

v=1 k x 1 C v | 1 x i T ρ v x i 2 ρ v 2 |

上述过程相继进行,直到不发生分配结束。Jiang和Zhanng在[2]中给出了完整过程。

一个列划分函数: V 1 , V 2 ,, V k 是由算法开始的初始步所定得到。 X=[ A,b ] C m×( n+1 ) 通过K-means方法我们得到关于Ab的行指标 { 1,,m } 的划分 T={ v 1 ,, v k } ,也就是: A=[ A v 1 ;; A v k ] b=[ b v 1 ;; b v k ] A ¯ v i b ¯ v i 分别是块 A v i b v i 相对应的簇中心, i=1,2,,k 。我们可以写成紧凑形式即: A ¯ =[ A ¯ v 1 ;; A v k ] b ¯ =[ b ¯ v 1 ;; b ¯ v k ]

求解线性和非线性问题在各个领域的应用都比较广泛,例如在自动控制[3] [4],医学[5] [6],数据测绘[7]-[10]等其他领域[11]-[15]。对于大型线性系统的求解方法。随机Kaczmarz算法是一种比较有效的解决办法。Strohmer和Vershynin [1]提出了随机Kaczmarz算法。遵循RK的方法,Bai和Wu提出了贪婪随机化Kaczmarz方法(RGRK) [16],在[2]中作者使用K-均值聚类来划分系数矩阵,同时采用了GRK中使用的贪心技术,构造了求解线性系统(1)的K-均值聚类确定的随机块Kaczmarz方法(RBK(k))。本文在(RBK(k))的基础上进行了改进。在每一次的选代中根据 i k =arg max 1ik b ν i A ν i x k 2 2 选择工作行块 V i k 确保首先消除最大的残差。在本文中提出了两种算法并给出了收敛性的证明,并在最后的数值实验部分与RBK(k)进行了比较,实验结果表明了算法的优越性。

2. 带K-均值最大残差块方法

算法1是文献[2]提出的随机块Kaczmarz方法,该算法如下。

算法1:带K-均值随机块Kaczmarz方法(RBK(k))

输入: A,b, x 0 ,k,l θ

输出: x l

1:对Ab使用K-均值方法,得到行索引 1,,m 的划分 { v 1 ,, v k } ,得到k A v i b v i i=1,2,,k A v i b v i 再以紧凑形式分配即: A ¯ =[ A ¯ v 1 ;; A ¯ v k ] b ¯ =[ b ¯ v 1 ;; b ¯ v k ]

2:对 j=1,2,,l

3:计算: ϵ j = θ b ¯ A ¯ x j 2 2 max 1 v j k { | b ¯ v j A ¯ v j x j | 2 A ¯ v j 2 2 }+ 1θ A F 2 ,θ( 0,1 )

4:令 U j ={ v j | | b ¯ v j A ¯ v j x j | 2 ϵ j b ¯ A ¯ x j 2 2 A ¯ v j 2 2 }

5:根据下面规则计算 r ˜ j ( v )

r ˜ j ( v ) ={ b ¯ v A ¯ v x j , v U j 0,

6:依概率 Pr( v= v j )= | r ˜ j ( v ) | 2 r ˜ j 2 2 选择 v j U j

7:计算 x j+1 = x j + A v j ( b v j A v j x j )

8:结束

算法2是在算法1的基础上,直接选择了具有最大残差的行块。

算法2:K-均值最大残差块方法

输入: A,b, x 0 ,k,l

输出: x l

1:使用K-均值方法对Ab处理,得到行索引 1,,m 的划分 { v 1 ,, v k } ,就有k A v i b v i i=1,2,,k

2:对 j=1,2,,l

3:选择 i j =arg max 1ik b ν i A ν i x j 2 2

4:计算 x j+1 = x j + A V i j ( b V i j A V i j x j )

5:结束

算法3是在算法2的基础上,避免了求伪逆的计算,大大节省了计算成本。

算法3:K-均值最大残差块的加速方法

输入: A,b, x 0 ,k,l

输出: x l

1:使用K-均值方法对Ab处理,得到行索引 1,,m 的划分 { v 1 ,, v k } ,就有k A v i b v i i=1,2,,k

2:对 j=1,2,,l

3:选择 i j =arg max 1ik b ν i A ν i x j 2 2

4:计算 α j =ω b ν i j A ν i j x j 2 2 A ν i j F 2 A ν i j T ( b ν i j A ν i j x j ) 2 2

5:计算 x j+1 = x j + α j A ν i j T ( b ν i j A ν i j x j ) A ν i j F 2

6:结束

3. 算法2和算法3的收敛性分析

引理1 [17]:设向量 z( A T ) ,则有 Az 2 2 σ min 2 ( A ) z 2 2

定理1:对于相容线性系统(1),由算法2选代生成的序列 { x j } i=0 收敛到 x = A b ,对于任意的 j0 ,满足下列关系:

x 1 x 2 2 ( 1 σ min 2 ( A ) σ max ( A v A v T )k ) x 0 x 2 2

以及

x j+1 x 2 2 ( 1 σ min 2 ( A ) σ max ( A v A v T )( k1 ) ) j ( 1 σ min 2 ( A ) σ max ( A v A v T )k ) x 0 x 2 2

证明:

x j+1 x = x j x + A V i j ( b V i j A V i j x j )

A V i j ( x j+1 x )= A V i j ( x j x ) A V i j A V i j A V i j ( x j x )=0

所以

A V i j A V i j ( x j+1 x )=0

由于

x j+1 x j = A ν i j A ν i j ( x x j )

所以

x j+1 x j x j+1 x 正交

x j+1 x 2 2 = x j x 2 2 A ν i j A ν i j ( x j x ) 2 2

下面第一个等式是根据引理1得到的

A ν i j A ν i j ( x j x ) 2 2 σ min 2 ( A V i j ) A V i j ( x j x ) 2 2 = 1 σ max 2 ( A V i j ) A V i j ( x j x ) 2 2 1 σ max ( A v A v T ) A ν i j ( x j x ) 2 2 = 1 σ max ( A v A v T ) b ν i j A ν i j x j 2 2 = 1 σ max ( A v A v T ) max 1ik b ν i A ν i x j 2 2

此外

b ν i j A ν i j x j+1 = b V i j A V i j ( x j + A V i j ( b V i A V i x j ) ) = b V i j A V i j x j A V i j A V i j ( b V i j A V i j x j ) = b V ij A V ij x j A V ij A V ij b V ij + A V ij A V ij A V ij x j = A V i j x A V i j A V i j A V i j x = A V i j x A V i j x =0

因此我们可以得到对于 j=1,2,

bA x j 2 2 = V i j V V i j1 b V i j A V i j x j 2 2 ( k1 ) max 1ik b V i A V i x j 2 2

j=0 我们还可以得到

bA x 0 2 2 k max 1ik b V i A V i x 0 2 2

因此有

max 1ik b V i A V i x j 2 2 1 k1 bA x j 2 2

综上所述,我们最终就可以得到

x j+1 x 2 2 x j x 2 2 1 σ max ( A v A v T ) bA x j 2 2 k1 = x j x 2 2 1 σ max ( A v A v T ) A( x j x ) 2 k1 x j x 2 2 σ min 2 ( A ) σ max ( A v A v T )( k1 ) x j x 2 2 =( 1 σ min 2 ( A ) σ max ( A v A v T )( k1 ) ) x j x 2 2

定理2:对于对于相容线性系统(1),设 ω( 0,2 ) 由算法3选代生成的序列 { x j } j=0 收敛到 x = A b ,对于任意的 j0 ,满足下列关系:

x 1 x 2 2 ( 1( 2ω ω 2 ) σ min 2 ( A ) σ max ( A v A v T )k ) x 0 x 2 2

以及

x j+1 x 2 2 ( 1( 2ω ω 2 ) σ min 2 ( A ) σ max ( A v A v T )( k1 ) ) j ( 1( 2ω ω 2 ) σ min 2 ( A ) σ max ( A v A v T )k ) x 0 x 2 2

证明:从算法3的第5步和 A V i j x j = b V i j ,我们可以得到

x j+1 x = x j x α j A ν i j T ( b ν i j A ν i j x j ) A ν i j F 2 = x j x α j A ν i j T A ν i j ( x j x ) A ν i j F 2 =( I α j A V i j T A v i j A V i j F 2 )( x j x )

对上述等式取欧几里得范数的平方,可以得到

x j+1 x 2 2 = ( I α j A V i j T A v i j A V i j F 2 )( x j x ) 2 2 = x j x 2 2 2 α j A V i j ( x j x ) A V i j F 2 + α j 2 A V i j T A V i j ( x j x ) A V i j F 2

α j 代入上式可以得到

x j+1 x 2 2 = x j x 2 2 ( 2ω ω 2 ) b ν i j A ν i j x j 2 4 A ν i j T ( b ν i j A ν i j x j ) 2 2 x j x 2 2 ( 2ω ω 2 ) b ν i j A ν i j x j 2 4 σ max 2 ( A ν i j ) b ν i j A ν i j x j 2 2 x j x 2 2 ( 2ω ω 2 ) b V i j A V j x j 2 2 σ max ( A v A v T ) = x j x 2 2 ( 2ω ω 2 ) max 1ik b V i A V i x j 2 2 σ max ( A v A v T )

第一个不等式成立因为 2ω ω 2 >0 ω( 0,2 ) 以及根据引理1可以得到的下面不等式

A V i j T ( b V i j A V i j x j ) 2 2 σ max 2 ( A V i j ) b V i j A V i j x j 2 2

从定理1的证明可以看出,对于 i=1,2, 有下面的式子成立0

x j+1 x 2 2 x j x 2 2 ( 2ω ω 2 ) bA x j 2 2 σ max ( A v A v T )( k1 ) x j x 2 2 ( 2ω ω 2 ) σ min 2 ( A ) x j x 2 2 σ max ( A v A v T )( k1 ) =( 1( 2ω ω 2 ) σ min 2 ( A ) σ max ( A v A v T )( k1 ) ) x j x 2 2

4. 数值实验

用算法1~3方法求解线性系统(1)的例子是由Matlab函数randn服从标准正态分布随机生成的矩阵,以及从文献中选取的5个具有应用背景的稀疏矩阵[18]。分别是Franz1、mk11 b2、Trefethen-300、gen4、p6000。

用IT表示选代次数,CPU表示运行时间(单位:秒),表格中的IT和CPU是循环运行5次取的平均值,为了更加直观地显示算法2和算法3较算法-1的有效性。我们定义 speed-up1= CPUofAlogrithm2 CPUofAlogrithm1 speed-up2= CPUofAlogrithm3 CPUofAlogrithm1 。对于选取的具有应用背景的矩阵,我们也给出了这些矩阵的基本信息,其中cond(A)和density(A)分别表示矩阵的条件数和稠密性。从表1可以知道该信息。我们定义 density= numberofnonzerosofanm×nmatrix mn 。在数值实验中,解向量是由 x 是由Matlab函数randn随机生成的,其元素是遵循独立的标准正态分布。根据右侧向量b,我们取 b=A x ,所有计算的初始向量从 x 0 =0 开始的。我们取RES表示选代值和真实值的相对误差设置停机准则为 RSE= x j x 2 2 x 2 2 10 6 或超过规定的最大选代次数 IT=200000

在下列表中我们分别列出了算法1~3方法的选代步数(IT)和计算时间(CPU)。对于随机生成的矩阵,从表2表3我们可以看出算法2和算法3的方法在选代步数(IT)和计算时间(CPU)都是优于算法1的方法。来自Davis和Hu工作的稀疏列满秩矩阵,我们可以从表4可以看出,算法2和算法3在比较的时候是有竞争力的。

Table 1. Specific matrix related information

1. 具体矩阵的相关信息

矩阵

Franz1

mk11-b2

Trefethen-300

gen4

p6000

m × n

2240 × 768

6390 × 990

300 × 300

1537 × 4298

2095 × 7967

density

0.003

0.003

0.052

0.0162

0.0012

cond(A)

7.13E+15

5.04E+15

1772.7

39.19

4710

Table 2. Randomly generated matrix A, numerical results for solving linear systems when m = 8000 and n is different

2. 随机生成矩阵A,当m = 8000,n不同时求解线性系统的数值结果

m × n

8000 × 100

8000 × 200

8000 × 500

8000 × 1000

8000 × 2000

RBK(100)

IT

4

18.2

65

148.6

867.9

CPU

0.3073

0.4655

0.7049

1.2617

3.444

MRBK(100)

IT

2

2

2

2

867.9

CPU

0.2594

0.406

0.7016

1.6365

3.444

MARBK(100)

IT

13.2

13

10

14.2

1711.6

CPU

0.1973

0.3211

0.5318

1.0977

2.4463

RBK(200)

IT

20.6

52

150.2

589.1

310

CPU

0.3884

0.5219

0.8537

1.142

1.8901

MRBK(200)

IT

2

2

2

1136.7

2

CPU

0.2792

0.457

0.7249

1.1415

1.8686

MARBK(200)

IT

17.2

15

12.6

1136.7

16.2

CPU

0.2111

0.3506

0.5740

1.1415

1.3085

RBK(400)

IT

68.2

140.6

289.2

1136.7

604

CPU

0.4616

0.705

1.3092

1.1415

2.9269

MRBK(400)

IT

2

2

2

1136.7

2

CPU

0.3494

0.4697

0.8575

1.1415

1.797

MARBK(400)

IT

19.2

19

14.2

1136.7

19

CPU

0.3

0.3436

0.5987

1.1415

1.3888

Table 3. Randomly generated matrix A, numerical results for solving linear systems when n = 8000 and m is different

3. 随机生成矩阵A,当n = 8000,m不同时求解线性系统的数值结果

m × n

100 × 8000

200 × 8000

500 × 8000

1000 × 8000

2000 × 8000

RBK(2)

IT

5

6

7

9

13

CPU

0.0655

0.1124

0.4639

1.1651

2.976

MRBK(2)

IT

5

6

7

9

14

CPU

0.0503

0.1108

0.3963

0.8916

2.4732

MARBK(2)

IT

8

9

12

17

27

CPU

0.043

0.0892

0.3412

0.8569

2.4311

RBK(4)

IT

10.4

12.8

18

22

34.6

CPU

0.0669

0.1505

0.5937

1.3685

3.3253

MRBK(4)

IT

8

9.6

12

15.2

23.2

CPU

0.0491

0.0992

0.4762

0.9208

2.539

MARBK(4)

IT

11.2

12.2

16.8

22

36.8

CPU

0.0440

0.0993

0.4071

0.8747

2.8612

RBK(6)

IT

16.4

20.8

28

32.2

57

CPU

0.0519

0.1121

0.5102

1.3914

3.649

MRBK(6)

IT

12

13.2

15.8

22.2

36.4

CPU

0.0517

0.1165

0.3808

1.0045

2.757

MARBK(6)

IT

13.4

15.8

20.4

28.4

48.2

CPU

0.0419

0.0993

0.3554

0.932

2.8281

Table 4. Numerical results of solving linear systems using specific matrices

4. 具体矩阵求解线性系统的数值结果

矩阵

Franz1

mk11-b2

Trefethen-300

gen4

p6000

RBK(k)

IT

15.4

5

52

521.8

30

CPU

2.2341

0.8508

0.1003

1.1908

1.7317

MRBK(k)

IT

4

3.8

52

399.4

29.4

CPU

0.2671

0.8474

0.0117

1.081

1.71

MARBK(k)

IT

34.4

10

74

931.4

49.6

CPU

0.0075

0.0362

0.0063

0.8079

0.0244

k

/

4

4

20

4

4

speed-up1

/

8.36428304

1.00401227

8.57264957

1.10157262

1.01269006

speed-up2

/

297.88

23.5027624

15.9206349

1.4739448

70.9713115

5. 总结

本文在RBK(k)算法基础上进行改进构建了最大残差块Kaczmarz算法及其加速版本,分析了算法的收敛性。数值实验证实了该算法的有效性。最优k值的选择仍是未来值得研究的方向。

参考文献

[1] Strohmer, T. and Vershynin, R. (2008) A Randomized Kaczmarz Algorithm with Exponential Convergence. Journal of Fourier Analysis and Applications, 15, 262-278.
https://doi.org/10.1007/s00041-008-9030-4
[2] Jiang, X., Zhang, K. and Yin, J. (2022) Randomized Block Kaczmarz Methods with K-Means Clustering for Solving Large Linear Systems. Journal of Computational and Applied Mathematics, 403, Article 113828.
https://doi.org/10.1016/j.cam.2021.113828
[3] 李雪芳. 基于自动控制步长的病态线性方程组算法研究[D]: [硕士学位论文]. 太原: 太原科技大学, 2013.
[4] 段云岭. 非线性方程组的解法: 局部弧长法[J]. 力学学报, 1997, 29(1): 116-122.
[5] 张广求, 余青, 洪果媛. 线性方程组分光光度法测定痤疮搽剂中甲硝唑和氯霉素的含量[J]. 中国药房, 1995, 6(1): 39-40.
[6] 蔡建新, 包尚联, 王卫东. 核医学影像中单光子定位的最小二乘方法[J]. 核电子学与探测技术, 1996, 16(3): 189-193.
[7] 陶本藻, 张勤. GPS 非线性数据处理的同伦最小二乘模型[J]. 武汉大学学报(信息科学版), 2003, 28(S1): 115-118.
[8] 胡圣荣, 戴纳新. 病态线性方程组新解法: 增广方程组法[J]. 华南农业大学学报, 2009, 30(1): 119-121.
[9] 胡川, 陈义. 非线性整体最小平差迭代算法[J]. 测绘学报, 2014, 43(7): 668-674+760.
[10] 刘经南, 曾文宪, 徐培亮. 整体最小二乘估计的研究进展[J]. 武汉大学学报(信息科学版), 2013, 38(5): 505-512.
[11] Heath, M.T. (1984) Numerical Methods for Large Sparse Linear Least Squares Problems. SIAM Journal on Scientific and Statistical Computing, 5, 497-513.
https://doi.org/10.1137/0905037
[12] Farebrother, R.W. (2018) Linear Least Squares Computations. Routledge.
[13] Bai, Z. and Wu, W. (2019) On Greedy Randomized Coordinate Descent Methods for Solving Large Linear Least-Squares Problems. Numerical Linear Algebra with Applications, 26, e2237.
https://doi.org/10.1002/nla.2237
[14] Paige, C.C. and Saunders, M.A. (1982) LSQR: An Algorithm for Sparse Linear Equations and Sparse Least Squares. ACM Transactions on Mathematical Software, 8, 43-71.
https://doi.org/10.1145/355984.355989
[15] Yongjie, Z. and Qin, S. (2007) A New ICCG Method of Large-Scale Sparse Linear Equation Group. 2007 International Symposium on Microwave, Antenna, Propagation and EMC Technologies for Wireless Communications, Hangzhou, 16-17 August 2007, 848-851.
https://doi.org/10.1109/mape.2007.4393759
[16] Bai, Z. and Wu, W. (2018) On Greedy Randomized Kaczmarz Method for Solving Large Sparse Linear Systems. SIAM Journal on Scientific Computing, 40, A592-A606.
https://doi.org/10.1137/17m1137747
[17] Zhang, K., Liu, C.T., Jiang, X.L. (2024) A Greedy Randomized Block Coordinate Descent Algorithm with K-Means Clustering for Solving Large Linear Least-Squares Problems. International Journal of Computer Science, 51, 511-518.
[18] Davis, T.A. and Hu, Y. (2011) The University of Florida Sparse Matrix Collection. ACM Transactions on Mathematical Software, 38, 1-25.
https://doi.org/10.1145/2049662.2049663