꺼내먹는지식 준

머신러닝 정리 8.5(1) - Discriminative model vs Generative Model 본문

AI/머신러닝

머신러닝 정리 8.5(1) - Discriminative model vs Generative Model

알 수 없는 사용자 2022. 10. 31. 20:30

Naive Bayes Model은 Generative Model 이고 Logistic Regression 은 Discrimitive Model 이다. 

 

Generative Model은 GAN 과 Diffusion 으로 접해봤는데 Naive Bayes 가 Generative 라니 어떤 의미인지 직관적으로 와닿지 않았다. 

 

이에 따라 Generative Model 과 Discrimitive Model 을 기본개념부터 비교해보며 정리해본다. 

 

Discriminative Model & Generative Model

Discriminative Model

해당 모델들은 training data 중 클래스들을 구별하는데 도움이 되는 unique features 들만 학습한다. 이러한 특성으로 인해 주로 classification algorithm에 주로 사용된다. (ex. SVM, Random Forests, etc.) 해당 모델들은 feature X가 주어졌을 때의 feature Y의 확률인 $P(y|x)$ 를 측정한다. 

 

예를 들어, 만약 주어진 이미지 데이터셋에서 말과 얼룩말을 구분해야하는 경우를 보자. Discriminative Model 은 두 샘플을 구별하는 특징들만 학습하고자 한다. (얼룩말의 줄무늬가 구분되는 특징일 수 있다.) 그러나 얼룩말과 말이 어떻게 생겼는지는 절대 이해할 수 없다. 

 

Generative Model

해당 모델들은 클래스들을 구별하는데 도움이 될만한 unique features 이해하기 보다는 전체를 이해하고자 한다. 

 

예를 들어, 분류를 돕는 unique feature만을 이해하려 하기 보다는 말과 얼룩말이 어떻게 생겼는가에 집중한다. 이러한 모델들은 실제로 data 를 이해하고, discriminative model 이 할 수 없는 data 생성이라는 엄청난 이점을 제공한다. 

 

생성 모델들은 다음을 측정하고자 한다. 

 

  • unsupervised data: sample 'x' 를 관측할 확률 즉, 주어진 데이터셋 X의 p(x)
  • supervised data: 주어진 데이터 셋 X에서 label 'y' 가 주어졌을 때 sample 'x' 를 관측할 확률  

생성 모델의 몇가지 특징

1. 분포의 측정

 

목표는 training samples이 생성되는 분포를 결정하는 것이다. 만약 해당 분포가 측정되면, 수 많은 samples 을 생성하는 것은 굉장히 쉽다. (평균과 표준편차가 주어진 정규분포에서 샘플을 생성하는 것이 얼마나 쉬운지 떠올려보자.) 분포를 추정함으로써 분포의 parameters를 추정한다. (정규분포의 평균과 표준편차같은 느낌)

 

2. 통계적 본질 (Stochastic Nature)

 

좀 어려운 부분이다. 통계적으로 랜덤인 요소를 측정한다. 이러한 알고리즘은 자연적으로 통계적이라(stochastic in nature) 주어진 한 input에 대해 다른 결과물들을 생성한다. 이러한 특성은 마치 determisnistic(주어진 input에 fixed 된 결과물) 인 것처럼 필수적이다, 모델은 일부 공식을 학습하여 생성 능력이 소진 될 수 있다. 즉, 고유한 입력이 한번 반복되면, 고유한 출력이 반복된다. 이는 주어진 샘플 데이터 셋에 대하여 수십만장의 이미지를 생성하고자 하면 큰 문제가 될 수 있다. 

 

3. 평가하기 어려움 

 

사실이다. discriminative model은 accuracy, F1 Scores, 등의 metric을 갖는 것과 비교하여 생성 된 인공 샘플의 질을 평가하는 것은 어렵다. True, False 혹은 좋다 나쁘다의 기준 같은 것이 없다. 생성 된 샘플의 질은 정성적인 영역이다. (실제로 논문에서도 정성 평가를 사용하곤 한다.)

 

4. 복잡한 데이터의 잠재 표현에 대한 의존성 (Dependence on Laten representation for complex data)

 

잠재 표현(Laten representaion)은 주로 높은 차원의 복잡한 데이터를 낮은 차원으로 표현한 것이다. 이는 데이터 생성에서 굉장히 중요한 역할을 한다. 잠재 공간(latent space)에 데이터의 중요한 특성만 보존하여 원본 객체에 근사하도록 역추적을 한다. 확률적 요소가 더해져 생성된 이미지가 데이터 셋 X의 주제/내용 (theme/content)와 유사하면서도 학습 데이터와 동일한 복사본이 되지 않도록 한다. 

 

원기둥의 잠재 공간(latent space) 를 만들고자 한다고 가정해보자. 원기둥을 더 낮은 차원인 '잠재 공간(latent space)' 표현하면, 잠재 공간은 모든 작은 디테일을 기억하지는 않고 원기둥을 결정짓는 중요한 요소들인 기본 특성만(원기둥 같은 높이, 반지름, 길이, 그 외 보통 원기둥을 결정 짓는 요소들) 기억할 것이다. 잠재 공간에 저장 된 이러한 기본 지식들에 작은 인공적 디테일을(ex. 질감, 원기둥 색상) 더하여  데이터셋에 적합해 보이면서 한번도 본적 없는 새로운 샘플들이 생성되는데 사용한다.

 

회색 도형: samples, 점선 도형: input N이 주어졌을 때, 잠재 공간으로 생성 할 수 있는 본적 없는 결과물

 

