2020년 8월 9일 일요일

회전 행렬(Rotation Matrix)

[경고] 아래 글을 읽지 않고 "회전 행렬"을 보면 바보로 느껴질 수 있습니다.

삼각 함수의 합차 공식(angle sum and difference identity)을 이용하면 $xy$평면에 대한 점의 회전을 쉽게 공식화할 수 있다.

2020년 8월 3일 월요일

에르미트 행렬과 유니터리 행렬(Hermitian Matrix and Unitary Matrix)

[경고] 아래 글을 읽지 않고 "에르미트 행렬과 유니터리 행렬"을 보면 바보로 느껴질 수 있습니다.


행렬 $\bf A$에 대한 에르미트 행렬(Hermitian matrix)은 다음처럼 정의한다.

                       (1)

여기서 행렬의 원소는 일반적으로 복소수(complex number)이다. 식 (1)에 등장하는 ${\bf A}^H$는 $\bf A$의 켤레 전치 행렬(conjugate transpose)이다.

                       (2)

여기서 $(\cdot)^*$는 켤레 복소수(complex conjugate), $(\cdot)^T$는 전치 행렬(transpose)이다. 식 (1)의 정의에 의해, 에르미트 행렬의 대각선 원소는 항상 실수이다. 켤레 전치 행렬은 ${\bf A}^\dagger$처럼 표기할 수도 있다. 또한 켤레 전치 행렬 ${\bf A}^H$는 복소 행렬(complex matrix)을 위해 사용하는 개념이다. 복소 행렬이 아닌 실수 행렬을 고려한다면, 켤레 전치 행렬은 단순한 전치 행렬이 된다. 따라서 복소 영역의 에르미트 행렬은 실수 영역에서 대칭 행렬(symmetric matrix)이 된다. 식 (1)과 비슷하지만 다음과 같은 반대칭(反對稱, skew-symmetry) 특성을 가진 행렬은 반에르미트 행렬(skew-Hermitian matrix)이라 한다.

                       (3)

식 (3)에 의해 반에르미트 행렬의 대각선 원소는 $0$ 혹은 순허수가 된다. 에르미트 행렬과 반에르미트 행렬을 합치면 어떤 복소 행렬이든지 표현할 수 있다. 다른 말로 하면, 임의의 복소 행렬 $\bf A$를 다음처럼 에르미트 행렬과 반에르미트 행렬의 합으로 항상 분해할 수 있다.

                       (4)

식 (4)와 같은 복소 행렬의 관계는 실수 행렬에서 성립하는 대칭(symmetric)과 반대칭(skew-symmetric) 행렬의 합 특성과도 동일하다. 예를 들어 식 (4)에 있는 $\bf A$가 실수 행렬이 되면, 에르미트와 반에르미트 행렬은 대칭과 반대칭 행렬이 된다. 그러면 대칭 행렬의 특성처럼 이 두 행렬의 합은 원래 행렬 $\bf A$가 된다.
여러 행렬 중에서 제일 유명한 행렬이 에르미트 행렬이지만, 식 (1)의 정의는 다소 밋밋하다. 소문난 잔치에 먹을 것이 없는 상황일까? 아니다. 에르미트 행렬은 고유치(eigenvalue)고유 벡터(eigenvector)를 만날 때 빛이 난다.

[에르미트 행렬과 고유치의 관계]
에르미트 행렬의 고유치는 실수이다.

[증명]
행렬 $\bf A$의 고유치 $\lambda$와 고유 벡터 $\bf x$는 다음처럼 표현한다.

                       (5)

식 (5)의 양변에 ${\bf x}^H$를 곱해서 정리하면 다음을 얻는다.

                       (6)

여기서 ${\bf x}^H {\bf x}$는 복소 영역의 내적(inner product)이다. 식 (6)에 의해 $\lambda$ = $\lambda^*$이므로, $\lambda$는 실수가 되어야 한다.
______________________________

