Generative model vs Discriminative model
분류 모델의 방법론은 크게 Generative model과 Discriminative model로 나뉜다. 각각의 방법론에 대해 알아보자.
Discriminative model
어떤 입력값(input) \(x\)가 주어졌을 때, 그 결과값(label)이 \(y\)일 확률, 즉 조건부확률 $$P(y|x)$$를 알아내는 방법이다. 이 방식의 머신러닝은 아래의 방법으로 이루어진다.
- 특정 입력값 $x$에 대한 조건부확률분포를 만들어낸다.
- 조건부확률분포에 근거해서 $x$와 $y$에 대한 벡터를 만들어낸다.
- $x$값들에 대한 성질을 가장 잘 구분할 수 있는 구분선(decision boundary)를 만든다.
- 만들어진 선을 기반으로 얼마나 멀리 떨어져있느냐에 따라 확률을 구한다.
대표적인 방식은 로지스틱 회귀, Conditional Random field, SVM, Linear regression 등의 알고리즘이 있다.
- 장점: 데이터가 충분할 경우 좋은 성능을 보여준다.
- 단점: 데이터를 구분하는 데 목적을 두고 있으므로, 데이터가 실제 어떤 모습인지 본질을 이해하기 어렵다. 데이터가 부족할 경우 과적합의 위험이 있다.
(△ 왼쪽 그림을 보라. 물음표 자리에 빨간색 점이 와야 할 것 같지 않은가? 세상에! 오른쪽 그림에서 모든 데이터를 확인해보면 사실은 파란색 점이었음을 알 수 있다!)
Generative model
구분하는 것을 넘어서, 분류 카테고리에 맞는 데이터를 생성해내는 방식이다.
생성되는 데이터는 분류 클래스별로 통계적 분포를 따른다고 가정한다.
입력값과 결과값의 쌍, 즉 \(x\)와 \(y\)의 결합 확률 $$P((x, y))$$의 분포를 찾는 것이다. 그리고 이 결합확률 분포 자체를 찾는 것이 Generative model이다. 방법은 다음과 같다.
- 결합확률분포(joint probability distribution) 일정한 통계 규칙, 예를 들어 정규분포 같은 것을 따른다고 가정한다.
- 결합확률분포로부터 어떤 분포 모델이 데이터에 적합한지 측정(estimation)한다.
- 측정해낸 분포를 기반으로 사후 확률(posterior probability)를 계산해서 실제 분류에 활용한다.
대표적인 알고리즘으로는 나이브 베이즈 분류, 가우시안 혼합 모델(Gausian Mixture Model, GMM), Hidden Markov Model(HMM), 잠재 디리클레 할당(LDA), GAN 등이 있다.
결합확률분포를 구한 이후 분류하는 방법으로는 우도(likelihood)나 사후 확률을 사용하여 분류 경계선(decision boundary)를 만든다. 예를 들어 보자.
이렇게 레이블된 데이터가 있다. 이 녀석들이 가우시안 분포를 따른다고 가정하자. 그러면
각각 두 집합은 이런 분포를 가진다고 계산된다. 이제 다른 새로운 원소에 대해서 분류할 수 있다는 것이 직관적으로 이해된다. 이때 알맞은 분포를 찾기 위한 계산 방법으로 최대 우도 추정법(Maximum Likelihood Estimation), 최대 사후 확률(Maximum a posteriori), 베이지안(Bayesian) 등이 있다. 이 중에서 최대 우도 추정법에 대해서 살짝 맛을 봐보자.
최대 우도 추정법(Maximum Likelihood Estimation)
결론은, 정규분포에 대해서는 표집한(label된) 값들의 평균이 확률분포의 평균이고, 표집한 값들의 분산이 확률분포의 분산으로 그대로 쓰면 된다는 것을 확인했다.
이제 분포를 알았으므로 새로운 데이터에 대해서 어떤 집합에 속할 확률이 높을 지 계산할 수 있고, 따라서 분류할 수 있다.
'NLP lab > 엔엘피' 카테고리의 다른 글
GPT-1, GPT-2, GPT-3 (0) | 2022.04.08 |
---|---|
ELMo (0) | 2022.03.12 |
Word2Vec, GloVe, FastText 요약 (0) | 2022.03.12 |
계층적 소프트맥스(Hierarchical Softmax, HS) in word2vec (3) | 2022.03.11 |
Context Free Grammar, CYK(CKY) 알고리즘 (2) | 2022.03.01 |