- 이 글은 Mathematics for Machine Learning(Cambridge Univ. Marc Peter Deisenroth 외 2)의 내용을 번역 및 재해석해서 작성한 글입니다. 위 책의 내용에 이해를 돕는 글을 추가로 첨부하였으며 완전한 번역본은 아닙니다.
선형대수학 : Linear Algebra와 Machine Learning
왜 머신러닝을 다루기에 앞서서 수학의 한 분야인 선형대수학을 먼저 배우게 될까요? 그 전체적인 overview를 시작하려고 합니다. 이전의 orientation에서도 잠깐 다루었지만 선형 대수학은 벡터를 다루는 분야입니다. 실세계의 다양한 대상들을 벡터로 변환할 수 있기 때문에 이를 대상으로 다루는 선형 대수학은 머신 러닝에서 무척 중요한 역할을 합니다.
대수학? 선형대수학? 벡터?
수학에서 어떠한 대상을 다루게 될 때는 주로 그 대상이 무엇인지를 정의하고, 그 대상들에 대한 연산, 체계, 특성 등을 연구합니다. 이러한 분야를 주로 수학에서는 대수학(algebra)라고 부르고, 그 중에서 특히 선형 대수학(Linear Algebra)은 벡터를 대상으로 다룹니다. 이 선형대수학에서는 벡터의 정의, 벡터를 다루는 (연산하는) 과정 등에서 발견하게 되는 특성 등을 살펴보는 분야입니다.
우리(비수학자)는 주로 벡터라는 단어를 듣게 되면 보통 '기하적인 벡터'를 떠올립니다. 가장 먼저 벡터라는 단어를 듣게 되는 때는 물리학을 다루는 과학 시간입니다. 두 힘이 작용할 때 그 힘이 어떻게 합성되는지를 벡터를 통해 배우게 되죠. 즉, 두 힘이 이루는 벡터를 두 변으로 하는 평행사변형을 만든 다음에 그 대각선의 길이와 방향으로 벡터를 만들면서 개념을 만들었던 기억이 납니다. 그리고 실수배도 배우게 됩니다. 힘을 두 배로 키우게 된다면? 반대로 힘을 준다면? 등으로 실수배를 배웠습니다.
이 후 고등학교 수학의 기하 교과에서 벡터의 출발점을 좌표평면의 원점으로 고정을 시키는 상황을 살펴봅니다. 그렇게 하면 벡터의 화살표 끝이 가리키는 위치가 좌표 평면의 한 점과 1-1 대응이 되는데요, 이 때문에 벡터를 좌표로 표현할 수 있습니다. 벡터를 좌표로 표현해서 다루는 이 내용을 공간벡터라고 합니다.
일반적으로 (수학에서) 벡터라는 것은
- 합해도 원래 대상의 범주 안에 있고, (덧셈에 대해 닫혀있고)
- 실수 값인 스칼라를 곱해도 다시 원래 대상의 범주안에 있는 (스칼라곱이 정의되는)
대상들을 의미합니다. (수학적인 정의는 나중에 ch2.4에서 다시 다둘 예정입니다.) 이러한 벡터의 예를 몇가지 들어보면 다음과 같습니다.
예시-1. 기하적인 벡터.
이 벡터는 우리가 물리, 수학 시간에 배웠던 벡터와 같은 의미입니다. 넘어갈께요.
예시-2. 다항식도 벡터.
단항식은 숫자 혹은 숫자와 x의 거듭제곱의 곱으로 이루어진 식이고, 이러한 단항식이 1개 이상 더해져서 나온 식을 다항식이라고 합니다. 우리가 고등학교 때까지 다루었던 수많은 식들이 대부분 다항식입니다.
생각해보면 다항식 2개를 더해도 다항식이 나옵니다. 그리고 거기에 실수배를 적당히 해도 다항식이 나오죠. (상수항도 다항식입니다.) 물론 이러한 다항식은 우리가 배웠던 기하적 벡터와는 상당히 다르게 생겼습니다. 그러나 덧셈과 스칼라곱을 해도 원래 대상에 머물러 있다는 의미에서 대수적 구조로는 모두 벡터로 볼 수 있습니다.
예시-3. 오디오 신호
오디오 신호도 벡터라고 할 수 있습니다. 위의 이퀄라이저가 친숙하신 분들이 많을텐데요, 오디오 신호도 각 신호의 크기의 조합에 따른 숫자들의 연속이라고 볼 수 있습니다. 오디오를 두 개 더해도 결국 소리가 섞여 나오는 오디오가 되고, 증폭을 시키거나 감소를 시켜도 오디오가 되죠. 따라서 오디오 신호도 벡터입니다.
예시-4. n차원의 튜플(tuple)
크기가 n개의 값들을 좌표평면을 찍듯이 고정된 수의 나열을 튜플(tuple)이라고 합니다. 그리고 그 값들이 각각 실수값이면 R의 n차원의 원소라고 하고, 아래와 같이 표현을 합니다.
이러한 n차원의 원소들은 다항식보다는 훨씬 추상적으로 보이지만 위의 결과에서 보듯 벡터임을 알 수 있습니다.
선형대수학과 앞으로 다룰 내용들의 연관성
Ch2는 Systems of linear equations (연립일차방정식)에서 출발합니다. 아시죠? 중학교 2학년 때 배운 연립일차방정식. 그 내용에서 시작해서 행렬을 도입하고, 그 이후 해가 무수히 많을 때 해를 찾는 방법, 해가 딱 하나 있을 때 역행렬을 사용해서 찾는 내용. 그 과정에서 벡터 공간의 대수적인 구조를 살펴보고, 이를 구성하는 basis(기저)를 ch3장에서 다룰 예정입니다. 벡터 공간을 가장 쉽게 표현할 수 있는 basis를 살펴보며 다음 질문을 생각해 볼 수 있습니다.
- 만약 계속 뭔가를 더하고, 실수배를 계속 하다보면 그 결과를 우리가 다루는 대상들 안에서 항상 찾을 수 있을까?
- 만약 가장 작은 집합으로 시작해서 이 대상들을 더하고 스칼라곱을 해서 전체 벡터 공간을 만들 수는 없을까?
그렇다면 가장 작은 집합의 특성을 공부하면 되니까 훨씬 간단해지고 공부하기도 쉽죠! 이러한 벡터 공간과 이 특성은 머신 러닝의 저번에 쫘악~ 깔려있습니다.
이러한 선형 대수학은 머신 러닝과 수학 전반에 걸쳐 중요한 역할을 합니다. 이 단원에서 배우게 되는 개념들은 3장의 기하적인 아이디어로 확장이 되고, 행렬의 연산이 가장 중요한 벡터 미적분학(Vector Calculus)을 5장에서 다룰 예정입니다. 그리고 10장에서는 주성분 분석 (principal component analysis : PCA)과 함께 차원 축소를 하는 투영(projection)을 할 것입니다. 9장에서는 선형 회귀분석을 다룰 예정인데, 최소 제곱 문제(least squares problem)을 푸는데 선형 대수학이 가장 중심적인 역할을 할 것입니다.
다음 글 : [MML] Ch2.1 Systems of Linear Equations (연립일차방정식) 내용이 이어집니다.