我正在尝试确定是否可以并行化机器学习算法的训练方面。训练中计算量大的部分涉及 Cholesky 分解正定矩阵(协方差矩阵)。我将尝试纯粹根据矩阵代数来构建这个问题。如果您需要更多信息,请告诉我。
假设我们有一个块矩阵(协方差矩阵,但这与问题无关)
M = AB B* C
其中 A 和 C 与来自两个不同集合的训练数据相关。A 和 B 都是正定的。为简单起见,我们还假设 A 和 C 的大小为 nxn。
有一个用于执行块 Cholesky 分解的公式。请参阅http://en.wikipedia.org/wiki/Block_LU_decomposition。总结一下,我们有以下结果。
M = 卢
其中(* 表示转置)
L = A^{1/2} 0 B*A^{-*/2} Q^{1/2}
在哪里
Q = C - B*A^{-1}B
现在假设已经进行了与矩阵 A 和 C 相关的训练,因此我们对 A 进行了 Cholesky 分解,并且 C 给出 A^{1/2} 和 C^{1/2}(因此可以直接使用前向替换计算逆 A^{-1/2} 和 C^{-1/2})。
用我们现在拥有的这些数量重写 Q。
Q = Q^{1/2} Q^{*/2} = C^{1/2} C^{*/2} - B* A^{-*/2}A^{-1/2}乙
我的问题是:鉴于这种设置,是否可以代数计算 Q^{1/2} 而无需对 Q 应用 cholesky 分解。或者换句话说,我可以使用 C^{1/2} 来帮助我Q^{1/2} 的计算。如果这是可能的,那么就可以轻松地并行化培训。
提前感谢您的任何回复。对不起矩阵排版。特别是排版数学或矩阵有什么明智的方法吗?
马特。