이전 포스팅에서 머신러닝이 어떤 문제에 관심을 갖는지 간단하게 살펴보았다.
요약하자면 관찰대상이 많고 각 대상의 변화의 폭이 매우 넓은 상황에서 각 관찰 대상간의 관계를 조사하는 학습 행위를 기계가 하도록 만드는 방법이 있을지 탐구하는 것이 기계학습이다. 이번에는 기계가 학습한다는 것이 어떤 의미를 갖는지 알아보자.
기계가 학습을 한다는 개념이 상당히 받아들이기 어렵게 느껴질 수 있다. 이에 대해 추상적으로 생각하려고 하면 오히려 답이 잘 나오지 않는다. 목표는 이전 포스팅과 위에서 설명한 대로 관찰 대상(앞으로는 변수 또는 확률 변수라고 부를 것이다.)의 관계를 파악하는 가장 구체적으로 표현가능한 방법을 찾는 것이다.
관찰 대상간의 관계를 파악한다는 것이 무엇을 의미하는 것일까? 그것을 명백히 표현하는 것으로 시작해볼 수 있다. 예를 들어서, 성인 남성의 키라는 변수와 성인 여성의 키라는 변수를 고려해보자. 이런 관찰 대상을 정하면, 조사를 통해 관찰 결과를 정리해볼 수 있을 것이다. 이것을 정리하기에는 표가 제격이다.
| 성별 | 키 |
| 남 | 160cm |
| 175cm | |
| 180cm | |
| 178cm | |
| 169cm | |
| 여 | 150cm |
| 161cm | |
| 165cm | |
| 162cm | |
| 155cm |
우선 관찰 대상간의 관계를 논하기 전에 표에 나타난 기본적인 특징을 조사해보자. 위의 표는 10명의 사람들의 성별과 키를 조사해서 얻은 표다.(가상) 같은 성을 가져도 키가 여러가지 값을 가질 수 있다. 그리고 키 범위에 따라 존재하는 데이터의 숫자가 다르다는 것을 알 수 있다.
| 키 구간 | <150 | <160 | <170 | <180 | 180<= |
| 빈도 | 0 | 2 | 6 | 2 | 1 |
확률은 위에서 키의 구간마다 빈도를 표시했던 것 처럼 전체 경험 중에 확률 변수가 어떤 값을 가지거나 어떤 구간에 있을 빈도의 비율을 말한다. 전체 관측 수가 10개 이므로 표본을 토대로 생각하면 키가 150 미만일 확률은 0, 150~160일 확률은 2/10=20%, 160~170일 확률은 60%, 170~180일 확률은 20%, 180이상은 10%가 된다. 이제 표본 수가 20개가 된다고 하면 이 비율에 따라서 각 구간의 키가 나타나는 '빈도'는 0, 4, 12, 4, 2가 될 것이다. 아래는 정리된 표다.
| 키 구간 | <150 | <160 | <170 | <180 | 180<= |
| 확률 | 0/10 | 2/10=20% | 6/10=60% | 2/10=20% | 1/10=10% |
| 20번 관측 시 빈도 | 0 | 4 | 12 | 4 | 2 |
하지만 '키'라는 변수는 나타날 수 있는 숫자의 가능성이 0 이상의 모든 실수이기 때문에 구간을 어떻게 나눠도 상관없다. 위의 예시처럼 10cm를 단위로 구간을 나눠도 상관 없지만 구간을 1cm로 나눠도 되고 0.000001(10^-6)cm으로 나눠도 상관없다는 것이다. 이런 변수 자체가 실수 또는 복소수처럼 연속성이 있을 때 연속 확률 변수라고 한다.
반대로 '성별'이라는 변수는 나타나는 값의 경우의 수가 무한히 많지 않고 남자 또는 여자라는 두가지 경우만 존재한다. 이런 무한히 많은 경우의 수가 존재하지만 경우의 수가 연속적으로 나타나지 않고 셀 수 있도록 떨어져 있는 경우는 예를 들어 한 해 사과 수확량 같은 양이 있다. 자연수 경우의 수가 존재할 수 있기 때문에 셀 수는 있지만 무한히 많은 경우의 수가 있는 것이다. 이런 확률 변수를 이산 확률 변수라고 부른다. '성별'이 확률 변수인 이유는 관측마다 다르게 값이 결정되고 각 값마다의 빈도가 존재하기 때문이다.
여기서 배운 점을 수학적으로 표현해보자. 키 변수를 \(h\)로 표현하자. 키가 어떤 구간 \([a,b)\)에 있을 확률을 \(P(a<=h<b)\)처럼 쓸 수 있다. 또는 성별이라는 확률 변수를 \(s\)로 표현하자. 그리고 성별이 \(S\)일 확률을 \(P(s=S)\)으로 쓸 수 있다.
연속 확률 변수의 특이한 점에 대해 기호로 표현한 확률을 통해 다시 살펴볼 수 있다. 만약 키 같은 연속 확률 변수가 어떤 구간에 있을 확률을 구할 때 그 구간의 크기를 매우 작게 만들면 어떻게 될까? 즉, \(l->0\)일 때, \(P(a<=h<a+l)\) 값은 어떻게 되는 것인가? 위에서 설명한 것을 토대로 보면 이것은 그 구간의 존재하는 데이터 빈도 나누기 전체 관측 수로 계산할 수 있을 것 같다. 하지만 구간이 너무 작으면 관측수가 항상0이 되는 것이 아니겠냐는 생각을 할 수 있다. 여기서 관측 수를 무한하게 늘린다면 어쩌면 관측 수가 항상 0이 되는 것을 막을 수 있을 수 있다. 그런 개념적인 생각으로부터 \(l\rightarrow0\)일 때, \(P(a<=h<a+l)\)는 일반적으로 매우 작지만 0은 아닌 숫자일 것이라고 생각하는 것이 타당해보인다.
여기서 확률의 미분에 대한 개념을 이끌어낼 수 있다. \(P(a<=h<a+l) = P(b<=h<a+l) - P(b<=h<a)=F(a+l)-F(a)\)로 바꿔 표현하면 확률은 미분계수식의 분모처럼 표현된다. 이것을 (a+l)-a로 나눠주고 l을 0에 가깝게 만들면 F가 특이하게 뾰족하거나 발산하는 경우가 없다고 생각했을 때 어떤 숫자에 수렴할 것이라고 기대해볼 수 있다. 그 수렴하는 숫자가 존재할 때 그것을 연속 확률 변수의 확률 밀도라고 표현한다. 미적분학의 기본정리에 따라 다시 변수가 구간안에 포함될 확률은 다시 이 확률 밀도의 적분을 통해서 표현할 수 있다.
\[P(a<=h<b) = P(c<=h<b) - P(c<=h<a)=F(b)-F(a)\]
\[f(h=a) = \lim_{l\rightarrow0} \frac{F(a+l) - F(a)}{l}\]
\[P(a<=h<b) = \int_{a}^{b} f(h) dh\]
변수 자체에 어떤 특징이 있을 수 있고, 그 특징을 어떻게 표현하는지에 대해 고등학교 수준의 설명으로 알아보았다. 이제 다시 머신 러닝의 목표인 변수끼리의 관계 파악으로 돌아가자. 관계라는 것은 어떻게 생각할 수 있는지 질문할 필요가 있다. 우선 변수 하나를 갖고 관계를 생각할 수 없다. 따라서 두 변수를 동시에 관찰해야 한다. 성별에 따라 키 데이터를 조사를 해보면 흥미로운 점을 발견할 수 있다.
남자의 경우 빈도가 어떻게 변하는가 살펴보면 아래와 같다.
| 키 구간 | <150 | <160 | <170 | <180 | 180<= |
| 빈도 | 0 | 0 | 2 | 2 | 1 |
| 남자 내 확률 | 0% | 0% | 40% | 40% | 20% |
| 전체 내 확률 | 0% | 0% | 20% | 20% | 10% |
여자의 경우 빈도가 어떻게 변하는가 살펴보면 아래와 같다.
| 키 구간 | <150 | <160 | <170 | <180 | 180<= |
| 빈도 | 2 | 3 | 0 | 0 | 0 |
| 여자 내 확률 | 40% | 60% | 0% | 0% | 0% |
| 전체 내 확률 | 20% | 30% | 0% | 0% | 0% |
이렇듯 키라는 변수의 확률 밀도(분포)가 성별이라는 변수에 따라서 완전히 바뀌어 버린것을 확인할 수 있고, 이런 경우를 확률 변수가 다른 확률에 종속적이라고 한다. 이제 이것도 수학적으로 표현할 수 있다.
남자의 경우에 어떤 구간에 키가 나타날 확률을 고려할 때 남자 내 확률과 전체 내 확률을 분리해서 표현했다. 이는 아래와 같이 계산한 결과다.
\(P(a<=h<b, s=남) = \frac{키가 a이상 b미만이고 남자인 경우 표본 숫자}{전체 표본 숫자}\)
\(P(a<=h<b | s=남) = \frac{키가 a이상 b미만이고 남자인 경우 표본 숫자}{남자 표본 숫자}=\frac{P(a<=h<b,s=남)}{P(s=남)}\)
첫 줄은 결합 확률 분포라고 부른다. 두 개 이상의 변수들이 어떤 값을 가질 확률을 나타낸다.
둘째 줄의 마지막 등식은 이전 표현식에서 분모, 분자를 똑같이 전체 표본수로 나눠주면 얻을 수 있다. 이것이 조건부 확률의 정의다. 어떤 확률 변수가 확실하게 지정되었을 때 다른 확률 변수의 분포가 어떤지를 나타내는 양이다.
이 데이터 상에서는 키 구간에 따라서 빈도가 성별이라는 변수의 변화에 따라서 바뀌는 모습을 보였다. 그런데 바뀌지 않았다면 어떤 상황이라 할 수 있는가? 위에서 바뀌는 경우가 종속이라고 했으니 반대로 표현하자면 독립적이라고 표현하면 적절할 것이다. 수학적 표현을 한다면 \(P(a<=h<b|s) = P(a<=h<b)\)라고 쓸 수 있다. 정의에 따라서 \(P(a<=h<b,s) = P(a<=h<b)P(s)\)로 쓸 수 있다.
따라서 두 변수간에 관계를 파악하는 일을 하는 것은 결국 두 확률 변수 \(a\),\(b\)에 대한 관측 데이터가 있을 때 \(P(a|b)\)를 찾는 것이라고 할 수 있다. 또는 위 논의를 일반적으로 표현해서 \(P(a|b)=P(a,b)/P(b)\)로 쓸 수 있고 결합 확률 분포 \(P(a,b)\)로부터 \(P(b)\)를 얻는 것은 적분이나 덧셈을 통해 얻을 수 있으므로 데이터를 통해 \(P(a,b)\)를 찾는 문제라고 생각할 수 있다. 경우에 따라서 구해야할 것들은 미묘하게 달라지나 근본적으로는 이런 결합확률 분포 또는 결합확률 분포로부터 나타나는 통계량들(조건부 확률 등)에 관심을 갖게 된다.
'DL,ML Basic' 카테고리의 다른 글
| 기계학습이란 무엇인가?(3) - 최대 가능도 방법 (8) | 2024.07.23 |
|---|---|
| 기계 학습이란 무엇인가?(4) - 수치적 최적화 (0) | 2024.07.22 |
| 기계학습이란 무엇인가?(1) (2) | 2024.07.22 |