선형변환은 왜 정보를 잃는가?

선형변환의 Null Space와 Projection을 통해 살펴보는 정보 손실, 역변환의 한계와 역문제

Series Ax = b 다시 보기 2 / 3

앞선 글에서

$$ Ax=b $$

를 다음과 같은 선형변환으로 바라보았다.

$$ x \xrightarrow{A} b $$

이때 한 가지 질문이 생긴다.

결과 $b$를 알고 있다면 원래 입력 $x$를 다시 알아낼 수 있을까?

항상 가능한 것은 아니다.

그 이유는 선형변환이 입력에 포함된 정보를 일부 없애버릴 수 있기 때문이다.


서로 다른 입력이 같은 출력으로 갈 수 있다

예를 들어 다음과 같은 선형변환을 생각해보자.

$$ A= \begin{bmatrix} 1&0 \end{bmatrix} $$

그러면

$$ A \begin{bmatrix} x\\ y \end{bmatrix} =x $$

이다.

즉 입력은 2차원 벡터지만 출력은 첫 번째 성분 하나뿐이다.

예를 들어

$$ \begin{bmatrix} 1\\ 0 \end{bmatrix}, \quad \begin{bmatrix} 1\\ 3 \end{bmatrix}, \quad \begin{bmatrix} 1\\ 100 \end{bmatrix} $$

은 모두

$$ b=1 $$

이라는 같은 결과를 만든다.

변환 과정에서 $y$에 관한 정보가 완전히 사라진 것이다.

따라서 결과 $b=1$만 보고 원래 입력을 정확히 복원하는 것은 불가능하다.


컴퓨터그래픽스의 대표적인 예: Projection

컴퓨터그래픽스에서도 비슷한 일이 끊임없이 발생한다.

3차원 세계를 화면에 보여주려면 결국 3차원 좌표를 2차원 화면 좌표로 변환해야 한다.

개념적으로는

$$ (x,y,z) \longrightarrow (x',y') $$

와 같은 변환이 일어난다.

이 과정에서 하나의 차원이 줄어든다.

즉 3차원 공간이 가지고 있던 모든 정보를 2차원 결과만으로는 보존할 수 없다.


같은 화면 위치에 여러 3차원 점이 존재할 수 있다

카메라에서 화면의 한 점을 통과하는 방향을 생각해보자.

그 방향 위에는 여러 개의 3차원 점이 존재할 수 있다.

카메라에 가까운 점과 멀리 있는 점이 화면에서는 동일한 위치에 나타날 수 있다.

즉,

$$ x_1\neq x_2 $$

이지만

$$ T(x_1)=T(x_2) $$

인 상황이다.

화면 좌표만 알고 있을 때 원래 3차원 위치가 하나로 결정되지 않는 이유가 바로 여기에 있다.

그래픽스에서 screen space의 좌표를 world space로 되돌릴 때 단순한 2차원 위치뿐 아니라 depth와 같은 추가 정보가 필요한 이유이기도 하다.


Null Space는 사라지는 방향을 나타낸다

이 현상을 선형대수의 언어로 표현하면 Null Space와 연결된다.

영공간은

$$ \operatorname{Null}(A) = \{x\mid Ax=0\} $$

으로 정의된다.

즉 $A$를 적용했을 때 아무런 변화도 출력에 남기지 못하는 방향들의 집합이다.

만약 어떤 0이 아닌 벡터 $v$에 대해

$$ Av=0 $$

이라면

$$ A(x+v) = Ax+Av = Ax $$

이다.

즉 $x$에서 $v$ 방향으로 움직여도 출력은 변하지 않는다.

이 말은 곧 그 방향에 대한 정보가 변환 과정에서 사라진다는 뜻이다.


Null Space와 정보 손실

이를 다음과 같이 해석할 수 있다.

$$ \operatorname{Null}(A)=\{0\} $$

이면 변환 과정에서 완전히 사라지는 방향이 없다.

