행렬곱 as Composition | Chapter 4, Essence of Linear Algebra [3Blue1Brown]

olxtar·2024년 2월 7일
0

Comment :

선형 결합(Linear Combination)(벡터에 Scalar를 곱하는 상수배, 즉 Scaling 그리고 벡터끼리의 합)만으로도 이해할 수 있는 선형 변환(Linear Transformation)에 대해서 배워보았다. 벡터공간의 좌표계을 구성하는 기저벡터만 알고있으면 '변환'을 할 수 있고, 그 기저벡터를 행렬(Matrix)으로 표현하여 벡터에 곱해주는 것이 선형 변환을 계산하는 방법이란 것을 알 수 있었다.

Review

Technically speaking, Linear Transformation are functions with vectors as inputs and vectors as outputs, but I showed last time how we can think about them visually as smooshing around space in such a way that grid lines stay parallel and evenly spaced, and so that the origin remains fixed.

The Key of Linear Transformation is basis vectors i^,j^\hat{i}, \hat{j}. This is because any other vector could be described as a linear combination of those basis vectors.






01. 행렬곱

간단한 퀴즈를 통해 아래와 같은 상황을 생각해보자. (기저벡터 i^\hat{i}=[1,0], j^\hat{j}=[0,1]가 구성하는 벡터공간 내 존재하는) 벡터 v\vec{v} = [x,y] 를 아래와 같이 변환시키려면 어떻게 할까?

  1. CounterClockWise로 90도 회전
  2. (1칸의 Grid가 오른쪽으로 45도정도로) Shear

먼저 반시계방향으로 90도 회전하면 원래의 기저벡터는 아래와 같이 변할 것이다.

i^1=[01], j^1=[10]\hat{i}_{1}= \begin{bmatrix} 0 \\ 1 \end{bmatrix}, \space \hat{j}_{1}= \begin{bmatrix} -1 \\ 0 \end{bmatrix}

그러면 Step 1.까지 변환된 벡터는 아래와 같다.

v1=x[01]+y[10]\vec{v}_1 = x \begin{bmatrix} 0 \\ 1 \end{bmatrix} + y \begin{bmatrix} -1 \\ 0 \end{bmatrix}


그다음 Shear(전단, 즉 짜부)하면 기저벡터는 아래와 같이 변할 것이다.

i^2=[11], j^2=[10]\hat{i}_{2}= \begin{bmatrix} 1 \\ 1 \end{bmatrix}, \space \hat{j}_{2}= \begin{bmatrix} -1 \\ 0 \end{bmatrix}

그러면 Step 2.까지 변환된 벡터는 아래와 같다.

v2=x[11]+y[10](1)\vec{v}_2 = x \begin{bmatrix} 1 \\ 1 \end{bmatrix} + y \begin{bmatrix} -1 \\ 0 \end{bmatrix} \tag{1}

[!] 음 그러니까, 여러번의 선형변환을 한다하였을때 어차피 맨 마지막의 기저벡터 값만 알고 있으면 되는거임. (CCW로 90도 회전, CW로 90도 회전하면 원래와 동일한것처럼...)




이번에는 앞서 진행하였던 선형 변환을 끊어서 생각해보자

  • CounterClockWise 90도 회전
  • Shear

각 선형변환의 기저벡터는 아래와 같다. (각각의 선형 변환을 하면 기저벡터가 어떻게 되어있을지 상상하면 된다)

i^C=[01], j^C=[10]\hat{i}_{C} = \begin{bmatrix} 0 \\ 1 \end{bmatrix} , \space \hat{j}_{C} = \begin{bmatrix} -1 \\ 0 \end{bmatrix}

i^S=[10], j^S=[11]\hat{i}_{S} = \begin{bmatrix} 1 \\ 0 \end{bmatrix} , \space \hat{j}_{S} = \begin{bmatrix} 1 \\ 1 \end{bmatrix}

각각의 선형 변환의 Function인(?) Matrix를 나타내보면 아래와 같다.

Rotation=[0110]Rotation = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix}

Shear=[1101]Shear = \begin{bmatrix} 1 & 1 \\ 0 & 1 \end{bmatrix}

이제 (일반적으로 알고 있는 공식으로) 두 행렬을 곱해보자.

행렬 곱

\downarrow 2x2 행렬 두개를 곱할때

[abcd][efgh]=[ae+bgaf+bhce+dgcf+dh]\begin{bmatrix} a & b \\ c & d \end{bmatrix} \cdot \begin{bmatrix} e & f \\ g & h \end{bmatrix} = \begin{bmatrix} a \cdot e + b \cdot g & a \cdot f + b \cdot h \\ c \cdot e + d \cdot g & c \cdot f + d \cdot h \end{bmatrix}

[!] Rotation먼저, Shear나중의 순서 중요

[1101][0110]=[1110](2)\begin{bmatrix} 1 & 1 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} = \begin{bmatrix} 1 & -1 \\ 1 & 0 \end{bmatrix} \tag{2}

두 번의 선형변환을 진행한 후의 기저벡터들(1)과 각각의 선형변환을 행렬곱한(2) 두 수식을 봐보자.

v2=x[11]+y[10](1)\vec{v}_2 = x \begin{bmatrix} 1 \\ 1 \end{bmatrix} + y \begin{bmatrix} -1 \\ 0 \end{bmatrix} \tag{1}
[1101][0110]=[1110](2)\begin{bmatrix} 1 & 1 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} = \begin{bmatrix} 1 & -1 \\ 1 & 0 \end{bmatrix} \tag{2}

