난 수학도가 아니다. 그래서, 사실 이런 거창한 제목을 다는 것이 매우 부담스럽지만... 그냥 글자 그대로 선형 사상의 원리를 내 방식대로 이해한 내용을 담아 보려 한다.
이 포스트는 아래의 공부 과정에서 파생된 포스트이다.
공리(axiom) : 명제 중에서도 가장 기본적인 명제를 공리라고 한다. 명제의 명제, 밑바탕 명제 뭐 이런 의미.
벡터 공간(vector space) : 집합(set) 내에 임의의 두 원소를 합(addition)하거나, 하나의 원소에 스칼라배(scalar multiplication)를 했을 때의 결과들이 그 집합을 벗어나지 않는 집합을 벡터 공간이라고 부른다. 논리적으로 정의하자면 합과 스칼라배로 대표되는 8개의 공리(axiom)를 만족하는 집합이다. 8개의 공리는 구글링하면 잘 나온다.
선형 변환(linear transformation) : 벡터에 어떤 연산을 가해 새로운 벡터를 만드는 함수. 정확히 정의를 내리자면 어떤 벡터공간에서 새로운 벡터공간으로 사상(mapping, 변환)해주는 함수를 뜻한다.
선형 사상(linear map) : 선형 변환과 같은 의미의 용어. 이 쪽이 좀 더 대표 용어로 통하는 것 같다.
변환 행렬(transformation matrix) : 선형변환을 행렬로 표현한 것. 일반적으로 이 행렬을 벡터(열벡터)에 곱하는 것으로 선형변환을 처리한다.
기저(basis) : 벡터 공간의 특징을 나타낼 수 있는 유일한 벡터의 집합. 좌표 공간으로 한정하면 차원 축(좌표축)에 대한 표준 기저(standard basis)를 떠올릴 수 있겠다. 임의의 벡터 공간의 모든 벡터는 해당 기저 벡터들에 대한 적절한 스칼라배 및 벡터 합을 통해 표현될 수 있다. (그래서, 기저라고 부른다.)
표준 기저(standard basis) : 좌표 공간에서 좌표성분 중 하나의 성분값만 1이고 나머지는 0인 벡터의 집합이다. 이 특징 때문에 표준기저는 차원의 크기만큼만 존재한다. 예를 들어 2차원이면 (1,0), (0,1) 두개만 존재한다. 그리고 이들은 서로 직교(orthogonal)한다.
위치 벡터(position vector) : 좌표 공간에서 원점을 시작점으로 하는 모든 벡터. 다르게 말하면 좌표계 내의 모든 좌표라고 볼 수 있다.
선형변환에 대해 부연하자면... 선형변환을 통해 벡터의 성분값이 바뀌는 것은 벡터공간이 달라졌기 때문에 생기는 부산물일 뿐이다. 즉, 벡터의 특성(힘과 방향)은 그대로이고 공간만 변화했다는 의미이다.
2차원 회전행렬의 예를 통해 위에 기술한 선형변환의 개념을 파악해본다.
우선 2D 평면을 시계반대방향으로 60도만큼 회전시키는 행렬은 아래와 같다.
$$ T = \begin{bmatrix} \cos60^\circ & -\sin60^\circ \\ \sin60^\circ & \phantom{-} \cos60^\circ \end{bmatrix} = \begin{bmatrix} \frac{1}{2} & -\frac{\sqrt3}{2} \\ \frac{\sqrt3}{2} & \phantom{-} \frac{1}{2} \end{bmatrix} $$
이 행렬을 이용해 2차원 좌표계에 있는 위치 벡터 v = (3, 2)를 변환해 본다. (즉, (3, 2)라는 점을 60도 회전시키는 작업)
2차원 좌표계는 (1,0), (0,1)이라는 표준 기저를 이용하여 모든 벡터(좌표)를 표현할 수 있다. 벡터 v 역시 아래와 같이 표현이 가능하다.
$$ \vec{e_x} = (1, 0) ,\quad \vec{e_y} = (0, 1) $$ $$ \vec v = 3 \vec{e_x} + 2 \vec{e_y} $$
이제 위 회전행렬(T)을 함수 T(x)라고 치고 v에 씌운다.
$$ T(\vec v) = T(3 \vec{e_x} + 2\vec{e_y}) $$
선형 변환은 벡터 공간을 다른 벡터 공간으로 바꾸는 작업이므로 벡터 공간의 공리(axiom)가 그대로 적용된다. 즉,
$$ T(3 \vec{e_x} + 2 \vec{e_y}) = T(3 \vec{e_x}) + T(2 \vec{e_y}) = 3T(\vec{e_x}) + 2T(\vec{e_y}) $$
이 상태에서 처음으로 돌아가 v를 열벡터(v)로 하여 T와 곱한 결과를 살펴 본다.
$$ T \cdot v = \begin{bmatrix} \cos60^\circ & -\sin60^\circ \\ \sin60^\circ & \phantom{-} \cos60^\circ \end{bmatrix} \begin{bmatrix} 3 \\ 2 \end{bmatrix} $$ $$ = \begin{bmatrix} 3 \cos60^\circ -2 \sin60^\circ \\ 3 \sin60^\circ + 2 \cos60^\circ \end{bmatrix} $$
이 결과를 새로운 벡터 w 라고 하고 기존 벡터의 스칼라 값들로 묶어서 정리한다.
$$ \vec w = (3 \cos60^\circ -2 \sin60^\circ \:,\: 3 \sin60^\circ + 2 \cos60^\circ) $$ $$ = 3 (\cos60^\circ, \sin60^\circ) + 2 (-\sin60^\circ, \cos60^\circ) $$
뭔가 앞서 T(x)를 씌웠을 때와 모양이 비슷해졌다. 둘 다 어차피 동일한 결과이기 때문에 등식(equality)으로 표현해보자.
$$ T(\vec v) = 3T(\vec{e_x}) + 2T(\vec{e_y}) = 3 (\cos60^\circ, \sin60^\circ) + 2 (-\sin60^\circ, \cos60^\circ) $$
그렇다. 결국, 아래의 등식이 성립하는 것이다.
$$ T( \vec{e_x} ) = (\cos60^\circ, \sin60^\circ) $$ $$ T( \vec{e_y} ) = (-\sin60^\circ, \cos60^\circ) $$
여기서 ex를 열벡터로 놓고 식을 풀어보면
$$ T \cdot e_x = \begin{bmatrix} \cos60^\circ & -\sin60^\circ \\ \sin60^\circ & \phantom{-} \cos60^\circ \end{bmatrix} \begin{bmatrix} 1 \\ 0 \end{bmatrix} = \begin{bmatrix} \cos60^\circ \\ \sin60^\circ \end{bmatrix} $$
ey도 마찬가지의 과정이다.
바로 이 마지막 부분이 선형 변환의 원리를 깨닫게 되는 지점이다. 결국, 처음에 설명했던 벡터 공간의 변환으로 귀결이 된다. 즉, 선형변환은 벡터의 성분값를 바꾸는 게 아니라 벡터 공간의 기저 자체를 변환함으로써 새로운 벡터공간을 만드는 작업을 수행하는 것이다. 이 벡터공간에 벡터 v를 그대로 놓기만 하면 저절로 성분값이 변화된 벡터 w가 나오게 된다.
이 상태에서 다시 시계방향으로 60도 회전시키는 변환행렬(transformation matrix)을 적용하면 어떻게 될까?
우선, 시계방향으로 60도 회전시키는 변환행렬은 아래와 같다.
$$ M = \begin{bmatrix} \phantom{-} \cos60^\circ & \sin60^\circ \\ -\sin60^\circ & \cos60^\circ \end{bmatrix} $$
다 생략하고 기저를 변환하는 부분으로 가보자. 처음 변환된 벡터 공간의 기저를 아래와 같이 놓는다.
$$ \vec{f_1} = (\cos60^\circ , \sin60^\circ) \quad,\quad \vec{f_2} = (-\sin60^\circ, \cos60^\circ) $$
각각에 행렬 M을 적용하여 두번째 변환을 수행한다.
$$ M \cdot f_1 = \begin{bmatrix} \phantom{-} \cos60^\circ & \sin60^\circ \\ -\sin60^\circ & \cos60^\circ \end{bmatrix} \begin{bmatrix} \cos60^\circ \\ \sin60^\circ \end{bmatrix} = \begin{bmatrix} \cos^{2}60^\circ + \sin^{2}60^\circ \\ 0 \end{bmatrix} $$
$$ M \cdot f_2 = \begin{bmatrix} \phantom{-} \cos60^\circ & \sin60^\circ \\ -\sin60^\circ & \cos60^\circ \end{bmatrix} \begin{bmatrix} -\sin60^\circ \\ \phantom{-} \cos60^\circ \end{bmatrix} = \begin{bmatrix} 0 \\ \sin^{2}60^\circ + \cos^{2}60^\circ \end{bmatrix} $$
여기서 각 삼각함수의 값은,
$$ \cos60^\circ = \frac{1}{2} \quad , \quad \sin60^\circ = \frac{\sqrt3}{2} $$
이므로, 위에 적용하면
$$ M \cdot f_1 = \begin{bmatrix} (\frac{1}{2})^2 + (\frac{\sqrt3}{2})^2 \\ 0 \end{bmatrix} = \begin{bmatrix} 1 \\ 0 \end{bmatrix} $$
$$ M \cdot f_2 = \begin{bmatrix} 0 \\ (\frac{\sqrt3}{2})^2 + (\frac{1}{2})^2 \end{bmatrix} = \begin{bmatrix} 0 \\ 1 \end{bmatrix} $$
다시 맨 처음 벡터 공간인 2차원 좌표계의 표준 기저로 돌아왔다. 당연히 벡터 w도 저절로 벡터 v로 돌아오게 되었다.
이렇듯 선형변환은 어떤 공간의 특정 원소를 변환하는 것이 아닌 공간 자체를 변환한다는 개념으로 이해해야 한다. 내가 좀 머리가 나빠서 이 개념까지 오는데 몇주가 걸렸는지 모르겠다. 글을 남기는 이 순간도 사실 명백하게 이해를 했는지는 의문이다.
'Mathematics' 카테고리의 다른 글
선형 회귀(Linear Regression) 실습 - C++ 소스 코드 (0) | 2021.02.26 |
---|---|
최소제곱법(least squares method)이 편미분을 하고 편도함수의 출력을 0으로 놓는 이유 (4) | 2020.12.14 |
가능도(Likelihood)와 확률(Probability)의 차이 (0) | 2020.09.17 |
2차원 회전행렬(Rotation Matrix)의 고유벡터(Eigenvector)는? (2) | 2020.07.21 |
직선(Line)은 벡터 공간(Vector Space)인가? (0) | 2020.07.04 |