8 1 Generative vs Discriminative Models

https://youtu.be/YQClUDd9ff4

(ML 1.5) Generative vs discriminative models

https://youtu.be/oTtow2Ui8vg

image

7 2018 05 09 Data Science Generative Vs Discriminative Models

https://youtu.be/gwV7spVO5Z0

image

generative에서는 일단 확률밀도함수를 구한다. 그리고 이를 이용해서 각 지점의 확률값을 얻게 된다.

image

discriminative는 예상값과 실제값과의 손실을 비교해서 가장 손실이 적은 모델을 찾아간다.

image

Machine Learning interview questions-what is difference between generative and discriminative model

https://youtu.be/uhRPeyzTZ9o

image

https://m.blog.naver.com/PostView.nhn?blogId=2feelus&logNo=221078340870&proxyReferer=https%3A%2F%2Fwww.google.com%2F

Discriminative Learning Algorithms

머신러닝의  분류 알고리듬을 다음과 같이 풀어서 설명할수 있다.

어떤 입력값(input) x가 주어졌을때 그 결과값(label)이 y일 확률을 알아내는 것

=>  p( y | x )

=> x라는 값들이 충분히 의미있는 데이터일때 그 데이터를 기반으로  y가 0일지 1일지를 확률 적으로 예측

=> 결과적으로 구분선을 찾아내는 것이 중요하다.

이렇게 입력값과 출력값을 직접적으로 연결시키는 방식을 Discriminative(변별) Algorithm이라고 한다.

Discriminative방식의 머신러닝은 다음의 과정으로 이루어진다.

1. 특정 입력값X에 대한 조건부 확률 분포를(Conditional Probability Distribution) 만들어낸다.

=> 조건부 확룰 분포는 입력값 x가 특정 값이라는 조건으로 주어질때의 Y값의 분포도를 기술하는 데이터형식이다.

2. 조건부 확률 분포에 근거해서 x input과 y label(output)로 벡터를 만들어낸다.

3. x값들의 성질(결과값, 즉 y값)이 0인 것 들과 1인 것들을 잘 구분할수 있는 선(직선 혹은 곡선, decision boundary)을 만들어낸다.

4. 만들어진 선을 기반으로 새로운 데이터(x’)가 입력되었을때 선으로부터 음 혹은 양의 방향으로의 거리를 재어 확률을 구한다.

그림으로 살펴보면 다음과 같다.( 모든 원들을 x를 의미, 노랑/파랑은 y=0/y=1을 의미, 곡선은 구분선을 의미, 세모는 새로운 입력을, distant는 선분으로부터 음/양의 거리를 의미)

대표적인 방식이 Logistic Regression이다.  그 외에도 Conditional Random Field, Support Vector Machine, Linear Regression, Neural Network 등의 알고리즘들이 있다.

장점:

데이터가 충분할경우 좋은 성능을 보여준다.

단점:

데이터를 구분하는데 목표를 두고 있으므로, 데이터가 실제 어떤 모습인지 본질을 이해하기는 어렵다.

Generative Learning Algorithms

그런데 이러한 Discriminative 방식과는 다른 방식의 분류 알고리듬이 있다. 구분해내는 것을 넘어서 분류 카테고리에 맞는 데이터를 생성해내는 방식이다.

생성되는 입력과 결과 데이터는 분류 클래스별로 특정한 통계적 분포를 따른다고 가정하는 방식이다.

다음과 같이 풀어서 설명할수 있다.

=>  입력값 x와 결과값(라벨)y가 주어질때,  이들은 일정한 분포 규칙속에서 존재한다. 그 분포 규칙은 분류 클래스마다 다르다.

=> 이러한 분포 규칙은 Normal Distribution등의 통계적인 방법론을 따른다.

=>  분포규칙은 수식적으로는 결합 확률 분포 – p( x , y)  로 표현한다. ( 결합 확률 분포- joint probability distribution )

=> 실제로 분류에  필요한 사후확률 p ( y | x)은 p(x,y)로 부터 유도할수 있다. (변경과정은 아래 부록1에 )

=> 핵심은 카테고리별로  분포규칙을 표현하는  확률 분포 모델의 파라미터들을 찾아 내는 것이다.

이렇게 입력값과 출력값 사이에 분포규칙의 개념을 적용한 방식을 Generative(생성) Algorithm이라고 한다.

Generative방식의 머신러닝은 다음의 과정으로 이루어진다.