식 (6)의 결과를 2차 형식(quadratic form) 관점으로 보면, ${\bf x}^H {\bf Ax}$는 항상 실수이다.

[에르미트 행렬과 고유 벡터의 관계]
서로 다른 고유치를 가진 에르미트 행렬의 고유 벡터는 서로 직교한다.

[증명]
고유치 $\lambda_1, \lambda_2$에 해당하는 고유 벡터를 ${\bf x}_1, {\bf x}_2$라 하면, 식 (6)과 비슷하게 다음 관계식을 만들 수 있다.

                       (7)

식 (7)에서 두 고유치는 다르기 때문에, ${\bf x}_1, {\bf x}_2$는 직교한다.
______________________________

이상의 결과를 종합하면, 에르미트 행렬은 복소 영역으로 일반화한 대칭 행렬(symmetric matrix)이다. 그래서 실수가 원소인 대칭 행렬로 만든 여러 결과에서 대칭 행렬을 에르미트 행렬로 바꾸면, 복소 영역에서 그 결과가 그대로 성립한다. 직교 행렬(orthogonal matrix)에도 동일한 개념을 적용할 수 있다. 실수에서 정의한 벡터의 내적 ${\bf x}^T {\bf y}$를 복소수로 확장하면 ${\bf x}^H {\bf y}$가 된다. 복소 영역의 직교 개념 ${\bf x}^T {\bf y}$ = $0$을 활용하여 행렬을 구성하는 열 벡터를 복소 영역에서 직교시키면, 직교 행렬은 다음과 같은 유니터리 행렬(unitary matrix)이 된다.

                       (8)

여기서 열 벡터는 다음에 표시한 정규 직교 관계가 성립한다.

                       (9)

유니터리 행렬은 단일 행렬로 번역할 수도 있다.[단일 행렬은 잘 쓰지 않는 표현이다. 이해를 위해 강제로 번역했을 뿐이다.] 유니터리 행렬을 구성하는 열 벡터는 복소 영역에서 정규 직교 기저를 이루어서 $n$차원 공간을 계량하는 하나의 단위계로 사용할 수 있다. 그래서 단일화된 혹은 일관된 단위(unit)를 뜻하는 유니터리(unitary)를 도입해서 식 (8)과 같은 행렬의 명칭을 정한다.
에르미트 행렬의 고유치와 고유 벡터가 가진 특성은 기시감이 든다. 이는 정확한 느낌이다. 행렬의 고유치와 고유 벡터는 스투름–리우빌 이론(Sturm–Liouville theory)에서 봤던 미분 방정식의 고유치와 고유 함수(eigenfunction)와 무척 닮아있다. 수학 분야에서 행렬과 미분 방정식은 굉장히 다른 이론처럼 보이지만, 고유 벡터라는 색안경으로 보면 두 이론은 매우 밀접하게 연결되어 있다. 행렬과 미분 방정식의 연계성은 선형 최소 제곱법(linear least squares)에서도 볼 수 있다.

[다음 읽을거리]

특이값 분해(Singular Value Decomposition)

[경고] 아래 글을 읽지 않고 "특이값 분해"를 보면 바보로 느껴질 수 있습니다.


[스트랭Gilbert Strang 교수의 SVD 강의]

행렬의 대각화(diagonalization)에 쓰이는 식 (1)에 제시한 고유 분해(eigendecomposition)는 유용하지만 제한이 많다.

                  (1)

여기서 $\bf S$는 고유 벡터 행렬(eigenvector matrix), $\bf \Lambda$는 고유치 행렬(eigenvalue matrix)이다. 식 (1)이 성립하려면, 행렬 $\bf A$는 정방 행렬이어야 한다. 만약 $\bf A$가 정방 행렬이며 대칭 행렬이라면, 식 (1)을 더 간단히 공식화할 수 있다.

                  (2)

