교재 '인공지능을 위한 수학' 응용편의 최소제곱법에 대한 내용을 공부했었다. 아래는 이를 정리한 포스트다.
포스팅을 따로 하는 이유는 내가 이해하는데 오래 걸린 부분이 있어서 이를 정리하기 위해서다.
주제는 제목에 나와 있듯,
'편미분과 편도함수의 출력을 0으로 놓고 연립방정식을 만드는 과정이 왜 필요한가?'
이다.
최소제곱법에 대한 기본 내용은 저 위의 포스트에 담아 놓았으니, 단도직입적으로 주제에 접근하겠다.
우선 갑자기 계수가 양수인 2차함수의 그래프를 먼저 살펴 본다.
곡선이다. 도함수 측면에서 봤을 때, y값이 가장 작은 경우는 기울기가 0 즉, 도함수의 출력이 0인 경우이다.
그런데, 위의 경우는 일변수함수인 경우이고, 이변수함수인 경우를 살펴보도록 한다. 아래와 같은 이변수함수가 있다고 하면,
$$ z = f(x, y) = x^2 + xy + y^2 $$
이 함수의 그래프는 매우 오묘하다.
두께가 0인 곡면이다. 위 그래프에서 z 값이 가장 작은 경우를 어떻게 구할 수 있을까?
우선은 z의 값이 가장 작은 곳은 기하학적으로 어디인지를 알아야겠다. 직관적으로는 위 곡면의 가장 움푹 파인 부분이 그럴 것이라는 것을 유추할 수 있다. 그 위치가 의미하는 바는 무엇일까. 아마도, x축과 평행하면서 곡면에 접한 직선과 y축과 평행하면서 곡면에 접한 직선... 이 두 직선이 만나는 지점이 될 것이다. 이를 미분의 관점에서 본다면 바로 x, y 각각 편미분을 한 후, 기울기가 0인 지점을 찾는 것이 되는 것이다.
정말 그럴까? 우선 편미분을 해본다. 결과는 아래와 같고,
$$ \frac{\partial z}{\partial x} = 2x + y $$
$$ \frac{\partial z}{\partial y} = x + 2y $$
위 두 편도함수의 출력을 0으로 놓으면 연립방정식이 만들어지며,
$$ 0 = 2x + y $$
$$ 0 = x + 2y $$
그 해는 결국, x와 y가 0인 경우 밖에 없다. 이 결과를 위 3차원 곡면에 대입해보면 (0, 0, z)인 z는 역시 0 밖에 없다는 걸 쉽게 짐작할 수 있다(그래프가 공중에 떠있는 것 같지만, 사실 xy평면에 붙어 있음). 즉, 이 방식으로 해법을 찾은 것이다.
이제 다시 최소제곱법으로 돌아와서... 잔차(residual)의 합을 수식으로 표현해보면,
$$ S = \sum_{i=1}^{n}{{r_i}^2} $$
이 공식을 잘보면 r이 1차식이라면 S는 2차함수라는 사실을 알 수 있다.(시그마 때문에 헤깔렸지만 분명히 그렇다.) 즉, 저 위에서 살펴본 1변수함수의 y 및 2변수함수의 z와 최소제곱법의 S는 동일한 의미의 종속변수가 된다는 것이다. 다시 말해, 1변수함수의 y나 2변수함수의 z의 최소값을 구하는 방법을 S의 최소값을 구할 때 그대로 적용할 수 있다는 의미이다.
바로 예를 들어보겠다. 선형회귀모델(linear regression model)에 대한 관측값이 (x1 = 1, y1 = -2), (x2 = 2, y2 = -1)인 단순한 데이터가 있다고 하자. 모델은 간단히 아래와 같이 정의되며,
$$ y = ax + b $$
이를 토대로 S를 풀어서 써보자.
(S를 푸는 자세한 방법은 맨 위의 공부 포스트 및 관련교재를 봐주시라.)
$$ S = {r_1}^2 + {r_2}^2 = (-2 - a - b)^2 + (-1 - 2a - b)^2 = 5 + 8a + 6b + 6ab + 5a^2 + 2b^2 $$
한 눈에 봐도 2변수함수 형태라는 것을 알 수 있다. z, x, y가 S, a, b로 바뀌었을 뿐이다. 그러므로, 저 위에 기술한 z의 최소값을 구하는 방법을 그대로 적용할 수 있는 것이다.
최소제곱법을 선형회귀의 해결방법론(methodology) 관점에서 바라보면...
선형회귀는 말그대로 선형이므로 r(잔차)가 1차식일 수 밖에 없다. S는 당연히 2차함수가 되며 접선에 대한 기울기가 0인 지점이 S가 최소값인 지점이 된다.
또, 선형회귀모델은 보통 독립변수가 여러개(수십개, 수백개...)이다. 즉, 다변수함수라는 의미이다. 하지만, 2변수함수까지 살펴 본 원리를 확장해보면 변수가 몇개가 되었든 그 최소값을 구하는 방법은 동일할 것이라는 것을 쉽게 유추할 수 있다. (위에서처럼 기하학적으로는 살펴보기 힘들겠지만)
※ 내 블로그에서 누누이 언급하는 중이지만, 나는 머리가 아주 좋은 편은 아니다. 역시나 이번에도 이해를 전혀 못하는 부분이 있었다. 본 포스트에서 다룬 내용이 최소제곱법에서 왜 필요한지 자세히 알려주는 자료는 찾기가 힘들었다. 그런 자료가 없다는 것은 역으로 생각하면 자명한 내용이라 굳이 추가 설명이 필요 없다는 뜻일 터, 내가 이걸 이해 못하고 넘어간다면 인공지능 분야에 제대로 입문하지 못할 것이란 생각이 들었다. 그래서, 시일이 많이 걸리더라도 납득할만큼 이해가 되어서야 다음 진도를 나가리라 마음을 먹었고, 다행히 이해가 되어주어서(?) 뿌듯하게 생각하고 있다.
'Mathematics' 카테고리의 다른 글
자연어 처리 실습 - C++ 소스 코드 (Natural Language Processing Practice with C++) (0) | 2021.03.17 |
---|---|
선형 회귀(Linear Regression) 실습 - C++ 소스 코드 (0) | 2021.02.26 |
가능도(Likelihood)와 확률(Probability)의 차이 (0) | 2020.09.17 |
2차원 회전행렬(Rotation Matrix)의 고유벡터(Eigenvector)는? (2) | 2020.07.21 |
선형 사상(Linear Map) 또는 선형 변환(Linear Transformation)의 원리 이해 (0) | 2020.07.16 |