Schur Complement는 무엇일까요?

SJ·2024년 11월 25일
0

이 게시글은 장형기님의 SLAM 기술면접 질문 100선에 대한 제 생각을 정리한 글입니다.


Schur Complement

  • 정의

    주어진 행렬 A가 다음과 같은 블록 형태를 가질 때:
    A=(A11A12A21A22)A = \begin{pmatrix} A_{11} & A_{12} \\ A_{21 }& A_{22} \end{pmatrix}
    여기서 A11,A12,A21,A22A_{11}, A_{12}, A_{21}, A_{22}는 각각 적절한 크기의 행렬입니다.
    Schur Complement는 다양한 행렬 계산을 할 수 있도록 만드는 또 다른 block matrix라고 생각하시면 됩니다.
    S=A22A21A111A12S = A_{22} - A_{21}A_{11}^{-1}A_{12}
    이것이 Schur Complement 정의입니다.

사실 여기까지만 보면 무슨 소리인가 싶을겁니다.
이 Schur Complement가 어떻게 활용되는지 알면 더욱 이해가 더 쉬울겁니다.

  • 활용
  1. 행렬의 역행렬 계산:

    A1=(A111+A111A12S1A21A111A111A12S1S1A21A111S1)A^{-1} = \begin{pmatrix} A^{-1}_{11}+A^{-1}_{11}A_{12}S^{-1}A_{21}A^{-1}_{11} & -A_{11}^{-1}A_{12}S^{-1} \\ -S^{-1}A_{21}A_{11}^{-1} & S^{-1} \end{pmatrix}

    역행렬도 Schur Complement를 활용하면 Block으로 쪼개서 계산할 수 있게 됩니다.
    전체 Matrix를 다 계산할 수 없을 때 Schur Complement를 통해 계산을 더 간략화할 수 있는 장점이 있습니다.

  2. Determinant 계산

    det(A)=det(A11)det(S)det(A) = det(A_{11})\bullet det(S)
    이렇게 determinant를 쪼개서 계산할 수도 있습니다.
    저번 포스트 중에 Kalman filter 계산에도 Schur Complement를 활용해서 계산하는데
    복잡해서 안썼었습니다. 하하

  • 성질

    • Symmetry: Schur Complement는 주어진 행렬의 대칭 성질을 보존합니다.
      즉, A가 대칭 행렬이면, 그 Schur Complement인 S도 대칭입니다.

    • Positive definiteness: A가 positive definite일 때, Schur complement S도 positive definite입니다.

  • 결론

    결론은 Schur Complement를 활용하면 역행렬이나 Determinant계산을 더욱 쉽게 할 수 있다는 것입니다.
    이것이 생각보다 많이 쓰이더라고요 알아두어서 나쁠게 없을 것 같습니다.


profile
student

0개의 댓글