최대우도법
🐍

최대우도법

Tags
Machine Learning
Published
February 10, 2023
Author
유레미 EUREMI
딥러닝 모델을 공부하다보면 항상 막히는 확률..!!!🤦🏻‍♀️ 특히 딥러닝 기반의 생성 모델을 공부할 땐 수식에서 확률을 이해해야합니다. 그래서 이번 글에선 자주 나오는 확률 4개의 용어에 대해 정리하려해요. 내용은 주로 미술관에 GAN 딥러닝 실전 프로젝트를 참고했습니다.

표본공간

표본 공간은 샘플 x가 가질 수 있는 모든 값의 집합입니다. 아주 간단한 예시로 주사위를 던져 나온 눈의 수라고 할 때 샘플은 1, 2, 3, 4, 5, 6이 될 수 있고 표본 공간은 S={1,2,3,4,5,6}으로 나타낼 수 있어요. 또다른 예로 이 세상 모든 성인들의 키가 100cm부터 300cm이고 몸무게가 30kg부터 200kg까지라면 아래와 같은 표본 공간을 만들 수 있습니다. 이 세상에 180cm에 몸무게가 80kg인 이든이란 사람이 있다면 (키, 몸무게) = (180, 80)인 샘플이 표본공간 안에 있다는 거에요.
notion image
 

확률 밀도 함수

확률 밀도 함수 p(x)는 표본 공간의 포인트 x를 0과 1 사이의 숫자에 매핑해주는 함수입니다. 표본 공간의 모든 포인트에 대한 확률 밀도 함수의 합은 1이 되어야 헤요. 표본공간 바깥의 공간의 p(x)는 0이고 표본공간 안의 p(x)는 어떤 상수값을 갖습니다.
notion image
 

모수 모델

모수 모델 는 한정된 개수(유한 개수)의 파라미터 θ를 사용하여 묘사하는 확률 밀도 함수의 한 종류에요. 예를 들어 위의 예시로 들자면, θ는 상자의 왼쪽 아래 모서리 좌표 와 오른쪽 아래 모서리 좌표  네 개의 파라미터로 만들 수 있습니다. 즉, 이 모수 모델의 각 확률 밀도 함수는 4개의 숫자 로 표현할 수 있습니다. 란 수식에 대해 좀 더 자세히 이해해보자면 x들의 확률밀도함수를 θ를 이용해 나타낸 것이에요. 수식을 다시 쓰면 라고도 쓸 수 있어요.
 

최대 우도법(Maximum Likelihood Method)

최대우도법은 모수적인 데이터 밀도 추정방법으로써 파라미터 θ로 구성된 어떤 확률밀도함수 에서 관측된 표본 데이터 집합을 x라 할 때, 이 표본들에서 파라미터 θ를 추정하는 방법입니다. 좀 더 쉽게 예를 들어 볼게요. 아래와 같이 5개의 데이터 x를 얻었을 때 보라색 곡선과 초록색 곡선 중 어떤 곡선에서 얻은 데이터일까요? 직감적으로 보라색 곡선이라고 생각할 수 있어요. 왜냐면 보라색 곡선의 중심이 데이터의 중심과 가깝기 때문이에요. 즉, 보라색 곡선일 가능성(가능도)이 높다고 말할 수 있습니다. 여기서 말하는 가능성(가능도)가 likelihood입니다. likelihood는 지금 얻은 데이터가 이 분포로부터 나왔을 가능도를 말하는 것이에요. 다시 정리하자면 확률밀도함수에서는 𝜃가 이미 알고 있는 상수계수고 x가 변수지만 likelihood에선 x를 이미 알고 있는 상수계수고 𝜃를 변수로 생각하면 됩니다.
notion image
 
그렇다면 likelihood를 어떻게 하면 수식화할 수 있을까요? 방법 중 하나는 각 데이터 포인트로부터 후보군의 분포 높이를 likelihood 기여도라고 하여 모두 곱하는 것입니다. 곱한 값이 클수록 현재의 데이터들을 잘 나타내는 확률분포라는 것이죠. 이 모든 분포에 대한 높이를 전부 곱한 것이 likelihood 함수입니다!
notion image
수식으로 적어보자면 아래와 같아요. 저기 보이는 문 같은건 파이라고 하는데요. k=1부터 n까지의 모든 를 곱하라는 의미입니다. 식에서 왼쪽에 있는 likelihood 함수를 최대화하는 θ를 계산하는 것이 최대 우도법입니다.
 
계산을 더 쉽게 하기 위해 log를 취해줍니다. 그러면 파이였던 곱하기들이 더하기로 바뀌게 됩니다. 우리는 최대한 데이터를 잘 표현하는 확률분포를 구하고 싶기 때문에 likelihood의 최댓값을 찾아주면 됩니다.
로그함수는 단조증가하기 때문에 log를 씌운 값의 최댓값은 θ와 같지만, 로그를 씌우지 않은, 예를 들어 가우스 분포를 갖는 경우는 분포 함수가 위로 볼록하기 때문에 likelihood도 위로 볼록하게 됩니다. 그렇다면 미분을 이용해 최댓값을 구할 수 있게 되죠. 그래서 편미분을 사용하게 되고 미분한 값이 0이 되는 값을 찾으면 됩니다.
 

참고한 글