Cholesky分解的单Pass随机算法
Single-Pass Randomized Algorithm for Cholesky Decomposition
DOI: 10.12677/PM.2024.141010, PDF, HTML, XML, 下载: 62  浏览: 104 
作者: 刘雪翠:上海理工大学理学院,上海
关键词: Cholesky分解矩阵分解单Pass随机算法Cholesky Decomposition Matrix Factorization Single-Pass Randomized Algorithm
摘要: 对于大规模数据矩阵,数据的读取成本远高于算法本身的成本;对存储在磁盘外部的流型数据,往往只有一次读取数据的机会。而以往的Cholesky分解的随机算法都至少需要读取输入数据两次,难以满足实际应用中的低成本需求。本文基于矩阵分解的单pass随机算法研究,提出了Cholesky分解的单pass随机算法,并给出了该算法的误差上界,最后通过数值实验验证了该算法的可行性以及有效性。
Abstract: For large-scale data matrices, the cost of data reading is much higher than the cost of algorithms. For streaming data stored outside the disk, there is only one chance to read the data. In the past, the randomized algorithm of Cholesky decomposition needed to read the original data at least twice, which was difficult to meet the low-cost requirements in practical applications. Based on the research of single-pass randomized algorithm with matrix decomposition, a single-pass randomized algorithm based on Cholesky decomposition is proposed, and the error upper bound of the algorithm is given, and finally the feasibility and effectiveness of the algorithm are verified by numerical experiments.
文章引用:刘雪翠. Cholesky分解的单Pass随机算法[J]. 理论数学, 2024, 14(1): 87-93. https://doi.org/10.12677/PM.2024.141010

1. 问题的提出

矩阵Cholesky分解的算法是数值线性代数的一个重要内容,其在最小二乘、线性回归、非线性优化等科学计算问题中具有广泛的应用。Cholesky分解 [1] 源于矩阵的LU分解,即对对称正定矩阵 A R m × m ,存在唯一的对角元素皆为正的下三角矩阵 L R m × m ,使得A可以分解为 A = L L T 。为了增强数值稳定性,2002年,Hammarling [2] 提出了全主元的Cholesky分解。2004年,Gu和Miranian [3] 又提出了Cholesky分解的秩显算法。2016年,Xiao和Gu [4] 提出了Cholesky分解在分块形式下的低秩逼近算法,进一步给出了谱显分解算法,从而使得算法变得高效稳定。然而,这些确定性算法在矩阵的低秩逼近分解中时间成本过高,导致算法的效率较低。为了改进这些不足,文献 [5] 提出的主元随机Cholesky分解算法不仅有很好的低秩逼近效果,而且节省了大量时间成本。

但是这类随机算法的通病都是至少需要读取输入矩阵两次。而面对存储在内存外部的大规模数据和流型数据时,往往只有一次读取数据的机会。于是就有学者提出将单pass随机算法应用到矩阵分解的低秩逼近随机算法中。2011年,Halko和Martinsson等 [6] 首次提出了将单pass随机算法应用到矩阵的特征值分解,而后Tropp和Yurtsever等 [7] [8] 提出了一种新的SVD分解的单pass随机算法。接着,在2020年Li和Yin [5] 提出了LU分解的单pass随机算法。在此基础上,本文从随机矩阵投影的角度构造了一种新的随机算法——Cholesky分解的单pass随机算法,并给出了相应的误差上界。同时通过数值实验对Cholesky分解的几种算法进行了比较。

2. 预备知识

定义1 [9] 设 μ 1 a 1 > 0 a 2 > 0 ,亚高斯随机矩阵 A ( μ , a 1 , a 2 , m , n ) 是一个由所有 m × n 阶随机矩阵 A = ( ξ i j ) 所构成的矩阵集,A中的元素皆为服从i.i.d.的随机变量,且满足下述三个条件:

1) E ( | ξ i j | 3 ) μ 3

2) E ( ξ i j 2 ) 1

3) P ( A 2 > a 1 m ) e a 2 m

注1 从文献 [9] 可知,如果A是 m × n ( m > n ) 阶亚高斯随机矩阵,则有 A A ( μ , a 1 , a 2 , m , n ) ,且 a 1 = 6 μ a 2 + 4 ,若矩阵 A m × n N ( 0 , 1 ) 其中 m > n ,有 A A ( μ , a 1 , a 2 , m , n ) ,且 μ = 4 2 π 3

引理1 [9] 若矩阵 A A ( μ , a 1 , a 2 , m , n ) ,参数m,n满足 m > ( 1 + 1 ln n ) n ,则存在正常数c1,c2使得 P ( σ n < c 1 m ) e c 2 m 成立。

注2 由文献 [10] ,可知引理1中参数c1,c2的确切值:

c 1 = b c 2 c 3 ( b 3 e 2 c 3 a 1 ) 1 δ , c 2 = min ( 1 , c 2 μ 6 , a 2 ) ln 3 m ,

