29.26 동차 좌표(Homogeneous Coordinates)를 통한 아핀 변환의 선형화
1. 동기: 아핀 변환의 비선형성 문제
아핀 변환 f(x) = Ax + b는 b \neq 0일 때 선형 변환이 아니다. 이로 인해 여러 아핀 변환의 합성을 행렬 곱셈의 연쇄로 표현할 수 없다는 불편함이 발생한다. **동차 좌표(homogeneous coordinates)**는 \mathbb{R}^n의 점을 \mathbb{R}^{n+1}에 매립(embedding)함으로써 아핀 변환을 선형 변환으로 환원하는 기법이다.
2. 동차 좌표의 정의
\mathbb{R}^n의 점 x = (x_1, x_2, \ldots, x_n)^T에 대하여, 그 **동차 좌표(homogeneous coordinates)**는 마지막에 1을 추가한 (n+1)차원 벡터이다.
\tilde{x} = \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \\ 1 \end{pmatrix} = \begin{pmatrix} x \\ 1 \end{pmatrix} \in \mathbb{R}^{n+1}
역으로, 동차 좌표 \tilde{x} = (y_1, y_2, \ldots, y_n, w)^T (w \neq 0)로부터 원래의 좌표를 복원하려면 마지막 성분으로 나눈다.
x = \frac{1}{w}\begin{pmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{pmatrix}
이러한 정의에서 동차 좌표 (y_1, \ldots, y_n, w)^T와 (\alpha y_1, \ldots, \alpha y_n, \alpha w)^T (\alpha \neq 0)는 동일한 점을 나타낸다. 이것이 “동차(homogeneous)“라는 명칭의 유래이다.
3. 아핀 변환의 선형화
3.1 기본 구성
아핀 변환 f(x) = Ax + b (A \in M_{m \times n}, b \in \mathbb{R}^m)를 동차 좌표에서 표현하면
\begin{pmatrix} Ax + b \\ 1 \end{pmatrix} = \begin{pmatrix} A & b \\ 0^T & 1 \end{pmatrix} \begin{pmatrix} x \\ 1 \end{pmatrix}
즉, (m+1) \times (n+1) 행렬
\tilde{A} = \begin{pmatrix} A & b \\ 0^T & 1 \end{pmatrix}
에 의한 선형 변환 \tilde{f}(\tilde{x}) = \tilde{A}\tilde{x}가 원래의 아핀 변환 f를 인코딩한다.
3.2 정사각 행렬의 경우 (m = n)
A가 n \times n 행렬인 경우, \tilde{A}는 (n+1) \times (n+1) 정방 행렬이 된다.
\tilde{A} = \begin{pmatrix} A & b \\ 0^T & 1 \end{pmatrix} \in M_{(n+1) \times (n+1)}(\mathbb{R})
이 행렬은 \mathbb{R}^{n+1}에서 \mathbb{R}^{n+1}로의 선형 변환을 정의하며, 마지막 좌표가 1인 초평면 \{(x_1, \ldots, x_n, 1)^T\}을 자기 자신으로 사상한다.
4. 합성의 행렬 곱 표현
동차 좌표 표현의 가장 큰 장점은 아핀 변환의 합성이 행렬 곱으로 표현된다는 것이다.
두 아핀 변환 f_1(x) = A_1 x + b_1, f_2(x) = A_2 x + b_2의 합성 f_2 \circ f_1에 대하여
\tilde{A}_2 \tilde{A}_1 = \begin{pmatrix} A_2 & b_2 \\ 0^T & 1 \end{pmatrix}\begin{pmatrix} A_1 & b_1 \\ 0^T & 1 \end{pmatrix} = \begin{pmatrix} A_2 A_1 & A_2 b_1 + b_2 \\ 0^T & 1 \end{pmatrix}
이는 합성 아핀 변환 (f_2 \circ f_1)(x) = A_2 A_1 x + (A_2 b_1 + b_2)의 동차 좌표 표현이다.
이 결과에 의해, k개 아핀 변환의 합성은 단일 행렬 곱
\tilde{A}_k \tilde{A}_{k-1} \cdots \tilde{A}_1
으로 계산할 수 있다.
5. 역변환의 표현
A가 가역이면 f^{-1}(y) = A^{-1}y - A^{-1}b이므로
\tilde{A}^{-1} = \begin{pmatrix} A^{-1} & -A^{-1}b \\ 0^T & 1 \end{pmatrix}
이를 직접 검증하면
\tilde{A}\tilde{A}^{-1} = \begin{pmatrix} A & b \\ 0^T & 1 \end{pmatrix}\begin{pmatrix} A^{-1} & -A^{-1}b \\ 0^T & 1 \end{pmatrix} = \begin{pmatrix} I & -b + b \\ 0^T & 1 \end{pmatrix} = I_{n+1}
\checkmark
6. 행렬식
\det(\tilde{A}) = \det\begin{pmatrix} A & b \\ 0^T & 1 \end{pmatrix} = \det(A) \cdot 1 = \det(A)
블록 삼각 행렬의 행렬식은 대각 블록의 행렬식의 곱이다. 따라서 아핀 변환의 동차 행렬의 행렬식은 선형 부분의 행렬식과 동일하다.
7. 구체적 예시
7.1 예시 1: 2차원 평행이동
평행이동 f(x) = x + b, b = (t_x, t_y)^T:
\tilde{T} = \begin{pmatrix} 1 & 0 & t_x \\ 0 & 1 & t_y \\ 0 & 0 & 1 \end{pmatrix}
검증: \tilde{T}\begin{pmatrix} x \\ y \\ 1 \end{pmatrix} = \begin{pmatrix} x + t_x \\ y + t_y \\ 1 \end{pmatrix}. \checkmark
7.2 예시 2: 회전 후 평행이동
원점 중심 각도 \theta 회전 후 (t_x, t_y)만큼 평행이동:
\tilde{A} = \tilde{T} \tilde{R} = \begin{pmatrix} 1 & 0 & t_x \\ 0 & 1 & t_y \\ 0 & 0 & 1 \end{pmatrix}\begin{pmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{pmatrix} = \begin{pmatrix} \cos\theta & -\sin\theta & t_x \\ \sin\theta & \cos\theta & t_y \\ 0 & 0 & 1 \end{pmatrix}
7.3 예시 3: 임의의 점 중심 회전
점 c = (c_x, c_y)^T를 중심으로 각도 \theta만큼 회전하는 변환은 다음 세 단계의 합성이다.
- c를 원점으로 평행이동: T_{-c}
- 원점 중심 회전: R_\theta
- 다시 c로 평행이동: T_c
\tilde{A} = \tilde{T}_c \tilde{R}_\theta \tilde{T}_{-c} = \begin{pmatrix} \cos\theta & -\sin\theta & c_x(1-\cos\theta) + c_y\sin\theta \\ \sin\theta & \cos\theta & c_y(1-\cos\theta) - c_x\sin\theta \\ 0 & 0 & 1 \end{pmatrix}
동차 좌표 없이는 이 합성을 행렬 곱으로 표현할 수 없다.
7.4 예시 4: 3차원 강체 변환
로봇 공학에서 강체(rigid body)의 자세는 회전 R \in SO(3)와 평행이동 t \in \mathbb{R}^3로 기술된다.
\tilde{T} = \begin{pmatrix} R & t \\ 0^T & 1 \end{pmatrix} \in SE(3)
여기서 SE(3)는 **특수 유클리드군(special Euclidean group)**이라 하며, 3차원 강체 변환의 군이다. SE(3)의 원소는 4 \times 4 행렬의 곱으로 합성되며, 이는 동차 좌표 표현의 핵심적 응용이다.
8. 동차 좌표 표현의 군 구조
\mathbb{R}^n에서의 가역 아핀 변환 전체의 집합은 동차 좌표 표현 하에서
\text{Aff}(n) = \left\{ \begin{pmatrix} A & b \\ 0^T & 1 \end{pmatrix} \;\middle|\; A \in GL(n, \mathbb{R}), \; b \in \mathbb{R}^n \right\} \subset GL(n+1, \mathbb{R})
의 행렬군을 이루며, 이를 **아핀군(affine group)**이라 한다.
이 군은 GL(n+1, \mathbb{R})의 부분군이다. 폐쇄성은 위에서 보인 합성의 행렬 곱 표현으로 확인되고, 역원의 존재는 역행렬의 명시적 구성으로 확인된다.
9. 신경망에서의 동차 좌표 해석
신경망의 아핀 변환 z = Wx + b를 동차 좌표로 표현하면
\begin{pmatrix} z \\ 1 \end{pmatrix} = \begin{pmatrix} W & b \\ 0^T & 1 \end{pmatrix}\begin{pmatrix} x \\ 1 \end{pmatrix}
이다. 이 관점에서, 편향 b를 포함한 아핀 변환은 확장된 공간 \mathbb{R}^{n+1}에서의 선형 변환으로 해석된다.
실제 구현에서는 입력 벡터에 상수 1을 추가하고 가중치 행렬에 편향을 열로 병합하는 방식으로 이 동차 좌표 표현을 직접 활용하기도 한다. 이를 통해 가중치와 편향의 갱신을 단일 행렬 연산으로 통합할 수 있다.