그러나 놀랍게 세상은 주로 Discriminative modelling 에 집중한다. 

이는 Discriminative model이 실제 세상 문제들에 적합하기 때문이다. 인공 샘플을 생성하기 위하여 샘플이 생성 된 분포를 알아야 되는 상황은 드물다 - 즉 주로 '분류(classification)' 가 실제 세상 문제와 연결된다. 

 

아래 상황을 살펴보자. 

 

  •  의료 이미지를 병감지 센터로부터 받았다. 여기서는 모델이 의료 이미지를 더 생성하는 것보다는 그냥 악성 종양을 잘 분류하거나 잡아내기를 원할 것이다. 분포를 학습하는 것이 여기서는 의미가 없다. 
  • email 을 스펨으로 분류하기 위해서 모델은 spam, no-spam 으로 분류해야 한다. 이를 위해서는 이러한 이메일이 생성된 분포를 이해하기 보다는 내용으로 분류하는 것이 중요하다. 

 

최근 GAN 및 텍스트 생성의 발전으로 인해 generative modelling 이 실제 세상 문제에 적용될 여러 새로운 기회를 얻고 있다. 그러나 여전히 커리어의 초기단게에서는 generative model이 주로 사용되는 경우가 적다. 

 

Generative Model Framework는 어떻게 생겼는가?

dataset X가 있다. 

 

이 X 가 어떤 분포 P_data 에서 샘플링 되었다고 가정한다. 

 

generative model 인 P_model 은 P_data 와 유사하게 행동하여 비슷한 샘플을 생성한다. 목표는 P_model을 P_data와 최대한 유사하게 학습시킨 후, P_model을 이용하여 같은 타입 샘플을 더 많이 생성하는 것이다. 

 

P_model 이 보기 좋은 모습은? 

P_model이 유사한 샘플을(dataset X에 봤던 것과는 같지 않은) 생성할 때, '주제(theme)' 는 같도록 유지되지만, 다른 특성(features)은 상당히 변화한다. 만약 'X' 가 얼굴 데이터라 하면, 성공적인 P_model은 다음과 같은 얼굴 이미지를 생성할 수 있어야 한다. 

 

  • P_data의 copy_paste 가 아닌 샘플 (dataset에서 본적 없는 face) (오타가 아닌가 싶다 P_data 가 아니라 X_data 아닌가? ) 
  • 샘플들은 얼굴과 닮아야 한다. (말이 아니어야 한다.)

아래 예제는 이상적인 경우다.  

 

 

위 세계 지도를 살펴보자. '검은 점'이 generative model을 만들 때 학습한 데이터 셋이라 가정해보자. 학습 데이터 셋은 다음의 특징을 갖는다. 

 

  • 각 점은 '육지' 지역에 있고 바다 지역에 있지 않다. 
  • 육지 선택에 특별한 조건은 없는 듯 해 보인다. 전 대륙에 걸쳐 넓게 퍼져있다. 

generative model 'a', 'b', 'c' 를 학습시킨다고 가정해보자. 각 모델은 한 점씩 생성한다. 

 

'a' 는 점 'A' 를 생성했다. 하지만 바다 위에 점을 생성했기에 이상적인 generator 가 아니다. 이 모델은 학습 데이터에서 가장 중요한 특성중 하나인 '각 점은 육지 지역에 있다'를 이해하지 못했다. 

 

'b' 는 점 'B' 를 생성했다. 그러나 B는 overfit 된 것 처럼 보인다. 

 

'c' 는 점 'C' 를 생성했다. 점이 육지위에 찍혔고, 기존 데이터와 너무 유사하지도 않아서 좋아보인다. 'C' 가 이상적인 generator이다. 

 

몇가지 용어 정리  

※ Sample Space:

The pool of values from which samples in training dataset ‘X’ can take values. For example: In the above world map scenario, the collection of all points on ‘land’ constitute the sample space

 

Probability Density Function (pdf):

It’s the function that maps the probability of picking up a sample from a sample space.

 

예를들어, 물위에 있는 점은 probability = 0 이다. 육지에 있는 점은 상수 'k' 이다. 

 

Parameteric modeling:

Representing any distribution using a set of parameters is called Parameter modeling (정규분포에서 평균과 표준편차가 있으면 sample 을 뽑을 수 있다. 삼각형의 경우 꼭지점 3개로 결정된다. 즉 모든 샘플은 (A,B,C) 좌표로 측정 될 수 있다.)

 

Likelihood:

데이터 셋 X 가 주어졌을 때, 분포의 paramters $\theta$ 가 관측될 확률. 즉, $P(y|X, \theta)$ 이다. 

 

Maximum likelihood:

$P(y|X, \theta)$ 를 최대화 하기 위한 최적의 parameter $\theta$ 를 maximum likelihood라고 한다. 

 

샘플 공간(sample space)의 모든 샘플의 확률의 합은 1이다. P_data & P_model도 물론 pdf 형태로 나타난다. P_data의 유일한 차이점은 dataset X의 true pdf 이고, 그러한 pdf 는 하나만 있다는 것이다. 반면에 추정하고자 하는 P_model은 P_data에 의해 여러개로 추정 될 수 있다. 우리는  P_data 를 추정하는 best P_model 얻을 방법을 찾아야 한다. (알아듣기 쉽게 설명하자면, true pdf 는 당연히 하나밖에 없다. true pdf 를 추정하는 모델은 당연히 여러개 생길 수 있다. 이 중 true pdf를 가장 근사하는 모델이 우리가 찾고자 하는 모델이다.)

Comments