Mathematics for Machine Learning
글에 앞서 내용을 풀이한 제 유튜브 영상부터 공유해드립니다.
브런치에서 수식이 지원이 잘 안되므로.. 가급적 영상 강의를 참고하시는게 도움이 되실 것 같습니다. ^^
유튜브 '코딩하는 수학쌤'을 검색해주세요! 좋아요, 구독 부탁드립니다~ ^^
- 이 글은 Mathematics for Machine Learning(Cambridge Univ. Marc Peter Deisenroth 외 2)의 내용을 번역 및 재해석해서 작성한 글입니다. 위 책의 내용에 이해를 돕는 글을 추가로 첨부하였으며 완전한 번역본이 아님을 알려드립니다. -
지난 시간에는 선형대수학이라는 분야의 수학을 소개했습니다. 수학에서 대수학(Algebra)은 집합과 그 원소들의 연산에서 출발하여 그 구조와 특성, 체계 등을 연구를 합니다. 그 중에서 벡터와 벡터 공간에 관해 주로 다루는 분야가 선형대수학(Linear Algebra)입니다.
데이터 과학이나 머신러닝을 공부하다보면 테이블로 정리된 수많은 레코드로 작성된 데이터를 보게 됩니다. 이 데이터는 표의 열에 따라 특성이 있는데, 이 특성을 가지고 모델을 만듭니다. 예를 들어서 캐글에서 타이타닉의 생존자를 판단하는 train file을 보면 이름, 성별, 나이, 가족 친척수, 객실, 요금, 탑승지 등 ...등 많은 성분이 있습니다.
이러한 성분들을 가장 간단하게 이러한 요인들을 적절하게 수치화하여 가공하는 전처리 과정을 거친 후 얻어진 정돈된 각 성분에 가중치를 줘서 더한 형태로 모델을 만들곤 합니다. 그 때 잘 살펴보면 수치화한 각 항목의 값들에 적절한 실수배를 해서 더하는 일차식의 형태를 띄는 때가 많습니다.
따라서 이러한 연립일차방정식을 다루는 것은 머신러닝의 가장 첫 걸음이라고 할 수 있습니다. 선형대수학의 시작으로 이러한 연립일차방정식의 유형과 해를 구하는 법에서 시작합니다.
연립일차방정식은 선형대수학에서 가장 중요한 역할을 합니다. 많은 문제들은 연립방정식으로 표현할 수 있고, 선형대수학을 통해 우리는 이 방정식을 풀 수 있습니다. 다음의 예시를 한 번 살펴볼게요.
예시 2.1
어떤 회사는 R1, R2, ... , Rm의 자원을 필요로 하는 제품 N1, N2, .. , Nn을 생산합니다. Nj라는 제품을 생산하기 위해서는 Rj라는 자원을 a_ij만큼 사용합니다.
Nj라는 제품을 xj만큼 생산함으로써 bi만큼 사용할 수 있는 Ri를 남김없이 다 소진하여 사용할 수 있을지를 찾아봅시다.
자, 그러면 각 자원별로 얼마나 쓰이는지를 한 번 살펴보도록 해보죠. 우리가 각 제품
생산한다고 해볼까요? 그러면 R_1 (수식이 글자처럼 입력이 되지 않아 간단한 수식은 이렇게 쓰겠습니다)이라는 자원은 얼마나 쓰이는지를 살펴보면 다음과 같습니다.
따라서 R_1의 총 사용량은 다음과 같습니다.
자, 그렇다면 각 자원 R_i의 자원이 b_i까지만 있으므로 각 자원의 사용량은 다음과 같은 식을 만들 수 있습니다.
위와 같은 식을 연립방정식이라고 하고, x_1, x_2, ..., x_n들을 미지수라고 하죠. 이러한 식을 만족하는 x_i의 값들인 튜플 (x_1, x_2, .., x_n)을 일차 연립 방정식의 해(solution)라고 합니다.
사실 연립방정식은 우리나라에서는 중학교 2학년에서 처음으로 나오기 때문에 어떤 면에서는 친숙합니다. 식끼리 더하고 빼서 근을 구하는 가감법, 한 문자를 다르게 표현해서 대입하는 대입법 등을 통해서 열심히 답을 찾죠. 그리고 다음과 같은 3가지 유형의 일차 방정식의 형태를 만납니다.
1) 해가 없는 경우
위의 연립방정식에서 (1)과 (2)를 더하면 (3)이 나오지 않죠. 따라서 위의 연립방정식을 만족하는 해는 없습니다. 그리곤 우린 '이런 걸 왜 냈어?'라고 투덜대죠. 그러나 머신러닝을 배워보면 변수의 개수보다 식이 훨씬 더 많은 경우가 많습니다. 모든 식을 만족하는 해가 존재하지 않을 때 어떤 것을 가장 적절한 유사해로 찾아내는가의 문제가 훨씬 더 중요하니까요.
2) 해가 유일하게 하나 존재하는 경우
우리가 학창 시절 가장 많이 만나는 유형입니다. 이러한 문제는 적절한 계산을 통해서 (1,1,1)이 위의 방정식의 해라는 것을 쉽게 찾아냅니다. 이러한 해를 '고유해(unique solution)'이라고 부릅니다. 사실 일상에서는 가장 흔치않는 경우겠지만 우리는 그 흔치 않은 경우를 수업 시간에 흔하게 만납니다..;;
3) 해가 무수히 많은 경우
위의 경우를 보면 (1)과 (2)를 더한 식이 (3)이 되는 걸 볼 수 있어요. 이런 경우를 '부정(不定)'이라는 단어로 표현하곤 했는데, 해를 하나로 정할 수 없다는 것들이죠. 만약 x_3=a라고 표현을 한다면 위의 연립방정식의 해는
로 표현할 수 있습니다.
일반적으로 연립방정식은 위의 3가지 경우 중의 하나의 상황에 해당합니다. 우리가 9장에서 만나는 선형 회귀(Linear Regression)에서 일차 연립방정식에서 유일한 해를 찾지못할만큼 많은 식이 존재할 때 어떻게 해야 하는지를 배울 수 있습니다.
연립 일차 방정식에서 행렬을 도입해봅니다.
자, 그러면 위의 1차 연립방정식을 다시 한번 살펴봅시다. 우리가 관심이 있는 것은 일차 연립 방정식의 해(solution)인 (x_1, x_2, .., x_n)입니다. 따라서 아래의 식에서
미지수와 계수를 분리하여 비슷한 형태로 추려주면 다음과 같이 표현할 수 있습니다.
위의 식에서 각 x_i에 곱해져있는 블록의 크기가 동일합니다. 따라서 이를 한 번 더 묶어내면 다음과 같이 표현할 수 있습니다.
연립방정식을 위와 같이 표현하는 것에서 행렬(matrix)이 출발합니다. 다음 2.2에서 행렬의 정의, 행렬의 연산, 단위 행렬 및 전치 행렬 등에 대하여 좀 더 자세히 살펴보도록 하겠습니다.