ML/Articles

Probability concepts explained: Maximum likelihood estimation

a292run 2021. 3. 8. 08:26
반응형

원본 링크



Probability concepts explained: Maximum likelihood estimation




Introduction

이 글에서는 파라미터 판단을 위한 최대 우도(maximum likelihood) 방법이 무엇인지 알아보고 이 방법을 확인하기 위해 간단한 예제로 진행해본다. 몇몇 내용은 결합확률(joint probability)과 독립 이벤트(independence of event)같은 기본적인 확률 개념에 대한 지식이 필요하다. 이에 관해서는 이 글을 참조하면 된다.



What are parameters?

종종 머신러닝에서 데이터내 결과가 탐지되는 절차를 설명하기 위한 모델을 사용한다. 예를 들면, 고객이 서비스 구독을 취소할지를 구분하기 위해 랜덤포레스트(random forest)를 사용하거나 광고량에 따른 회사의 이익을 예측하기 위해 선형 모델(linear model)을 사용할 수도 있다.(선형 모델의 예는 이 글을 참조하자.) 각 모델은 궁극적으로 모델이 어떻게 보이는지를 정의하는 자신의 파라미터 셋을 포함한다.

선형 모델에 대해서 우리는 $y = mx + c$로 표시할 수 있다. 위의 예에서 $x$는 소비한 광고를 나타내고 $y$는 이익이 될 것이다. $m$과 $c$는 모델의 파라미터이다. 이 파라미터에 대한 다른 값들은 아래 그림처럼 다른 직선을 이룬다.


다른 파라미터값을 갖는 선형 모델

따라서 파라미터는 모델의 청사진(blueprint)을 정의한다. 이는 특정값이 파라미터를 위해 선택된 경우에만 주어진 현상을 설명하는 모델에 대한 인스턴스화를 얻는다.



Intuitive explanation of maximum likelihood estimation

최대 우도 추정(Maximum likelihood estimation)은 모델의 파라미터에 대한 값을 결정하는 방법이다. 파라미터값은 모델에 의해 설명된 절차가 실제로 관측된 데이터를 생산하는 가능성(likelihood)를 최대화하는 것으로 찾는다.

위 정의는 여전히 좀 아리송한 소리일 수 있으니 이해를 돕기 위한 예제를 사용해 진행해 보자.

어떤 절차로부터 관측된 10개의 데이터 포인트가 있다고 하자. 예를 들면, 각 데이터 포인트는 학생이 특정 시험 문제에 대합하기 위해 걸린 시간을 초로 나타낼 수 있다. 이 10개의 데이터 포인트느 아래와 같이 보일 것이다.


관측된 10개(가상) 데이터 포인트

우선 어떤 모델이 데이터를 생성하는 절차를 가장 잘 설명하는지 결정해야 한다. 이 부분이 매우 중요하다. 최소한 어떤 모델을 사용할 것인지에 대한 좋은 아이디어를 갖고 있어야 한다. 이는 보통 알고있는 몇몇 도메인 전문 지식에서 오지만 이 부분은 이 글에서 다루지 않는다.

이 데이터에 대해 데이터 생성 절차가 정규분포로 충부하게 설명될 수 있다고 가정한다. 위 모습의 시각적 점검은 가우시안(정규) 분포가 그럴듯 하다는 것을 보여준다. 왜냐하면 10개 포인트의 대부분이 좌우에 약간의 포인트를 가지고 중간에 모여있기 때문이다. (닩지 10개의 데이터 포인트로 대충 이러한 결정을 하는 것은 결솔하지만 생성된 이러한 데이터 포인트가 주어지면 진행할 것이다.)

가우시안 분포(Gaussian distribution)이 평균($\mu$)과 표준편차($\sigma$) 2개의 파라미터를 갖는다는 것을 기억하자. 이들 파라미터에 대한 다른 값은 다른 곡선으로 이어진다.(위에서 본 직선라인처럼) 우리는 어떤 곡선이 우리가 관측한 데이터 포인트를 생성하는 것에 대해 가장 가능성이 있는지를 알고 싶다.(아래 그림을 보자) 최대 우도 추정은 데이터에 가장 적합한 곡선으로 이어지는 평균과 표준편차를 찾는 방법이다.


10개의 데이터 포인트와 데이터가 그려진 것으로부터 가능한 가우시안 분포

