MATH & ML

Generative model과 Discriminate model 차이점과 비교 본문

Machine Learning

Generative model과 Discriminate model 차이점과 비교

BlogYong 2018. 6. 17. 00:48

항상 공부를 하다보면 각 모델이나 방식마다 Generative model과 Discriminate model이라는 말이 나오면 항상 어려웠고 너무 헷갈렸기에 이를 내가 다시 이해해본 그대로 정리해보려고 한다.


(출처 : http://sens.tistory.com/408)


Generative model과 Discriminate model는 위키에 따르면 classification 경우에 정의를 한다. classification을 하는 경우 위의 사진처럼 각 x 데이터마다 label된 class y가 있을 것이고, 목적은 P(YlX)를 최대화 하는 Y를 찾는 것, 즉 새로운 X에 대하여 그 X가 어느 Y 클래스로 분류될 가능성이 큰지이다. 즉 X라는 데이터가 주어졌을 때의 파라미터의 함수, 즉 posterior 함수를 최대화 시키는 것이다. 

이를 어떻게 학습할지 모델을 정하는 방법에 따라 Generative model과 Discriminate model 2가지로 나뉜다. 


direct하게 p(y|x)를 학습시켜 그 학습된 parameter를 직접 이용하여 직접 아웃풋 y를 계산하는  모델을 딱 정해져있으니까 Discriminative model라고 부르겠지.


반면에 generative model은 각 클래스 별로 가지는 conditional density와 각 클래스의 prior distribution을 이용하여, 데이터와 class 이 둘의 joint probability를 모델링 하고! 이를 이용하여 새로운 데이터에 대하여 어떤 class에 들어가야 하는지 결정을 내려 아웃풋 y를 계산하는 것이다.

그렇다면 generate라는 말은 왜붙은걸까? 생성? 뭐를 만들어내지?? 생성한다는게 어떤 의미인가? 이 말은 joint probability를 학습해서 기존 데이터들을 만들어내는 모델 자체를 만들었기 때문에 이렇게 이름을 붙인거다. 즉 데이터를 기반으로 이 데이터를 생성하는 모델을 추정하여 해당 데이터의 클래스를 판별한다고 할 수 있다. 



즉 Discriminate model(예:Logistic regression, Neural Networks)은 각 class의 차이에 주목하여 바로바로 어떤 class에 들어가야 할지 결정해 주는 모델이고. Generative model(예:Gaussian Mixture Model (GMM))은 각 class의 분포에 주목하여 어떤 분포에 들어갈 가능성이 가장 많은지 결정해 주는 모델이라고 할 수 있겠다.


일단 내가 이해한 바로는 이렇고, 이를 이번기회에 정리한 이유는 바로 Variation Autoencoder(VAE)가 Generative model인 덕분인데, VAE를 또 이해하다 보면 헷갈릴 수 있는데 그 때 다시 정리 또 해보지 뭐





Comments