티스토리 뷰

Research (연구 관련)

Generative Models

홍돌 2019. 7. 26. 19:41

머신러닝 모델 혹은 그 이전에 확률 모델 알고리즘에는 크게 Discriminative Model과 Generative Model이 있다. (머신러닝, 확률 분야의 경계가 명확한 지는 모르겠다)

Discriminative Model은 statistical classfication(통계적 분류) 중 하나로 input data X가 있을 때 Y를 바로inference(추론)해내는 알고리즘이다. 바꿔말하면 P(Y|X)를 바로 구한다. 대부분의 Supervised machine learning이 Discriminative Model에 속한다.

Discriminative models, also referred to as conditional models, are a class of models used in statistical classification, especially in supervised machine learning. A discriminative classifier tries to model by just depending on the observed data while learning how to do the classification from the given statistics - 위키피디아

Generative Model은 특정 데이터셋의 분포를 알아내어서 새로운 데이터를 샘플링하는 것을 최종목표로 한다. 

A Generative Model is a powerful way of learning any kind of data distribution using unsupervised learning and it has achieved tremendous success in just few years. All types of generative models aim at learning the true data distribution of the training set so as to generate new data points with some variations. - Deep Generative Models

위의 설명들은 개념적이서 좀 더 찾아보니 Stack Overflow답변 중에 괜찮은 것이 있다. 번역+요약을 하자면, discriminative model은 training data x로부터 y라는 label을 predict하기 위해 함수로 치면 단순히 f(x) = argmax_y p(y|x) 이다. generative model은 f(x)에서 p(y|x)를 p(x|y)p(y) / p(x) 로 치환해 문제를 푼다. 이 때 분모인 p(x)는 모든 y에 대해 동일하므로 없애버려도 된다. 즉 discriminative model은 conditional probability distribution p(y|x)를 통해 클래스 간 경계를 모델링할 뿐이라면, generative model은 joint probability distribution p(x, y)를 학습해 실제 클래스들의 분포를 모델링한다. 이 joint probability distribution p(x, y)가 있으면 y가 주어졌을 때 가장 그럴 듯한 x또한 계산(or 생성)할 수 있게 된다. 그래서 generative model이라고 불린다고 한다. 

그런데 위에서 언급한 '특정 데이터셋의 분포'를 알아낸다는 것은 p(x)를 구한다는 것 아닌가? p(x,y)만 가지고도 classification이 되고, data generatation이 되면 굳이 p(x)를 알아야하는 지 의문이다. 내가 지금 이해하기로는, p(x)를 알아야한다는 주장은 VAE에서 p(x,y)를 학습하기 위해서 log p(x)를 maximize하는 접근을 취하기 때문에 저런 주장이 나온 것 같다. 다음 포스트에서 VAE에 대해 정리를 하면 감이 잡힐 것 같다. 

Classifier 종류들

 

'Research (연구 관련)' 카테고리의 다른 글

Virtual Camera / Left handed rule  (0) 2019.09.12
VAE ( Variational AutoEncoder )  (2) 2019.07.28
초고속 광대역 통신 (Bandwidth & Latency)  (0) 2019.06.24
Optical Flow  (0) 2019.06.06
Install cmake  (0) 2019.06.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함