f1은 평균 10, 편차 2.25인 정규분포이다.(편차는 표준편차의 제곱근과 같다.) f1 ~ N(10, 2.25), f2 ~ N(10, 9), f3 ~ N(10, 0.25), f4 ~ N(8, 2.25)를 나타낸다. 최대 우도(가능성)의 목표는 데이터를 관측하는 확률을 최대화하는 분포는 갖는 파라미터값을 찾는 것이다.

생성된 데이터로부터의 올바른 분포는 f1 ~ N(10, 2.25)로 위 그림에서 파란색 곡선이다.



Calculating the Maximum Likelihood Estimates

이제 최대 우도 추정이 무엇인지에 대한 직관적인 이해를 하였고 어떻게 파라미터값을 계산하는지를 알아볼 수 있다. 우리가 찾는 값은 최대 우도 추정(MLE, Maximum Likelihood Estimates)라고 한다.

다시 예제를 사용하여 알아보자. 이번에는 3개의 데이터 포인트가 있고 우리는 이 데이터가 가우시안 분포로 충분히 설명되는 절차로 생성되었다고 가정한다. 이 포인트는 9, 9.5, 11이다. 어떻게 가우시안 분포 $\mu$와 $\sigma$의 파라미터 값에 대한 최대 우도 추정을 계산할까?

우리가 계산하고자하는 것은 모든 데이터를 관찰하는 체 확률이다. 즉, 모든 관측된 데이터 포인트의 결합 확률(joint probability) 분포이다. 이를 위해 몇가지 조건부 확률(conditional probability)을 계산해야 할 수도 있어 매우 어려울 수 있다. 따러서 여기서 우리의 첫번째 추정(assumption)을 한다. 추정은 '각 데이터 포인트는 서로에 대해 독립적으로 생성되었다'이다. 이 추정은 수학을 훨씬 쉽게 만든다. 만약 이벤트(즉, 데이터를 생성하는 절차)가 독립적이면 모든 데이터를 관측하는 전체 확률은 각 데이터 포인트를 각각 관측하는 것의 곱이다.(즉 주변확률(marginal probability)의 곱이다.)

가우시안 분포로부터 생성된 단일 데이터 포인트 $x$를 관측하는 확률 밀도는 아래와 같이 계산된다.