그렇다. 위 설명한 내용을 쭉 보면 아래와 같은 내용을 알 수 있다.

  • 행렬, 즉 Matrix를 벡터에 곱하는 것은 선형변환을 의미
  • 각기 다른 선형 변환을 여러번 수행 == 최종 기저벡터로의 선형 변환
  • (선형변환하는 순서, 즉 행렬곱의 순서만 지킨다면) 벡터에 행렬곱하는것을 여러번 수행 == 여러 행렬을 먼저 곱한 뒤 벡터에 행렬곱


[+] composition : 합성, 배합, 배치 ex) Function Composition, 합성함수

위 첫번째 그림 좌측 수식처럼 벡터에 각각의 선형변환(Rotation, Shear)을 진행하여도 우측 수식처럼 두 개의 선형변환 결과물 행렬(Rotation+Shear)임을 알 수 있다.


[+][!] 여기서 (중고등학교때 배운) 행렬곱 공식(이번에 배운) 선형변환과의 연결고리를 알 수 있다.
아래 수식에서 선형변환을 하지 않은 (초기)벡터 v=[x,y]\vec{v}=[x,y]의 기저벡터 i^=[1,0]\hat{i}=[1,0], j^=[0,1]\hat{j}=[0,1]에서 i^\hat{i}에만 초점을 맞춰보자.

[abcd][xy]=x[ac]+y[bd](3)\begin{bmatrix} a & b \\ c & d \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} = x \begin{bmatrix} a \\ c \end{bmatrix} + y \begin{bmatrix} b \\ d \end{bmatrix} \tag{3}

위와 같은 선형 변환을 통해서 원래의 기저벡터 i^=[1,0]\hat{i}=[1,0]i^1=[a,c]\hat{i}_1=[a,c]로 변환이 되었다. 여기서 한번 더 선형변환을 해준다면... ( i^1\hat{i}_1 에만 초점을 맞춘다)

[efgh][ac]=a[eg]+c[fh]=[ae+cfag+ch](4)\begin{bmatrix} e & f \\ g & h \end{bmatrix} \begin{bmatrix} a \\ c \end{bmatrix} = a \begin{bmatrix} e \\ g \end{bmatrix} + c \begin{bmatrix} f \\ h \end{bmatrix} = \begin{bmatrix} ae+cf \\ ag+ch \end{bmatrix} \tag{4}

(중고등학교때 배운) 행렬곱 공식이 슬슬 보인다.

사실 행렬과 벡터의 곱을 통한 선형변환은 기저벡터의 변환으로 생각할 수 있다. 위 (3)수식처럼 벡터 v\vec{v}의 기저벡터는 [1001]\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} 처럼 표현할 수 있으며 이 행렬과 [abcd]\begin{bmatrix} a & b \\ c & d \end{bmatrix}와의 곱은 그냥 그대로 [abcd]\begin{bmatrix} a & b \\ c & d \end{bmatrix}이 된다. 즉 선형변환 후 기저벡터가 [abcd]\begin{bmatrix} a & b \\ c & d \end{bmatrix}라는 뜻.


그렇다면 또 한번의 선형변환을 할 경우 위 기저벡터 [abcd]\begin{bmatrix} a & b \\ c & d \end{bmatrix} = [ac],[bd]\begin{bmatrix} a\\ c\end{bmatrix}, \begin{bmatrix} b \\ d \end{bmatrix} 각각이 선형변환됨을 의미한다.
따라서 편의상 첫번째 기저벡터 [ac]\begin{bmatrix} a \\ c \end{bmatrix}[efgh]\begin{bmatrix} e & f \\ g & h \end{bmatrix}를 통해 선형변환하는 것이 (4) 수식이다. 이제 아래와 같이 행렬곱 공식과 각 기저벡터를 선형변환하는 것을 비교해보면...


🔰 먼저 행렬곱 공식

[efgh][abcd]=[ea+fceb+fdga+hcgb+hd](5)\begin{bmatrix} e & f \\ g & h \end{bmatrix} \begin{bmatrix} a & b \\ c & d \end{bmatrix} = \begin{bmatrix} ea+fc & eb+fd \\ ga+hc & gb+hd \end{bmatrix} \tag{5}

🔰 그 다음 벡터의 선형변환 (4) 수식

[efgh][ac]=a[eg]+c[fh]=[ae+cfag+ch](4)\begin{bmatrix} e & f \\ g & h \end{bmatrix} \begin{bmatrix} a \\ c \end{bmatrix} = a \begin{bmatrix} e \\ g \end{bmatrix} + c \begin{bmatrix} f \\ h \end{bmatrix} = \begin{bmatrix} ae+cf \\ ag+ch \end{bmatrix} \tag{4}

(5)수식의 (첫번째) 기저벡터와 (4)수식의 값은 동일함을 알 수 있다.


이제 행렬곱 공식과 벡터의 선형변환과의 연결고리를 알 수 있다. (뭐... 다르게 말하자면 두 행렬, 즉 Matrix의 곱을 두가지 방식으로 생각하여 할 수 있다라고 알고 있으면 될것같다)




Quiz - 행렬곱셈의 결합법칙(Associativity)

행렬, 즉 Matrix A,B,CA,B,C에 대해서 아래의 수식이 성립하는지를 확인하라

(AB)C=A(BC)(AB)C=A(BC)

Answer : 이를 수식적으로 생각하여 증명할 수 있으나 아주 간단하게 선형변환 개념으로 생각하면 그냥 성립함을 간단하게 알 수 있다.

profile
예술과 기술

0개의 댓글