본문 바로가기

머신러닝 읽어주는 남자

[오직 컨셉]Generative model vs Discriminative model

반응형

|봐도 봐도 어려운 두 모델 비교해보도록 하자


정의상으로 보자


Generative model은 joint distiribution p(x,y)를 학습에 사용하는 방법이다

(x,y)란 무엇인가? 데이터 그 자체를 의미한다.

p(x,y)는 그 데이터가 나올 확률을 의미하게 된다.

사물 인식을 예를 들면, 

(x = 고양이 사진, y=고양이):  고양이라는 label를 가진 고양이 사진 그 데이터 그 자체

p(x = 고양이 사진, y=고양이):  고양이라는 label를 가진 고양이 사진 그 데이터가 나올 확률


Discriminative model은 posterior p(y|x)를 학습에 사용하는 방법이다.

p(y|x)는 classifier에게 매우 자연스러운 확률이다.

어떤 데이터가 주어졌을때 특정 레이블을 가진 확률이다.

예를 들면 

p( y=고양이 | x=고양이 사진): 고양이 사진이 주어졌을때 고양이라고 분류되었을 확률 

(제대로된 모델이면 이 값이 높아야한다.)


좀더 부연 설명하면 


아래와 같은 데이터가 있다.

(x,y):

(1,y=개), (1,y=개), (2,y=개), (2, y=돼지),(2, y=돼지)


p(x,y) 는

      y=개   y=돼지
     -----------
x=1 | 2/5   0
x=2 | 1/5   2/5

p(y|x) 는

      y=개   y=돼지
     -----------
x=1 | 1     0
x=2 | 1/3   2/3


위의 표를 보면 차이를 알 수 있다.


classifier를 기준으로한 차이를 열거 해보겠다.


Generative model 

Discriminative model 

0. 이름 그대로 데이터를 생성을 위한 모델이다. 그래서 데이터가 생성될 확률인 p(x,y)를 다룬다. 


1. p(x,y)를 활용하여 classifier 같은 경우 바로 활용을 못하고 bayes를 이용하여 likelihood 나 posterior로 변경하여 구한다.


2. 모델이 먼저 데이터에 대해서 어떻게 생성되었을지 학습을 하고 분류를 한다.


3. 언어 분류기: 언어 공부를 먼저하고 그 지식을 토대로 언어를 분류한다.

4. p(x,y)= p(y|x)*p(x) 이므로 추가적인 p(x)가 필요하다. p(x)가 잘못 모델링 되면 성능 저하 


5. 개돼지 분류기: 개를 보고 학습, 돼지를 보고 학습. 그 그다음에 분류함.


6. naive bayes: p(x,y=개) > p(x,y=돼지) 이면 개라고 판단함. 위의 예시는 x =1은 개, x=2는 돼지가 될것이다. 결국은 maximum a posterior를 사용하긴 하나, 이게 사실상 joint라서 결국은 좀 더 모델을 반영한 모델임

0. 이름 그대로 데이터를 구별하기 위한 모델이다. 그래서 데이터가 주어졌을 때 특정 클래스에 속할 확률인 p(y|x)를 다룬다. 


 1.p(y|x)를 활용하므로 classifier에 이를 바로 활용가능하다



2. 모델이 어떻게 생성되었을지는 관심이 없다. 그냥 바로 분류를 위해 학습니다.


3. 언어 분류기: 그냥 언어간의 차이에 초점을 맞춰서 학습을 하고 언어를 분류한다.


4. p(x)가 필요없다.



5. 개돼지 분류기: 데이터에 각각에 대해서 관심이 없고 그냥 둘을 잘 분류하는 선을 학습함.


6. logistic regression: 

아래와 같은 log-odd, 즉 logit을 최대화하는 방향으로 학습을 한다.

{\displaystyle \log {\frac {p(C_{1}\mid \mathbf {x} )}{p(C_{2}\mid \mathbf {x} )}}=\log p(C_{1}\mid \mathbf {x} )-\log p(C_{2}\mid \mathbf {x} )>0}


반응형

'머신러닝 읽어주는 남자' 카테고리의 다른 글

Learning to rank  (0) 2018.05.02
[오직 핵심]Softmax와 아이들  (0) 2018.04.25
[오직 컨셉]Gradient Descent  (0) 2018.04.23
[오직 컨셉] 텐서플로우(Tensorflow)  (0) 2018.04.22
[오직 컨셉] Attention  (0) 2018.04.13