行列の平方根またはその逆行列を微分可能な方法で計算することは、さまざまなコンピュータービジョンタスクで重要です。以前の方法では、特異値分解(SVD)を採用して行列を明示的に因数分解するか、Newton-Schulz反復(NS反復)を使用して近似解を導出します。ただし、どちらの方法も、フォワードパスでもバックワードパスでも計算効率が十分ではありません。この論文では、微分可能な行列の平方根を計算するための2つのより効率的な変形を提案します。順方向伝搬の場合、1つの方法は行列テイラー多項式(MTP)を使用する方法であり、もう1つの方法は行列パデ近似(MPA)を使用する方法です。後方勾配は、行列符号関数を使用して連続時間リアプノフ方程式を繰り返し解くことによって計算されます。どちらの方法でも、SVDまたはNewton-Schulz反復と比較してかなりのスピードアップが得られます。非相関バッチ正規化と2次ビジョントランスフォーマーに関する実験結果は、私たちの方法が競争力のある、さらにはわずかに優れたパフォーマンスも達成できることを示しています。コードはhttps://github.com/KingJamesSong/FastDifferentiableMatSqrthttps://github.com/KingJamesSong/FastDifferentiableMatSqrtで入手できます。
Computing the matrix square root or its inverse in a differentiable manner is important in a variety of computer vision tasks. Previous methods either adopt the Singular Value Decomposition (SVD) to explicitly factorize the matrix or use the Newton-Schulz iteration (NS iteration) to derive the approximate solution. However, both methods are not computationally efficient enough in either the forward pass or in the backward pass. In this paper, we propose two more efficient variants to compute the differentiable matrix square root. For the forward propagation, one method is to use Matrix Taylor Polynomial (MTP), and the other method is to use Matrix Padé Approximants (MPA). The backward gradient is computed by iteratively solving the continuous-time Lyapunov equation using the matrix sign function. Both methods yield considerable speed-up compared with the SVD or the Newton-Schulz iteration. Experimental results on the de-correlated batch normalization and second-order vision transformer demonstrate that our methods can also achieve competitive and even slightly better performances. The code is available at https://github.com/KingJamesSong/FastDifferentiableMatSqrthttps://github.com/KingJamesSong/FastDifferentiableMatSqrt.