Matrix Determinant에 대해 배워봤다.
수학적으로 너무 깊게 들어갔다가는 영영 머신러닝 못 배울 것 같아서
일단 퀵하게 보고, 필요할 때마다 좀 더 딥다이브 하는 방법으로 공부할 계획이다.
행렬식이라고도 하고, 강의에서는 행렬 판별식이라고 했는데, 후자가 좀 더 구체적인 표현이다.
먼저 위키백과의 설명을 보면 다음과 같이 나와 있다.
정사각 행렬에 스칼라를 대응시키는 함수의 하나이다. 실수 정사각 행렬의 행렬식의 절댓값은 그 행렬이 나타내는 선형 변환이 초부피를 확대시키는 배수를 나타내며, 행렬식의 부호는 방향 보존 여부를 나타낸다.
[출처, 위키피디아]
정사각 행렬을 스칼라로 만들어주는 함수라고 일단 이해했다. 그렇게 나온 스칼라에 따라서 행렬이 얼마나 크게, 어떻게 선형변환을 시키는지 판별하는 것이라고 하는 듯 하다.
이때 행렬식을 통해 얻어진 스칼라 값이 0이라면 그 행렬식은 역이 없는 행렬식인 것이다.
선형대수로 두 개의 미지수가 있는 방정식을 풀 때 두 직선이 겹쳐서 해를 구하지 못하는 경우를 떠올리면 된다.
역행렬이 있으려면 각 벡터끼리 매핑이 돼야 한다. 그런데 위에서 말한 것처럼 두 직선이 겹쳤을 때는 입력값에 대응하는 출력값을 찾을 때 전부 0이 나와버려서 역행렬을 구할 수 없는 것이라고 이해했다.
강의에서는 해가 무한이거나 해가 없는 경우를 생각하면 된다고 한다.
A =[[2, 0],
[0, 2]]
위 행렬 A를 아래 벡터 B에 곱해주는 경우를 가정해보자.
B =[[x],
[y]]
결과는 아래와 같이 나온다.
[[2x],
[2y]]
벡터B가 두 배가 됐다.
행렬 A는 어떤 벡터를 확대시켜주는 역할을 하며,
행렬 A에 행렬식을 사용하면 2×2−0×0=4 의 결과가 나온다.
변환 후에 2차원 공간의 면적이 4배가 된다는 뜻으로, 곧 공간을 2배로 확대하는 행렬이라 볼 수 있다.
이 외에도 회전변환의 경우를 살펴보면
A =[[0, 1],
[-1, 0]]
B =[[x],
[y]]
같은 연산을 수행했을 때 아래와 같은 결과가 나온다.
[[y],
[-x]]
이것은 시계방향으로 90도 회전한 벡터이며, 행렬식 값은 1이다.
행렬식 값은 이 행렬이 90도 회전을 수행했지만, 면적의 변화는 없는 보존 변환이라는 것을 의미한다.