여기서 $\bf Q$는 고유 벡터로 구성한 직교 행렬(orthogonal matrix)이다. 식 (2)처럼 아름다운 고유 분해를 모든 행렬로 확장할 수 있는 방법이 존재한다. 그 비법은 바로 임의의 행렬을 대각화할 수 있는 특이값 분해(singular value decomposition)이다. 특이값 분해는 간단히 SVD라고도 한다. SVD를 쓰면, 정방 행렬 혹은 대칭 행렬 조건에 관계없이 임의의 행렬을 대각화할 수 있다.

[그림 1] 2차원에 적용한 특이값 분해(출처: wikipedia.org)

[특이값 분해]
임의의 $m \times n$ 행렬 $\bf A$를 다음과 같은 행렬의 곱으로 대각화할 수 있다. 

                  (3)

여기서 $\bf \Sigma$는 대각선 원소가 음수가 아닌 특이값(singular value) $\sigma_i$인 대각 행렬, $\bf U$와 $\bf V$는 각각 좌특이 벡터(left-singular vector) ${\bf u}_i$와 우특이 벡터(right-singular vector) ${\bf v}_i$가 열 벡터로 들어가는 직교 행렬(orthogonal matrix), $(\cdot)^T$는 전치 행렬(transpose)이다. 행렬 $\bf \Sigma$, $\bf U$, $\bf V$의 차원은 각각 $m \times n$, $m \times m$, $n \times n$이다.

[증명]
행렬 $\bf A$에 대해 특이값이 $0$이 아닌 좌특이 벡터와 우특이 벡터는 다음과 같다.

                  (4)

여기서 $\sigma_i$ = $\sqrt{\lambda_i}$, $\lambda_i$는 고유치(eigenvalue)이다. 식 (4)를 고유치와 고유 벡터의 관점으로 다시 쓰면 다음과 같다.

                  (5)

여기서 ${\bf u}_i$와 ${\bf v}_i$는 특이 벡터이면서 동시에 고유 벡터이다. 최소 제곱 행렬 ${\bf A}^T {\bf A}$와 ${\bf A} {\bf A}^T$는 $\bf A$에 관계없이 항상 대칭 행렬이다. 또한 두 최소 제곱 행렬의 고유치 $\lambda_i$는 음수가 아니고 서로 같다. 최소 제곱 행렬의 고유 함수는 서로 직교한다. 이러한 성질과 식 (5)를 바탕으로 최소 제곱 행렬을 고유 분해한다.

                  (6)

식 (6)에 있는 직교 행렬 $\bf U$, $\bf V$와 대각 행렬 ${\bf \Lambda}_u$, ${\bf \Lambda}_v$는 다음처럼 구성한다.

                  (7)

여기서 $r$ = $\operatorname{rank}({\bf A}) \le \min(m, n)$, 대각 행렬의 고유치는 내림차순으로 $\lambda_1 \ge \lambda_2 \ge \cdots \ge \lambda_r \ge 0$처럼 배치한다. 고유치가 서로 다르지 않고 같은 경우가 생기면, 고유 벡터를 선택할 때 자유도가 생긴다. 이때는 그람–슈미트 과정(Gram–Schmidt process)을 이용해서 고유 벡터가 서로 직교하도록 선택한다. 식 (7)에 있는 대각 행렬 ${\bf \Lambda}_u$, ${\bf \Lambda}_v$를 다음처럼 다시 분해할 수 있다.

                  (8)

여기서 특이값도 고유치[$\lambda_i$ = $\sigma_i^2$]처럼 내림차순으로 $\sigma_1 \ge \sigma_2 \ge \cdots \ge \sigma_r \ge 0$을 만족하게 배열한다. 식 (8)을 식 (6)에 대입하고 직교 행렬의 성질인 ${\bf Q} {\bf Q}^T$ = ${\bf Q}^T {\bf Q}$ = $\bf I$를 적용하면, 식 (6)을 더 세부적인 행렬로 분해할 수 있다.

                  (9)

따라서 행렬 $\bf A$는 식 (3)처럼 분해될 가능성이 있다. 마지막으로 식 (3)의 우변이 좌변과 같은지 확인하자[3]. 먼저 임의의 열 벡터 $\bf x$와 ${\bf \Sigma}{\bf V}^T$를 곱해보자.

                  (10)

