https://www.youtube.com/watch?v=uQhTuRlWMxw&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab&index=7
지금쯤이면 아마도 알거야 이 동영상 시리즈의 대부분이 행렬과 벡터연산의 이해를
선형변환의 시각화 렌즈를 통해서 본거지.
이 동영상도 마찬가지야. 역행렬(inverse matrix) 개념을 설명할때나
열공간, 계수(rank), 영공간(null space) 설명할때도 그런 렌즈를 통해서 설명할거야.
미리 말해두건대, 이런 것들을 실제 계산하는 방법에 대해서는 다루지 않을거야.
누구에게는 그게 꽤 중요할 수도 있지만.
다른 동영상들을 찾아보면 그런 계산법을 다루는 좋은 게 많이 있을거야.
검색할때 키워드로 "가우스 소거법(Gaussian elimination)" 나 "Row echelon form" 이라고 검색해봐.
내가 여기서 설명하려고 하는 것, 나머지 직관부분이 더 중요하다고 생각해.
또, 실제로 이런 것들을 계산해주는 소프트웨어를 보통 구할 수 있어.
우선, 선형대수의 유용성에 몇마디 말하자면
지금쯤이면 너는 이미 공간의 조작에 대한 설명이라는 힌트는 가지고 있을거야.
컴퓨터 그래픽이나 로봇 분야에서 유용하지.
그러나 선형대수가 훨씬 광범위하게 적용가능하다고 하는 주된 이유는,
어떤 기술적 분야이든지 필요하다고 하는 이유는,
어떤 방정식계이든지 해결할 수 있기 때문이야.
여기서 "방정식계(system of equations)" 란, 미지수인 변수 리스트와
변수들과 관련된 방정식의 리스트를 가졌을 때를 말해.
많은 상황에서, 이런 방정식들은 상당히 복잡해.
하지만, 운이 좋으면 이렇게 어떤 특정한 형태로 다룰 수 있어.
각 방정식 내에서, 각 변수들의 역할은 어떤 상수를 스케일링하는 거야.
그리고 스케일된 변수들을 서로 더하는게 전부야.
지수함수나 어떤 특이한 함수같은 건 없어. 두 변수를 서로 곱하는 것도 없고 말야.
이런 변수들을 조직화한 게 일종의 특수한 방정식계야.
모든 변수들을 좌항으로 던지고, 오른쪽에는 상수항을 놓아.
세로 방향으로도 같은 변수끼리 열맞추는 것도 좋아.
이렇게 하다보면 숫자가 0 인 변수도 있어서 하나의 방정식에 어떤 변수가 없을때도 있지.
이렇게 놓은 것을 "선형 방정식계(linear system of equations)" 라고 해.
행렬-벡터 곱셈이랑 많이 비슷해보이는 걸 눈치챘을거야.
사실, 모든 방정식들을 하나의 벡터방정식으로 표현할 수 있어.
상수 계수만을 모아서 행렬을 만들고, 변수들을 모아서 벡터를 만들어서
행렬 벡터 곱셈하면 다른 상수벡터랑 같아져.
상수 행렬을 A 라고 하자.
굵은 x 변수는 벡터를 나타내도록 하고
오른쪽의 상수 벡터를 v 라고 하자.
이렇게 쓴 한 줄은 선형방정식계를 짧게 표현한 것일 뿐이야.
이렇게 표현하는 것은 문제에 대해 상당히 멋진 기하학적 해석을 들어나게 해줘.
행렬 A 는 어떤 선형변환을 나타내고, 그럼 Ax = v 를 푸는 것은
변환후에는 벡터 v 가 되는 벡터 x 가 있는지 찾아보는게 돼.
무슨 말인지 잠깐 생각해보자.
너는 여러 변수들 모두를 섞은 복잡한 개념을 머리속에 담으려면
그냥 공간을 변형시키는 것으로 생각하고, 어떤 벡터가 어디로 이동하는지만 찾으려고 하면 돼.
멋지지 않아?
간단하게 시작해보자, 2개의 미지수를 가진 두개의 방정식 계를 생각해보자.
이때 행렬 A는 2 × 2 행렬이 되고,
v 와 x 벡터는 2차원 벡터가 돼.
이제, 이 방정식의 해를 찾는 방법은
행렬 A 변환이 모든 공간을 더 낮은 차원으로 축소시키는지, 선이나 점같은 공간으로,
아니면 공간 전부가 그대로 남는지를 알아보는게 시작점이야.
지난 동영상에서 다룬 말을 빌리자면, 행렬 A 의 행렬식 값이 0 인지,
아니면 0 값이 아닌지로 나누는 것과 같아.
우선은 가장 흔한 경우인 행렬식값이 0이 아닌 경우부터 살펴보자.
공간을 제로 영역으로 축소시키지 않는 경우야.
이 경우, 특정 v 벡터로 변할 수 있는 벡터는 항상 하나만 있어. (역자: 일대일 대응 변환)
변환을 역방향으로 돌리면 찾을 수 있어.
뒤로감기처럼 플레이하며 벡터 v 가 어디로 가는지 따라가보면
벡터 x 를 찾을 수 있을거야. Ax = v 에서 x 를 말야.
역으로 변환하는 것, 이것은
일반적으로 "A의 역행렬(the inverse of A)" 이라고 해.
A 의 윗첨자로 -1 을 표시해놓지.
예를 들어, A가 반 시계 방향으로 90 ° 회전이라면
그 역은 시계방향으로 90 ° 회전일거야.
행렬 A 가 j-hat 을 오른쪽 한칸만큼 기울이는 변환이라면
그 역은 j-hat 왼쪽 방향으로 한칸만큼 기울이는 변환이야.
일반적으로, A 역행렬의 특별한 속성은 A 행렬을 적용한 뒤,
그다음 A 역행렬을 적용하면, 다시 시작한 점으로 돌아오게 돼.
이렇게 연달아 적용하는 변환을 행렬 곱셈으로 대수적 축약할 수 있어.
그래서 A역행렬 변환이 가진 핵심속성은 이거야. A역행렬 곱하기 A행렬은
아무 것도 바꾸지 않는 행렬과 같다는 것.
아무것도하지 않는 변환을 "항등 변환(identity transformation)" 이라고 불러.
i-hat 과 j-hat 을 이동시키지 않고 놔두지.
그래서 그대로 (1,0),(0,1) 이야.
일단 역행렬을 찾았으면, , 수동으로 했든 컴퓨터를 사용했든,
방정식 역행렬을 v 벡터에 곱해서 풀 수 있어.
자 다시한번, 기하학적으로 이 말이 무슨 뜻이냐면, v 벡터에 역변환을 가한거야.
이렇게 행렬식 값이 0이 아닌 경우에, 아무렇게나 랜덤하게 행렬을 만들면 대부분 이 경우일텐데,
이게 2개의 미지수에 2개의 방정식을 가진 문제와 똑같아져.
이런 경우 대부분은 확실히 하나의 유일한 해가 존재해.
이 아이디어는 더 높은 차원에서도 맞아.
미지수 개수와 방정식 개수가 같은 경우
또다시, 방정식계는 기하학적 해석으로 변환해서
어떤 변환을 나타내는 A 행렬과
어떤 벡터 v 를 가지고
벡터 v 로 변환되는 벡터 x 를 찾는 게 되지.
변환 A 가 공간을 더 낮은 차원으로 뭉게지 않는 한,
즉, 행렬식 값이 0 이 아닌 경우, 역행렬 A 가 존재하게 돼.
이 역행렬의 속성은 A 를 적용한 뒤, A 역행렬을 적용하면, 아무것도 변하지 않는 거지.
그리고 이 방정식을 푼다는 것은, 역행렬을 v 벡터에 곱하는 것이고.
하지만 행렬식 값이 0이면, 그리고 이 방정식계에 대한 변환이
더 작은 차원으로 뭉게버린다면, 역행렬은 존재하지 않게돼.
뭉게진 선을 되돌려서 평면으로 만들 수 없어.
적어도, 그 함수가 할 수 있는 일이 아니야.
그렇게 하려면 필요한게, 각 벡터를 변환시켜서
하나의 온전한 선, 선을 이루는 모든 벡터로 바꿔야 해.
하지만, 함수들은 하나의 입력을 받아 하나의 출력만 만들어.
마찬가지로, 3개 미지수로 구성된 3개의 방정식에서도
이같은 변환을 나타낼 길은 없어.
3차원 공간을 평면으로 축소시키거나
또는 선이나 점으로 뭉게뜨리는 것은 가능해도 말야.
행렬식 값 0 인 모든 것은
어떤 지역이라도 영부피로 만들기 때문에
해는 여전히 존재할 수 있긴 해. 역행렬이 없는 경우라도 말야.
어떤 변환이 공간을 하나의 선으로 변환시키는 경우라면,
벡터 v 가 그 선 위에 놓여있는 경우가 다행인 거야. (역자: 이때만 해를 구할 수 있다)
너는 아마도 행렬식 0 값인 경우가 다른 경우보다 제한되는 느낌을 받을 거야.
3x3 행렬을 예를들면, 해가 존재하기 상당히 힘들어 지는 경우가 있어.
공간을 하나의 선으로 수축하는 경우가 공간을 평면으로 수축하는 경우보다 더 말야.
심지어 둘 다 행렬식 값은 0 으로 같은데도 말야.
이 경우 우리는 단순히 "행렬식 0(zero determinant)" 보다 더 정확한 표현이 필요한 거 같아.
변환의 결과가 선이라면, 즉 1차원 이라면,
이 경우 랭크(rank)=1 이라고 해.
모든 벡터가 2차원 평면에 놓여있다면,
이때는 랭크(rank)=2 라고 말해.
그래서 단어 "랭크(rank)" 의 의미는 변환 결과의 차원의 수를 말해주지.
예를 들어, 2 × 2 행렬의 경우에, 최대로 될 수 있는 랭크는 2야.
이 말은 기저벡터들을 확장시켜 온전한 2차원 공간을 만들 수 있다는 거야. 행렬식 값이 0 이 아니라는 뜻이지.
그러나 3 × 3 행렬에서, 랭크가 2 라는 말은 공간이 붕괴(축소) 했음을 말해.
하지만 랭크 1 만큼 붕괴된 것은 아닌 거지.
3차원 변환의 행렬식 값이 0 이 아니라면, 3차원 공간의 결과가 온전한 3차원이라면,
이때는 랭크 3 이야.
행렬의 가능한 결과의 집합을, 선이든, 평면이든, 3차원 공간이든지 간에,
그 행렬의 "열 공간(column space)"라고 불러.
넌 지금쯤 이 이름이 어떻게 나왔는지 알 수 있을거야.
행렬의 열들은 기저벡터의 변환 후 위치이고,
이 변환후 기저벡터들의 확장공간은 가능한 모든 결과공간을 알려주지.
즉, 열 공간(column space) 란, 행렬의 열들의 확장공간이야.
그래서, 랭크의 좀 더 정확한 정의는
열공간의 차원 수야.
이 랭크가 높아질 수록, 열의 갯수와 같다는 말이고, 이 때를 "온전한 랭크(full rank)" 라고 불러.
기억해야할 것은, 영 벡터(zero vector)는 어느 열공간에든지 포함되어 있다는 거야.
선형변환은 반드시 원점이 고정되어 있어야 하기 때문이야. (역자: 앞선 "linear tranformation" 챕터 확인)
완전한 랭크(full rank) 인 변환에서, 원점으로 변하는 벡터는 영벡터 뿐이야.
그렇지만 행렬이 온전한 랭크(full rank) 가 아니라면, 즉 더 작은 차원으로 축소된다면,
제로벡터가 되는 수많은 벡터들을 가지게 될거야.
2 차원 변환에서 선으로 축소되는 경우를 예를 들게.
서로 다른 방향을 가리키는 벡터들이지만
같이 원점으로 뭉게지는 수 많은 벡터들이 있어.
3 차원 변환이 평면으로 축소되는 예를 들면,
마찬가지로 원점으로 이동하는 선의 수많은 벡터들이 존재해.
3차원 변환이 공간을 선으로 축소시킨다면,
한 평면의 모든 벡터들이 원점으로 이동하게 돼.
원점으로 이동되는 벡터들의 집합을 그 행렬의 "영공간(null space)" 혹은 "커널(kernel)" 이라고 불러.
그것은 널 (null)이 되는 모든 벡터의 공간이라는 뜻이야.
이 벡터들 모두 영벡터로 이동한다는 말이야.
선형 방정식계 용어로 말하면, 벡터v 가 영벡터인 경우,
영공간(null space) 모두가 해가 될 수 있어.
그럼 좀 더 높여서 훑어보자.
선형방정식계가 기하학적으로 어떻게 생각할 수 있는지 정리해보자.
각 계(system)는 선형변환과 같은 것을 가지고 그와 관련된 선형 변환의 일종,
그 변환이 역변환을 가지면, 계(system) 를 풀기 위해 역변환을 사용하면 돼.
그게 안된다면, 열공간(column space) 이라는 개념이 해의 존재 여부를 알려줄거야.
영공간(null space) 라는 개념이 주는 것은 모든 가능한 해집합이 어떻게 될지를 알려줘.
다시 말하지만, 여기서 다루지 않은 많은 것들이 남아있어.
특히 이것을 어떻게 계산해야 하는지는 다루지 않았어.
또 예를 들 때 제한을 두어서 방정식의 갯수와
미지수 갯수가 동일하게 했어.
그러나 여기에서 목표는 모든 것을 가르치는게 아니야.
역행렬, 열공간, 영공간에 대한 튼튼한 직관을 따르게 하는 거야.
그리고 이런 직관은 나중에 다른 것들을 학습할때 더 많은 결실을 맺게 해줄거야.
다음 동영상에는, 많은 요청이 있었는데, 비정사각형 행렬에 대해 간략하게 다룰거야.
그런 다음, 그 후, 나는 dot product 에 대해 다룰거야.
나중에 너가 보면 알겠지만, 정말 멋질 거야.
선형변환이라는 빛 아래서 살펴보게되면 말야.
그때 만나!