$P(x; \mu, \sigma)$에서 사용된 세미콜론(;)은 뒤에 나오는 기호가 확률분포의 파리미터인 것을 강조하기 위한 것으로 조건부 확률과 혼동해서는 안된다.(조건부 확률은 보통 수직 라릭 예를 들면 $P(A|B)$로 나타낸다.

우리의 예제에서는 3개 데이터 포인트를 관측하는 전체(결합) 확률 밀도(density)는 아래와 같이 구할 수 있다.


우리는 단지 위 식의 최대값을 주는 $\mu$와 $\sigma$을 알아내면 된다.

만약 수학 수업에서 미적분학을 다뤘다면 아마도 함수의 최대값들(그리고 최소값들)을 찾는데 도움이되는 기술이 있다는 것을 알고 있을 것이다. 이를 미분(differentiation)이라고 한다. 우리가 해야할 것은 할수의 도함수(derivative)를 찾는 것이다. 도함수를 0으로 설정하고 구하려는 방정식을 주제에 대한 파라미터를 만드는 식으로 변형한 후 보자. 우리는 파라미터에 대한 MLE값을 구할 것이다. 이제 이 단계를 진행하지만 여러분이 일반함수에서 미분을 수행하는 방법에 대해 알고 있다고 가정한다.


The log likelihood

전체 확률에 대한 위 수식은 실제로 미분하기에 꽤 고통스럽다. 그래서 거의 항상 수식에 자연로그(netural logarithm)을 취하여 단순화한다. 이는 자연로그가 단조롭게 증가하는 함수( monotonically increasing function)이기 때문에 절대적으로 좋다. 단조롭게 증가하는 함수란 x축의 값이 증가하면 y축의 값또한 증가한다는 의미이다. 이는 확률의 로그에 대한 최대값이 원래 확률 함수만큼 동일한 지점에서 발생하기 때문에 중요하다. 따라서 원래 우도대신 더 간단한 로그우도(log-likelihood)를 사용한다.


A monotonically increasing function.

A monotonically decreasing function

A function that is not monotonic

Monotonic 함수의 단순 동작 왼쪽은 y=x이고 오른쪽은 자연로그 함수 y=ln(x)이다.
이들 함수는 모두 x축에서 왼쪽으로 오른쪽으로 갈때 y값이 항상 증가하기 때문에 monotonic 함수이다.

그래프에서 왼쪽에서 오른쪽으로 갈때 f(x) 값이 올라가고 내려가고 다시 올라가기 때문에 non-monotonic 함수이다.

원래 식에 로그를 취하면 아래와 같다.


이 식은 로그법칙을 사용하여 다시 단순화될 수 있다.


이 식은 최대값을 찾기 위해 미분될 수 있다. 이 예제에서는 평균($\mu$)의 MLE를 찾는다. 이를 위해 $\mu$에 대한 편미분을 한다.


마지막으로 식의 왼쪽을 0으로 하고 다음과 같이 $\mu$에 대해 정리한다.


그러면 여기서 우리는 $/mu$에 대한 최대 우도 추정을 할 수 있다. $/sigma$역시 동일한 방법으로 할 수 있다.



Concluding remarks

정확한 방법으로 항상 최대 우도 추정이 해결될 수 있는가?

아니다. 실제로 로그-우도 함수의 미분은 여전히 분석적으로 아주 다루기 힘들다.(즉, 수작업으로 함수를 미분하는 것은 아주 힘들거나 불가능한 방법이다.)

따라서 기댓값 최대화 알고리즘(Expectation-Maximization algorithms)같은 반복적인 방법이 파라미터 추정을 위한 수치적 해결방법을 찾기 위해 사용된다. 전체적인 아이디어는 여전히 동일하다.


그러면 왜 최대 우도이고 최대 확률은 아닌가?

이것은 단지 통계학자들의 유행이다.(하지만 좋은 이유때문이다.) 대부분의 사람은 확률과 우도를 교대로 사용하려는 경향이 있지만 통계학자와 통계 이론가는 이 둘을 구분하려는 경향이 있다. 혼란의 이유는 아래에서 보이는 식을 보면 알 수 있다.


이들 수식은 동일하다. 그러면 의미는 무엇일까? 첫번째 $P(data; \mu, \sigma)$는 모델 파리미터 $\mu$와 $\sigma$로 데이터를 관측하는 확률 밀도(probability density)를 의미한다. 이것은 우리가 이를 파라미터를 어떤 수와 어떤 분포로 일반활할 수 있다는 것은 주목할 만한 가치가 있다.

반면, $L(\mu, \sigma;data)$는 우리가 관찬할 한다발의 데이터가 주어지면 특정 값을 갖는 $\mu$와 $\sigma$ 파라미터의 우도(likelihood)를 의미한다.

위의 등식은 파라미터가 주어진 데이터의 확률 밀도는 데이터가 주어진 파아미터의 우도와 같다는 것을 보여준다. 그러나 두 식이 동일하지만 우도와 확률 밀도는 기본적으로 다른 질문을 하고 있다. 하나는 데이터에 대한 물음이고 다른 하나는 파라미터값에 대한 물음이다. 이것이 최대 이 방법이 우도라 불리우지만 최대 확률로 불리지 않는 이유이다.


최소 제곱 최소화(least squares minimisation)가 최대 우도 추정과 같아지는 때는 언제인가?

최소 제곱 최소화(least squares minimisation)는 머신러닝에서 모델의 파라미터 값을 추정하기 위한 또다른 일반적인 방법이다. 이 방법은 모델이 위 예제에서처럼 가우시안인 것으로 추정될 때 MLE 추정은 최소 제곱(least square) 방법과 동일하다. 좀 더 자세한 수학적 유도는 여기를 참조하자.

직관적으로 우리는 두 방법의 목적을 이해하는 것으로 두 방법간 연결을 해석할 수 있다. 최소제곱 파라미터 추정에 대해서는 아래 그림처럼 데이터 포인트와 회귀라인간 전체 제곱된 거리를 최소화하는 선을 찾기를 원한다. 최대 우도 추정에서는 데이터의 전체 가능성을 최대화하기를 원한다. 가우시안 분포로 추정되었을 때 최대 가능성은 데이터 포인트들이 평균값에 더 가까울때 발견된다. 이는 가우시안 분포가 좌우대칭이기 때문이다. 이는 데이터 포인트와 평균값간 거리를 최소화하는 것과 동일하다.


무작위 가우시안 노이즈를 포함하는 데이터 포인트를 그리고 있는 회귀라인(regression line)
반응형