앞서 Basis Vector, Span, Linear Combination에 대하여 학습하였다.
선형변환(Linear Transformation)과 행렬(Matrix)의 관계
01. 선형 변환(Linear Transformation)
v→T(v)→w
선형 변환(Linear Transformation)에서의 "변환"은 "함수"의 다른말일 뿐이다. 즉 어떠한 입력(input)을 받아 어떠한 출력(output)을 내뱉는... 이를 선형대수 맥락으로 보자면, 특정 벡터를 다른 벡터로 바꾸는 함수를 선형 변환(Linear Transformation)이라고 한다.
[?] 왜 굳이 선형 함수라는 말을 사용하지 않고, 선형 변환이라고 할까? → The word "transformation" suggests that you think using Movement'움직임'이라는것을 생각하도록..
위 그림처럼 어떠한 벡터를 선형 변환(Linear Transformation)하였을때의 결과, 즉 출력되는 벡터는 단순히 뿅 넣으면 뿅 나오는것으로 생각치 말고 벡터의 움직임으로 생각할 필요가 있다. 위처럼 1개의 입력에 대한 1개의 출력을 생각하는 것은 쉬울 수 있으나, 여러 개의 입력에 대하여 (T(v)가 어떠한 변환을 하여) 여러개의 출력을 생각하는 것은 '벡터(공간)의 움직임'↓ 으로 생각하는 것이 더 좋을 수 있다.
물론 아래 그림처럼 매우 복잡한 Transformation이 존재할 수 있지만...
다행히도 선형대수학(Linear Algebra)에서의 변환(Transformation)은 다소 쉽게? 제한된다.
💫 시각적인 설명
Lines remain lines : Transformation 이전에 존재하는 모든 '선'들은 Transformation 이후에도 직선이어야 함
Origin remains fixed : 원점은 그대로 원점이어야 함
Grid lines remain parallel and evenly spaced : 격자선들이 Transformation 이후에도 '평행'하고 '동일한 간격'으로 존재해야함.
선형변환을 수식적으로 나타내는 법
자 이제 대충 선형 변환(Linear Transformation)에 대한 개념과 시각적인, 기하학적인 이해(?)는 했다치자. 그러면 이러한 변환은 수치적으로 어떻게 표현할까? (바꿔말해 아래 ?에 어떠한 수식을 써야 변환을 설명할 수 있을까?)
[xinyin]→?→[xoutyout]
결론은 기저벡터가 어떻게 변하는지만 알면 된다! 변환되었다라는 것을 수식적으로 T(x)라고 표현하면 아래와 같은 수식이 성립한다. 즉 변환 이전 벡터인 v의 기저벡터의 상수배 Scalar값을 c1,c2라 했을때, 변환 이후 기저벡터의 c1,c2 상수배한 것이 변환된 벡터 T(v)를 나타낸다는 것이다. 조금 더 정확하고 세부적인 내용은 다음 링크(행렬과 선형변환-공돌이의 수학정리노트)를 참고하자
v=c1i^+c2j^
T(v)=c1T(i^)+c2T(j^)
예시를 통해 자세히 알아보자.
아래와 같은 벡터 v가 있다고 생각해보자.
v=[21](1)
벡터 v는 (특정 기저벡터를 따로 언급해주지 않는 이상 암묵적으로) 기저벡터 i^,j^를 가진다고 볼 수 있으므로 이와 같이 표현할 수 도 있다.
v=2i^+1j^
c1=2,c2=1(1-a)
wheni^=[10],j^=[01]
이 때 위 그림과 같이 (원래의 벡터 v의) 기저벡터 i^,j^를 새로운 기저벡터, 즉 변환된 기저벡터 T(i^),T(j^)로 선형 변환하였다면! (빨간점은 무시하자!)
T(i^)=[21],T(j^)[−31](2)
아래의 식이 성립한다.
T(v)=c1T(i^)+c2T(j^)
위 식에서 우리는 우측에 있는 모든 값을 알고 있다. c1,c2는 (1-a) 식에 나와있고, 변환된 기저벡터인 T(i^),T(j^)는 (2) 식에 있다. 따라서 위 식은...
T(v)=2⋅[21]+1⋅[−31]=[13](3)
자 (3) 수식의 결과, 즉 변환된 벡터 v = T(v)는 [13]을 아래 그림에서 생각해보자. 변환된 벡터 T(v)를 (원래 기저벡터를 기준으로 x축 1칸, y축 3칸의 위치)노란색 점으로 나타내었다.
그러면 이제 변환된 기저벡터 T(i^)=[2,1],T(j^)=[−3,1] 기준의 공간, (위 그림에서 푸른색 격자)으로 바라봐보자. [!] 노란색 점은 변환된 기저벡터 기준으로 2칸, 1칸 이동된 지점이다.
다시 맨 처음 수식을 살펴보자
v=c1i^+c2j^
T(v)=c1T(i^)+c2T(j^)
즉 어떠한 벡터의 선형 변환(Linear Transformation)이란 원래 벡터의 기저벡터('만')을 변환시켜주는, 다시 말해 (위 그림처럼) 벡터공간에서의 기저벡터를 변환하여 변환된 격자, 좌표계에서의 벡터로 바꿔주는 것이다. 또한 앞서 말하였듯이 어떠한 벡터라는 것은 모든 벡터가 될 수 있으므로, 벡터공간에 대한 선형 변환(Linear Transformation)으로도 생각할 수 있다.
예시로 보여주었던 식을 보면, 원래의 벡터 v는 [2,1]이었고, 변환된 벡터 T(v)는 [1,3]이다. 우리는 이 변환된 벡터 [1,3]을 원래 기저벡터 기준의 좌표계에 자연스럽게 찍게되는데... 사실 이는 선형 변환된 벡터공간 좌표계에서 [2,1]을 나타내는 것이된다. [+] (3) 수식을 거꾸로 봐보자.
T(v)=2⋅[21]+1⋅[−31]=[13](3)
이제 정리를 해보자
(R2, 2차원에서) 우리는 어떤 벡터의 선형 변환을 자유롭게 할 수 있다. 단지 2+2개의 숫자, 즉 기저벡터를 알고있으면... 보통 이 (2개의 기저벡터를 표현할 수 있는) 4개의 숫자를 2x2 행렬로 나타낸다.
T(i^)=[21],T(j^)[−31]
T(i^),T(j^)=i^new,j^new=[21−31]
예를 들어서
어떤 벡터 v=xi^+yj^를 위처럼 새로운 기저벡터가 그리는 좌표? 벡터공간으로 변환하려면 아래 수식과 같이 간단하게 계산할 수 있다. 이를 심플하게 생각해보면 어떤 벡터를 변환 이후의 새로운(new) 기저벡터로 스케일링하고 합한다는 의미이다.
T(v)=x⋅i^new+y⋅j^new=x⋅[21]+y⋅[−31]
02. 행렬(Matrix)
2+2개의 숫자, 즉 기저벡터(두 쌍)를 의미하는 값만 있으면 어떤 벡터를 그 기저벡터가 구성하는 벡터공간 좌표계로 선형 변환할 수 있다.
[abcd]=i^new,j^new(4)
어떤 벡터 v=[xy]를 새로운 기저벡터-(4)수식가 구성하는 벡터공간 좌표계로 변환하여보자. 그냥 원래 벡터의 Scalar값을 새로운 기저벡터에 곱한 뒤(Scaling), 더해주면 된다(벡터합)
x⋅[ab]+y⋅[cd]
[axbx]+[cydy]=[ax+cybx+dy](5)
[!] (5) 수식의 결과값을 보면 하나의 공식(?)이 떠오른다...
[abcd]⋅[xy]=[ax+cybx+dy](6)
그렇다. 위 (6) 수식처럼 행렬(Matrix)과 벡터(Vector)의 곱셈이 (지금까지 설명했었던) 선형 변환을 하는 계산 방법이었던 것이다.
추가적으로 아래의 링크 등을 참고하면서 선형 변환(Linear Transformation)에 대해 조금 더 알아보자