1. 주어진 데이터와 결과값을 이용해 모든 x와 모든 y에 대해 결합 확률 분포 (Joint Probability Distribution)를 만든다.

2. 결합확률 분포로 부터 어떤 확률 분포모델이 데이터 분포모델에 적한한지 측정(estimation)한다. (어려운 과정)

3. 측정해낸 확룰 분포모델을 기반으로 사후확률을 알아낼수 있다.

p(y|x) =  p(x|y) * p(y) / p(x)

사후 확률 = 결합확률(p(x,y))  / p(x) –

4.즉  x가 주어질 경우, y의 확률을 예측하려면,  x,y에 대한 결합확률분포공식(모델)과 x의 확률(경계확률)을 알면 구할 수 있다.

그림으로 살펴보면 다음과 같다. (작은 원들을 x를 의미, 노랑/파랑은 y=0/y=1을 의미, 세모는 새로운 입력을, 큰 타원은 확률 분포를 의미)

대표적인 방식은 Naive Bayes가 있으며 이외에도 Gaussian discriminant Analysis(GDA), Gaussian Mixture Model(GMM), Hidden Markov Model(HMM), Latent Dirichlet Allocation(LDA), Restricted Boltzmann machine(RBM), Generative Adversarial Network(GAN)등이 있다.

Naive Bayes의 경우에도 주어진 관측데이터 결합확률 분포를 통해 확률모델로 만들어내기때문에 Generative Model이다.

장점:

데이터 셋이 적어도 할만하다.

데이터 자체의 특성을 파악하기에 좋다.

데이터를 생성해 내어 새로운 결과물을 얻어낼수 있다.

단점:

데이터가 많은 경우, Discriminative에 비해 성능이 떨어 질수 있다.

결합확률분포표 와 조건부확률분포표

아래는 입력값 X가 0 ~ 2에 걸쳐서 이산분포하고, 결과값 Y가 0~2에 결쳐서 이산분포할때 의 결합확률과 조건부 확률을 비교한 것이다.

문제를 통해서 결합확률과 조건부확률간의 비교를 해보자.

결합확률분포표(Joint Probability Distribution)


조건부확률분포표(Conditional Probability Distribution)

X가 1로 주어졌을때, Y가 1일확률은 0.8로서 다른 Y class들(0,2)에 비해서 가장확률이 높다.  (checksum이 0.30에서 1.0으로 바뀐것을 확인)

즉 x가 1일때 예측값은 1이다. 수식은 다음과 같다. argmax는 입력값중에 가장 큰 값을 선택하라는 의미이다.

class = argmax( P(Y|X=1) ) = 1

부록1) 베이즈룰에 따라 결합확률에서 사후확률로 변경되는 과정

=> p(x,y) = p(y|x) * p(x)  베이즈룰에 따라, 결합확률은  x(input data)가 y(label) 일때의 사후 확률(posterior)과  x의 경계확률의 곱으로 표현할수 있다.

=> p(x,y) = p(x|y) * p(y)  베이즈룰에 따라, 결합확률은  y(label)가 주어졌을때  x(input) 일때의 가능도(likelihood)와  y의 사전확률(prior)의 곱으로 표현할수 있다.

=> p(x,y) = p(y|x) * p(x) = p(x|y) * p(y) 라는 베이즈 확률 공식에 따라, p(y|x) =   p(x|y) * p(y) / p(x) 로 표현할수 있다.

=> p(y|x) = p(x|y) * p(y) / p(x) .

즉 입력값 x가 주어질때의 사후확률은 라벨 y 가 입력값 x 일 경우의 가능도와 라벨 y 의 사전확률을 곱한것을 x 일경우의 모든 경계확률로 나눈것이다.

참고)

Open AI의 Generative Model – “What I Cannot Create, I do not understand”(만들지 못하면 이해하지 못한거야) – https://blog.openai.com/generative-models/

Andrew Ng의 표준분포를 이용한 Generative Learning algorithms  – http://cs229.stanford.edu/notes/cs229-notes2.pdf

Wikipedia 베이즈 확률론 –https://ko.wikipedia.org/wiki/%EB%B2%A0%EC%9D%B4%EC%A6%88_%ED%99%95%EB%A5%A0%EB%A1%A0

결합확률분포표과 조건부 확률분포표의 계산 – https://onlinecourses.science.psu.edu/stat414/node/116

의미적 의존 링크 토픽 모델을 이용한 생물학 약어 중의성 해소 – http://kiise.or.kr/e_journal/2014/9/JOK/pdf/07.pdf

Comments are closed.

Post Navigation