其中, c 3 = 4 2 π ( 2 μ 9 a 1 3 + π ) b = min ( 1 4 , c 5 a 1 μ 3 ) c = ( 27 2 13 ) 1 2 c = 27 2 11

引理2 [11] 设矩阵 A R m × n 的SVD分解为 A = U Σ V T ,随机矩阵 Ω R n × k 列满秩, A Ω 有thin-QR分解 A Ω = Q R V T Ω 的分块形式为 V T Ω = ( Ω ^ 1 T , Ω ^ 2 T ) T ,其中 Ω ^ 1 R ( k p ) × k Ω ^ 2 R ( n k + p ) × k 。设 Ω ^ 1 行满秩,r是目标秩且满足 r k 0 p k r ,则有

( I Q Q T ) A F r σ 1 2 σ k p + 1 2 Ω ^ 2 2 2 Ω ^ 1 2 2 σ k p + 1 2 Ω ^ 2 2 2 Ω ^ 1 2 2 + σ 1 2 + i = r + 1 n σ i 2

3. Cholesky分解的单Pass随机算法(SPRCH)和误差界

3.1. Cholesky分解的单Pass随机算法

本节基于LU分解的单pass随机算法,介绍了一种新的Cholesky分解的单pass随机算法,与算法1相比,它即保留了在低秩逼近算法中较好的效果,又只需对A访问一次,大大的节约了计算成本。类似于算法1的构造,我们可以给出算法2的具体思想如下:

我们可以根据 P A P T L y L y P A P T ( L y ) T ( L y ) T ,然后考虑将算法1中的 B = L y P A P T ( L y ) T 的A替换掉,我们将等式两边同时左乘 L y ,右乘 L y T 得到:

L y B L y T L y L y P A P T ( L y ) T ( L y ) T P A P T

因此我们得到

L y B L y T P A P T

又因为 Y 2 = Ω 1 T Y 1 将等式两边同时左乘 Ω 1 T P T ,右乘 P Ω 1 ,我们得到:

Ω 1 T P T L y B L y T P Ω 1 Ω 1 T Y 1 = Y 2

然后我们得到B的一个近似值:

B ( Ω 1 T P T L y ) Y 2 ( L y T P Ω 1 )

因此我们就得到了一个新的算法Cholesky分解的单pass随机算法(SPRCH)

取流型数据 Y 1 A Ω 1 Y 2 Ω 1 T Y 1 ,则可通过以下更新公式计算:

Y 1 ( i , : ) A ( i , : ) Ω 1 , Y 2 , i + 1 Y 2 , i + Ω 1 T Y 1 ( i , : ) , i = 1 , 2 , 3 , , n .

3.2. 误差分析

P A P T L L T F = P A P T L y L b L b T L y T F = P A P T L y B L y T F = P A P T L y ( Ω 1 T P T L y ) Y 2 ( L y T P Ω 1 ) L y T F P A P T L y L y P A P T F + L y L y P A P T L y ( Ω 1 T P T L y ) Y 2 ( L y T P Ω 1 ) L y T F ( 1 + L y ( Ω 1 T P T L y ) Ω 1 T 2 ) ( I L y L y ) P A F

接下来估计 L y ( Ω 1 T P T L y ) Ω 1 T 2 的上界,取特殊的p值0,首先对 L y 做thin-svd分解 L y = U ^ Σ ^ V ^ T ,其中 U ^ R n × r Σ ^ R r × r V ^ R r × r ,即可得到

L y ( Ω 1 T P T L y ) Ω 1 T 2 = U ^ Σ ^ V ^ T ( Ω 1 T P T U ^ Σ ^ V ^ T ) Ω 1 T 2 = U ^ Σ ^ V ^ T ( Σ ^ V ^ T ) 1 ( Ω 1 T P T U ^ ) Ω 1 T 2

由于P是置换矩阵,且 U ^ 为列正交矩阵,因此, Ω 1 T P T U ^ 是一个Gaussian随机矩阵,由引理1,有

( Ω 1 T P T U ^ ) 2 = 1 σ r ( Ω 1 T P T U ^ ) 1 c 1 l

成立的概率不低于 1 e c 2 l

类似地,有 Ω 1 T 2 a 1 n 成立的概率不低于 1 e a 2 n ,则 L y ( Ω 1 T P T L y ) Ω 1 T 2 a 1 n c 1 l 成立的概率不低于 1 e a 2 n e c 2 l 。接下来估计 ( I L y L y ) P A F 的上界。

对算法2,考虑对PY进行QR分解,即 P Y = Q R ,则相应的可以得到 L y L y = Q Q T ,此外将引理2中的 Ω 用算法2中的 Ω 1 替换,同时取特殊的p值0,则有以下结论成立:

( I L y L y ) P A F r σ 1 2 σ r + 1 2 Ω ˜ 2 2 2 Ω ˜ 1 2 2 σ r + 1 2 Ω ˜ 2 2 2 Ω ˜ 1 2 2 + σ 1 2 + i = r + 1 n σ i 2