반대로

$$ \operatorname{Null}(A)\neq\{0\} $$

이면 특정 방향의 변화가 출력에는 전혀 나타나지 않는다.

그 결과 서로 다른 입력이 같은 출력으로 갈 수 있다.


Rank는 얼마나 많은 정보를 남겼는가?

이와 함께 중요한 개념이 Rank다.

행렬의 rank는 선형변환 이후에도 독립적으로 남아 있는 출력 방향의 개수라고 생각할 수 있다.

예를 들어 3차원 입력을 받아 2차원 평면으로 투영한다면, 최대 두 개의 독립적인 방향만 남을 수 있다.

즉 입력 공간의 모든 정보를 그대로 유지할 수 없다.

이런 관점에서 보면

  • Null Space는 어떤 정보가 사라지는가
  • Rank는 얼마나 많은 정보가 남는가

를 설명하는 개념으로 볼 수 있다.


역변환이 존재하려면?

만약

$$ b=Ax $$

에서 항상 원래 $x$를 유일하게 복원하고 싶다면

$$ x=A^{-1}b $$

와 같은 역변환이 존재해야 한다.

하지만 모든 행렬이 역행렬을 가지는 것은 아니다.

정사각행렬 $A$가 역행렬을 가지려면 입력 공간의 어떤 방향도 잃어버리지 않아야 한다.

즉,

$$ \operatorname{Null}(A)=\{0\} $$

이어야 한다.

이 경우 $A$는 invertible 하다고 한다.


Forward Problem과 Inverse Problem

이를 조금 더 일반적으로 보면 다음 두 문제로 나눌 수 있다.

1. Forward Problem

$$ x \xrightarrow{A} b $$

입력과 시스템을 알고 결과를 계산하는 문제다.

예를 들어 그래픽스에서는

  • 월드 좌표를 카메라 좌표로 변환하기
  • 모델 좌표를 화면 좌표로 변환하기
  • 특정 변환 행렬을 정점에 적용하기

등이 있다.


2. Inverse Problem

$$ b \xrightarrow{?} x $$

출력을 보고 원래 입력을 추정하는 문제다.

예를 들어

  • 화면 위치에서 월드 위치 추정하기
  • 이미지에서 3차원 구조 추정하기
  • 관측 결과에서 원래 원인을 복원하기

등이 여기에 해당한다.

Forward Problem은 비교적 단순한 경우가 많지만, Inverse Problem은 정보 손실 때문에 답이 없거나 여러 개일 수 있다.


정보를 잃었는데도 어떻게 역문제를 푸는가?

실제 문제에서는 추가적인 정보나 조건을 사용한다.

예를 들어 화면의 한 픽셀만으로는 정확한 3차원 위치를 알 수 없지만,

  • depth 값
  • 여러 카메라의 관측
  • 물체의 기하학적 제약
  • 이전 프레임의 정보

등을 추가하면 후보를 좁힐 수 있다.

즉 원래의 $Ax=b$만으로 부족한 문제에 추가적인 제약조건(constraint) 을 넣는 것이다.


선형변환은 단순히 좌표를 바꾸는 것이 아니다

선형변환을 처음 배울 때는 회전, 확대, 축소처럼 좌표를 바꾸는 도구로 이해하기 쉽다.

하지만 더 일반적으로 보면 선형변환은

입력 공간의 정보를 어떤 방식으로 보존하고, 결합하고, 혹은 제거하는가

를 결정하는 연산이다.

특히

$$ x\xrightarrow{A}b $$

에서 $A$가 어떤 방향을 없애는지를 이해하면

  • Null Space
  • Rank
  • Invertibility
  • Projection
  • Inverse Problem

이 하나의 흐름으로 연결된다.

다음 글에서는 시선을 조금 바꿔, 수치해석에서 왜 그렇게 자주

$$ Ax=b $$

형태의 문제가 나타나는지를 살펴본다.

핵심은 이산화(Discretization) 다.