본문 바로가기

NLP/용어정리

[용어정리] ML(Maximum Likelihood) vs MAP(Maximum A Posterior)

계기

 

NLP 를 엉성하게 접하면, transformer 기반 모델과 huggingface 만으로도 어찌저찌 살아갈 수 있다. 하지만 논문을 자주 읽다보면, 확률과 통계, 수식 등 근본적인 이해가 필요할 때가 반드시 온다. 매번 헷갈리는 개념이라서 차라리 예시를 암기하는 것이 훨씬 도움이 되겠다 싶어서 좋은 예시를 발견한 찰나에 정리해두기로 했다.

 

예시를 통한 이해

머리카락 길이로 성별 맞추기

ML(Maximum Likelihood), MAP(Maximum A Posterior) 에 대한 정의를 이야기 하기 전, 예시를 통해 접근해보자.

당신은 머리카락 길이만 보고도 성별을 맞추는 퀴즈쇼에 나갔다.

편의를 위해 머리카락 길이를 z, 성별을 x 라고 표기하자. 예컨대, 당신은 머리카락 길이(z)가 20cm 일 때 90% 의 확률로 그 사람의 성별(x) 은 여자라고 판단했다면 p(x = 여 | z = 2cm) = 0.9 라고 볼 수 있는 셈이다.

 

추측하는 방법: ML vs MAP

위 예시에서 나는 보통 여자의 머리가 길기 때문에 저 정도 길이면 거의 여자라고 확신해왔다. 이건 내가 살아오면서 봐온 수많은 사람들을 보고 내린 결론이다. 하지만 이렇게 말고 수학적/통계적으로 위 문제를 접근하는 방법은 없을까? 있다. 바로 MLMAP 다.

ML: '남자에게서 그런 머리카락이 나올 확률 p(x|남)' 와 '여자로부터 그런 머리카락이 나왔을 확률 p(x|여)' 를 비교해서 가장 확률이 큰, 즉 likelihood가 가장 큰 클래스 혹은 모델(성별)을 선택하는 방법이다.

MAP: MAP 방법은 'x 라는 머리카락이 발견되었는데 남자 것일 확률 p(남|x)' 와 '여자 것일 확률 p(여|x)' 를 비교해서 둘 중 큰 값을 갖는 클래스 혹은 모델(성별)을 선택하는 방법이다.

 

위 정의를 읽어보니 내가 추측한 방법이 ML 과 MAP 중 하나에 속한 것 같다. 나는 분명 이렇게 말했다.

나는 보통 여자의 머리가 길기 때문에 저 정도 길이(20cm)면 거의 여자라고 확신해왔다.

 

즉, 나는 남자들(z)을 보고 머리카락 길이(z)가 짧다는 사실을 활용했으니, p(x | 남) 을 떠올린 것이고, 즉 ML(Maximum Likelihood) 을 활용했다고 볼 수 있겠다.

 

퀴즈쇼의 장소

그렇다면, MAP 는 대체 뭐지? ML, MAP 의 문장은 다르지만서도 확실하게 이해가 되진 않는다. 이 둘의 차이를 보여주기 위해 퀴즈쇼가 일어나는 장소를 바꿔보겠다.

 

1. 남녀 성비가 1:1 에 가까운 남녀공학

아마 대부분이 이런 상황을 가정했을 것이고, 내가 위해서 했던 추측에 딱히 영향을 미칠 것 같진 않다.

 

2. 남녀 성비가 8:2 에 가까운 공대

뭔가 이런 생각이 든다, '머리카락 길이를 떠나서 그냥 남자가 더 많은데 20cm 이상 머리를 기르는 남학생이 아닐까? 요즘 장발도 많이 하시던데 진짜 그럴 수도 있지 않을까? 하지만 여학생일 수도 있어. 이건 좀 어렵다.'

 

3. 남자밖에 없는 남자고등학교

당연히 이런 결론을 떠올려야 한다, '내가 살아온 바고 나발이고, 그냥 애초에 남자뿐인 곳인데 머리카락 길이가 1cm 든 100cm 든 무조건 남자잖아? 이건 애초에 시작부터 남자인데 뭐하러 고민했지?'

 

장소는 신경도 안 쓰는 게 ML

장소에 따라 결론이 바뀔 수 있다는 점을 무시하는 게 ML(Maximum Likelihood) 다. 내가 남탕에서 머리카락을 주웠든, 군대에서 주웠든, 화장품 가게에서 주웠든 오로지 나는 머리카락 길이로만 성별을 맞추겠다는 게 바로 ML 이다.

 

다시 정의를 봐보자.

ML: '남자에게서 그런 머리카락이 나올 확률 p(x|남)' 와 '여자로부터 그런 머리카락이 나왔을 확률 p(x|여)' 를 비교해서 가장 확률이 큰, 즉 likelihood가 가장 큰 클래스 혹은 모델(성별)을 선택하는 방법이다.

그냥 '내 삶에 따르면 남자는 보통 요 정도 길이, 여자는 보통 요 정도 길이야. 그에 따라서만 판단한다.' 를 따르는 것이 ML 이다. 나는 'MAP 에 비해 한글자가 짧기 때문에, 고려하는 점도 짧구나.' 하고 암기했다.

 

하지만 MAP 쓰기가 어렵다

여기까지 읽었으면, MAP 가 ML 에 비해 좀 더 합리적인 것 같다고 느끼는 게 정상이다. 하지만 무슨 문제가 있으니까, 지금까지 MAP 와 ML 모두 학습을 하게 하는 것이다.

 

문제는 남녀 성비, 즉 p(x = 남), p(x = 여) 를 알 방법이 없다는 것이다.

당신이 길거리에서 머리카락을 주웠다고 치자. 그 지역의 성비가 바로 머리에 떠오르는가? 그럴 수가 없다. 심지어 그 사람이 우연히 여행왔다가 흘린 머리카락이면 절대 그 사람이 어떤 성비를 띈 지역에서 왔는지 알 길이 없다.

물론 인터넷에 검색하면 성비에 대한 정보를 쉽게 얻을 수 있다. 하지만 머리카락과 성비는 예시에 불과하다. 현실의 문제는 녹록치 않다. 모든 데이터를 다 알 길이 없다. 그리고 다 알고 있다면, 이 문제는 이미 해결된 것이라 풀 필요도 없다.

현실도 그렇다. 우리는 MAP 를 쓰면 훨씬 더 합리적이고 정확한 예측할 수 있다는 걸 알지만, 쓰기가 매우 어렵다.

 

 

추가로 공부하면 좋을 것들


참고 자료

 

https://jaejunyoo.blogspot.com/2017/04/auto-encoding-variational-bayes-vae-1.html

 

초짜 대학원생의 입장에서 이해하는 Auto-Encoding Variational Bayes (VAE) (1)

Machine learning and research topics explained in beginner graduate's terms. 초짜 대학원생의 쉽게 풀어 설명하는 머신러닝

jaejunyoo.blogspot.com

'NLP > 용어정리' 카테고리의 다른 글

[용어정리] reparameterization trick  (0) 2023.01.03
[용어정리] ELBO  (0) 2023.01.02
[용어정리] semicolon notation in probability  (0) 2022.12.30
[용어 정리] oracle summary  (0) 2022.12.14
[용어정리] METEOR Score  (0) 2022.11.01