식 (3)의 우변과 같은 모양을 만들기 위해 식 (10)의 결과에 $\bf U$를 곱한다.

                  (11)

식 (11)에 식 (4)의 첫째식을 대입해서 정리한다.

                  (12)

여기서 ${\bf v}_i$는 정규 직교 기저(orthonormal basis), $i > r$이면 ${\bf A} {\bf v}_i$ = $0$, ${\bf V}{\bf V}^T$ = $\bf I$이다. 따라서 식 (12)는 임의의 $\bf x$에 대한 항등식이어서 식 (3)이 성립한다.
______________________________

특이값의 영어 알파벳이 s로 시작하므로, 특이값을 가진 대각 행렬의 알파벳은 $\Sigma$가 된다. 또한 행렬 $\bf U$는 일반적으로 유니터리 행렬(unitary matrix)이어서 알파벳 U로 표현한다.
명확히 증명한 특이값 분해는 다양한 방식으로 응용할 수 있다.


1. 기본(basics)

[유사 역행렬(pseudoinverse)]

                  (1.1)

여기서 ${\bf \Sigma}^+$의 차원은 $n \times m$이며 대각선 원소는 $1/\sigma_1, 1/\sigma_2, \cdots, 1/\sigma_r, 0, \cdots, 0$이다.

[증명]
유사 역행렬의 특성을 확인하기 위해 다음 행렬 곱을 고려한다.

                  (1.2)

                  (1.3)

여기서 $i > r$이면 ${\bf u}_i^T {\bf A}$ = ${\bf v}_i^T {\bf A}^+$ = $0$이다. 행렬 곱 ${\bf  A} {\bf  A}^+$와 ${\bf  A}^+ {\bf  A}$는 완전한 항등 행렬이 아닐 수 있지만,  ${\bf  A}$ 혹은  ${\bf  A}^+$가 곱해진 조건에서는 항등 행렬이 된다. 따라서 식 (1.1)은 유사 역행렬의 표현식이 된다.
______________________________

행렬 ${\bf  A}$의 행 벡터가 모두 선형 독립이면, 식 (1.2)에 의해 ${\bf  A} {\bf  A}^+$ = $\bf I$가 된다. 이 경우 ${\bf  A}^+$는 우역행렬(right inverse)이다. 비슷하게 ${\bf  A}$의 열 벡터가 선형 독립이면, ${\bf  A}^+ {\bf  A}$ = $\bf I$가 되어서 ${\bf  A}^+$는 좌역행렬(left inverse)이 된다.

[복소 영역으로 일반화]
에르미트 행렬(Hermitian matrix)과 유니터리 행렬(unitary matrix)을 도입하면 복소 영역에서 특이값 분해를 할 수 있다.

                  (1.4)

여기서 $\bf \Sigma$는 대각선 원소가 음수가 아닌 실수 특이값(singular value) $\sigma_i$인 대각 행렬, $\bf U$와 $\bf V$는 특이 행렬로 구성한 유니터리 행렬, $(\cdot)^H$는 켤레 전치 행렬(conjugate transpose)이다.

[증명]
에르미트 행렬의 고유치는 실수이며, 고유 벡터는 서로 직교한다. 유니터리 행렬은 열 벡터가 서로 정규 직교(orthonormal: 크기는 $1$이면서 서로 직교)한다. 이런 특성을 식 (3)의 증명에 교체해서 적용하면, 식 (1.4)를 증명할 수 있다.
______________________________


[참고문헌]
[1] G. Strang, Linear Algebra and its Applications, 4th ed., Brooks/Cole, 2006.
[2] G. Gundersen, "Proof of the singular value decomposition," Blog, 2018. (방문일 2020-08-03)
[3] M. Hutchings, "Notes on singular value decomposition for Math 54," Linear Algebra and Differential Equations, UC Berkeley, 2017. (방문일 2020-08-04)