综上所述,可以得到算法2的误差界有如下结论。

定理1 在算法2的假设条件下,Cholesky分解的随机算法误差界满足:

P A P T L L T F ( 1 + a 1 n c 1 l ) r σ 1 2 σ r + 1 2 Ω ^ 2 2 2 Ω ^ 1 2 2 σ r + 1 2 Ω ^ 2 2 2 Ω ^ 1 2 2 + σ 1 2 + i = r + 1 n σ i 2

成立的概率不低于 1 e a 2 n e c 2 l

4. 数值结果

4.1. 不同过采样参数选取对于算法的精度及运行时间的影响

取固定阶数为1000 × 1000的奇异值快速下降的数据矩阵A,对于不同的参数用两种随机算法做十次独立的实验,并记录误差和运行时间分别取平均值为 e R C H e S P R C H t R C H t S P R C H

图1中可以看出两种算法的误差精度都很高。但随着p值增加,SPRCH的误差逐渐减小而RCH的误差逐渐增大。图2中可以发现SPRCH在时间成本上更有优势。需要指出的是,大规模数据计算中读取成本比算法运行成本高很多,新算法SPRCH只需要读取原始矩阵A一次,而RCH至少要读取两次,新算法总体成本比RCH算法成本低。

Figure 1. Error line chart for two algorithms for p from 20 to 200

图1. 参数p从20到200时两种不同算法的误差折线图

Figure 2. Line chart of running time for two algorithms for p from 20 to 200

图2. 参数p从20到200时两种不同算法的运行时间折线图

4.2. 不同规模矩阵对于算法的精度及运行时间的影响

根据上节选取合适的过采样参数,将这两种不同的算法和matlab中自带的Cholesky分解作比较,进行独立的十次实验,然后记录运行时间及误差分别取平均值为 t C H t R C H t S P R C H e C H e R C H e S P R C H

Table 1. Comparison of three algorithms under different scale matrices

表1. 不同规模矩阵下三种算法的比较

表1可以看出,随着矩阵规模不断增大,本文所提算法——Cholesky分解的单pass随机算法相对于传统的Cholesky分解以及主元随机Cholesky分解(RCH)算法在时间成本和误差上有着较大的优势。故新算法在应对大规模数据和流型数据矩阵的问题中有更好的应用前景。

参考文献

[1] 李庆扬, 王能超, 易大义. 数值分析[M]. 第5版. 武汉: 华中科技大学出版社, 2018.
[2] Higham, N.J. (2002) Accuracy and Stability of Numerical Algorithms. Society for Industrial and Applied Mathematics.
https://doi.org/10.1137/1.9780898718027
[3] Gu, M. and Miranian, L. (2004) Strong Rank Revealing Cholesky Factorization. Electronic Transactions on Numerical Analysis, 17, 76-92.
[4] Xiao, J.W. and Gu, M. (2016) Spec-trum-Revealing Cholesky Factorization for Kernel Methods. Proceedings of the 16th IEEE International Conference on Data Mining, Barcelona, 12-15 December 2016, 1293-1298.
https://doi.org/10.1109/ICDM.2016.0175
[5] Li, H. and Yin, S. (2020) Single-Pass Randomized Algorithms for LU Decomposition. Linear Algebra and Its Applications, 595, 101-122.
https://doi.org/10.1016/j.laa.2020.03.001
[6] Halko, N., Martinsson, P.G. and Tropp, J.A. (2011) Finding Structure with Randomness: Probabilities Algorithms for Constructing Approximate Matrix Decompositions. SIAM Review, 53, 217-288.
https://doi.org/10.1137/090771806
[7] Tropp, J.A., Yurtsever, A., Udell, M. et al. (2018) More Practical Skeching Algorithms for Low-Rank Matrix Approximation. Statistics Department, Caltech, Pasade-na.
[8] Tropp, J.A., Yurtsever, A., Udell, M. et al. (2019) Streaming Low-Rank Matrix Approximation with an Ap-plication to Scientific Simulation. SIAM Journal on Scientific Computing, 41, A2430-A2463.
https://doi.org/10.1137/18M1201068
[9] Litvak, A.E., Pajor, A. and Rudelson, M. (2005) Smallest Singular Value of Random Matrices and Geometry of Random Polytopes. Advances in Mathematics, 195, 491-523.
https://doi.org/10.1016/j.aim.2004.08.004
[10] Shabat, G., Shmueli, Y., Aizenbud, Y., et al. (2018) Randomized LU Decomposition. Applied and Computational Harmonic Analysis, 44, 246-272.
https://doi.org/10.1016/j.acha.2016.04.006
[11] Gu, M. (2015) Subspace Iteration Randomization and Singular Value Problems. SIAM Journal on Scientific Computing, 37, A1139-A1173.
https://doi.org/10.1137/130938700