3 generative models for discrete data

17
1. 2. 3. 3 Generative models for discrete data 3.1 Introduction 3.2 Bayesian concept learning 3.2.1 Likelihood 3.2.2 Prior 3.2.3 Posterior 3.2.4 Posterior predictive distribution 3.3 The beta-binomial model * 다른 문제에 대한 generative model 3.3.1 Likelihood 3.3.2 Prior 3.3.3 Posterior 3.3.4 Posterior predictive distribution 3.4 The Dirichlet-multinomial model 3.4.1 Likelihood 3.4.2 Prior 3.4.3 Posterior 3.4.4 Posterior Predictive 3.4.4.1 Worked example: language models using bag of words 3.5 Naive Bayes classifiers 3.5.2 Using the model for prediction 3.5.5 Classifying documents using bag of words (example) 3.5.1.2 Bayesian naive Bayes 3.1 Introduction 데이터와 모델의 파라메터가 주어졌을 때 분류하는 문제에 대한 chapter Generative라는 의미는 p(x|y)를 어떤 분포로 가정하기 때문에 feature vector x를 생성해 낼 수 있다는 의미 discrete data 이라는 의미는 p(x|y)의 분포를 베르누이, multinomial같은 이산 분포로 가정한다는 의미(c.f Gaussian 분포) bayesian rule에 의해서 분류를 함 3.2 Bayesian concept learning Number game "소수" 또는 "1에서 10사이의 정수" 같은 산술 개념 C을 하나 고른다 C에서 N개의 숫자 Unable to render content due to system error: java.lang.ClassCastException: 를 뽑아서 사람A에게 com.stepstonetech.confluence.plugins.latex.LatexMacro cannot be cast to com.atlassian.renderer.v2.macro.Macro 보여준다 (1에서 100사이의 숫자로 한정) 사람 A한테 숫자 하나 Unable to render content due to system error: java.lang.ClassCastException: 더 보여준 후 D의 컨셉 com.stepstonetech.confluence.plugins.latex.LatexMacro cannot be cast to com.atlassian.renderer.v2.macro.Macro C와 일치하냐고 묻는다 posterior predictive distribution: 데이터 D를 보고 컨셉 C를 유추한 후, 새로운 x가 컨셉 C에 맞을 확률을 의미 그림 설명 컨셉 C에 맞는 숫자 4개 D=[16, 8, 2, 64] 를 보여준 후 0~100까지 모든 숫자 x에 대해서 posterior predictive distribution를 histogram으로 표시 왜 이렇게 도출됐는지에 대한 자세한 설명은 뒤에

Upload: jungkyu-lee

Post on 15-Apr-2017

176 views

Category:

Engineering


10 download

TRANSCRIPT

Page 1: 3 Generative models for discrete data

1. 2.

3.

3 Generative models for discrete data3.1 Introduction3.2 Bayesian concept learning

3.2.1 Likelihood3.2.2 Prior3.2.3 Posterior3.2.4 Posterior predictive distribution

3.3 The beta-binomial model* 다른 문제에 대한 generative model3.3.1 Likelihood3.3.2 Prior3.3.3 Posterior3.3.4 Posterior predictive distribution

3.4 The Dirichlet-multinomial model3.4.1 Likelihood3.4.2 Prior3.4.3 Posterior3.4.4 Posterior Predictive3.4.4.1 Worked example: language models using bag of words

3.5 Naive Bayes classifiers3.5.2 Using the model for prediction3.5.5 Classifying documents using bag of words (example)3.5.1.2 Bayesian naive Bayes

3.1 Introduction

데이터와 모델의 파라메터가 주어졌을 때 분류하는 문제에 대한 chapterGenerative라는 의미는 p(x|y)를 어떤 분포로 가정하기 때문에 feature vector x를 생성해 낼 수 있다는 의미discrete data 이라는 의미는 p(x|y)의 분포를 베르누이, multinomial같은 이산 분포로 가정한다는 의미(c.f Gaussian 분포) bayesian rule에 의해서 분류를 함

               

         

3.2 Bayesian concept learning

Number game

      "소수" 또는 "1에서 10사이의 정수" 같은 산술 개념 C을 하나 고른다        C에서 N개의 숫자 Unable to render content due to system error: java.lang.ClassCastException:

를 뽑아서 사람A에게com.stepstonetech.confluence.plugins.latex.LatexMacro cannot be cast to com.atlassian.renderer.v2.macro.Macro보여준다 (1에서 100사이의 숫자로 한정)      사람 A한테 숫자 하나 Unable to render content due to system error: java.lang.ClassCastException:

더 보여준 후 D의 컨셉com.stepstonetech.confluence.plugins.latex.LatexMacro cannot be cast to com.atlassian.renderer.v2.macro.MacroC와 일치하냐고 묻는다

posterior predictive distribution: 데이터 D를 보고 컨셉 C를 유추한 후, 새로운 x가 컨셉 C에 맞을 확률을 의미

그림 설명

컨셉 C에 맞는 숫자 4개 D=[16, 8, 2, 64] 를 보여준 후 0~100까지 모든 숫자 x에 대해서 posterior predictive distribution를 histogram으로표시왜 이렇게 도출됐는지에 대한 자세한 설명은 뒤에

Page 2: 3 Generative models for discrete data

용어

hypothesis space of concepts, H,* e.g. odd numbers, even numbers, all numbers between 1 and 100,version space The subset of H that is consistent with the data D 

3.2.1 Likelihood

가설이 주어졌을 때, 보여준 숫자가 어떠한 확률로 일어날 수 있느냐에 대한 수치를 likelihood p(D|h)라 한다뽑힌 숫자 간에는 독립이라는 가정은 있음

예를 들어 다음과 같이 보여준 숫자가 있을 때

 

p(16|h_two) = 1/6 //왜냐하면 100이하 숫자 중 2의 승인 수는 2,4,8,16,32,64의 6개이다.

p(16|h_even) = 1/50

 

 //p(16|h_two)*p(8|h_two)*p(2|h_two)*p(64|h_two)

3.2.2 Prior

가설에 대한 확률을 사전적인 믿음으로 적용한다

그림 설명

각 가설에 대해서 그럴듯한 것은 많은 prior 믿음을 주고, 자연스럽지 못한 것은 낮은 prior를 설정했다.32를 제외한 2의 powers 같은 경우 자연스럽지 않으므로 낮은 prior를 설정한다.

Page 3: 3 Generative models for discrete data

3.2.3 Posterior

데이터가 주어졌을 때 prior에서 업데이트된 가설 h의 분포

 : 모든 데이터가 가설 h 에 포함되어 있다면 1 아니면 0

수 많은 가설 h 중 어느 가설이 가장 좋은 것인가?

likelihood와 prior를 모두 고려한 posterior가 가장 큰 가설을 고르겠다--> Maximum A Posterior 추정

          

Page 4: 3 Generative models for discrete data

그냥 prior 고려 없이 likelihood가 제일 큰 가설을 고르겠다(Maximum Likelihood Estimation)

           

그림 설명

 D = {16} 인 데이터를 보여준 후의 prior, likelihood, posteriorlikelihood의 경우, 16에 맞지 않는 경우는 0이 되고 (power of 10 같은) 가설 공간이 큰 가설의 경우(all)에도 likelihood는 낮다37을 포함한 2의 powers, 32을 제외한 2의 powers 같은 경우 낮은 prior 때문에 높은 likelihood에도 불구하고 posterior는 낮다.odd 가설의 경우 likelihood가 낮아서 높은 prior에도 불구하고 posterior가 낮다

.

일반적으로, 충분한 데이터가 있다면 posterior p(h|D)는 한 점에 수렴한다(주로 MAP estimate)

그림 설명 

데이타가 많을수록 likelihood가 prior를 압도한다. 그래서 map는 mle에 수렴한다 

Page 5: 3 Generative models for discrete data

3.2.4 Posterior predictive distribution

posterior는 추정하고자 하는 것에 대한 우리의 내적인 믿음 상태이다.우리의 믿음이 정당한지 테스트하는 방법은 객관적으로 관찰 가능한 값을 예측하는데 사용하는 것이다.posterior predictive distribution

               

 // 아래 그림으로 설명 그림 설명

Page 6: 3 Generative models for discrete data

(right) //posteriorleft : 

, 데이터가 가설에 일치하면 y  = 1(점을 찍음) 예를 들어, 4, 16, 64는 power of 4의 가설에 일치하므로 점이 찍혀 있음

이 수식의 의미는 테스트 데이터 x가 들어왔을 때 모든 가설에 대해서 데이터에 대한 일치를 posterior p(h|D)로 가중치 합한 것D = {16} 이고 p(x = 1이 컨셉C에 맞느냐|D)를 계산한다고 하면, 1는 가설 squares, 가설 all에만 일치하므로   p(x = 1이 컨셉C에맞느냐|D) =P(square|16)+P(all|16) 으로만 계산하면 된다.모든 1~100까지 x에 대해서 계산한 것이 

  (posterior predictive distribution) 이다

표 설명

자주 나오는 분포 정리K면 주사위를 n번 던지기 xi = i면이 나온 횟수 x = (2,3,2,3,2,3) // 총 15번 6면 주사위를 던져서  눈1이 2번 눈2가 3번 눈3이 2번 ... 나왔다K면 주사위를 1번 던지기 6주사위에서 3이 나왔다면 x = (0,0,1,0,0,0)동전을 n번 던지기 x = 앞면이 나온 횟수동전을 1번 던지기. 앞면 x = 1, 뒷면 x =0

Page 7: 3 Generative models for discrete data

 

3.3 The beta-binomial model

* 다른 문제에 대한 generative model

3.3.1 Likelihood

동전 던지기 문제는 베르누이 분포를 따른다.  Unable to render content due to system error: java.lang.ClassCastException:com.stepstonetech.confluence.plugins.latex.LatexMacro cannot be cast to com.atlassian.renderer.v2.macro.Macro

           

 

likelihood Unable to render content due to system error: java.lang.ClassCastException: com.stepstonetech.confluence.plugins.latex.LatexMacro

 이므로 cannot be cast to com.atlassian.renderer.v2.macro.Macro  

 N 번 시행시 head가 나온 횟수: 

N번 시행시 tail이 나온 횟수:

데이터 N1, N0은 

를 추론하기 위해 알아야 하는 D의 모든 것이기 때문에, 데이터의 충분 통계량(sufficient statistic)이라 부른다. 수학적으로는  

즉 likelihood는 다음과 같은 이항 분포(binomial) 모양이다. (n k) 항은 θ랑 독립이기 사라져도 상관없다

3.3.2 Prior

계산을 편하게 하기 위해서 likelihood와 같은 모양으로 한다

          

Page 8: 3 Generative models for discrete data

 

이러한 prior의 가정 하에 posterior는 다음과 같이 계산할 수 있다. (p( ) --> p( ) 오타인듯)θ θ|D

         

prior와 posterior가 같은 형태일 때의 prior를 likelihood에 대한 conjugate prior라고 부른다.conjugate prior는 계산과 해석이 쉽기 때문에, 널리 쓰인다.이항 분포를 따르는 likelihood의 경우 conjugate prior는 beta 분포이다

             

prior의 parameter는  라고 부른다. hyper-parameter

3.3.3 Posterior

beta prior에 likelihood를 곱하면 다음과 같음 posterior를 얻을 수 있다.

 = 

posterior는 단지 prior의 hyper-parameters 각각에 앞면과 뒷면이 나온 횟수만 더하면 된다.그래서 hyper-parameters를 pseudo count라고도 부른다.

그림 설명

빨간 색 선의 prior(베타 분포)가 beta분포의 파라메터 a, b의 수치에 따라 바뀌는 것을 볼 수 있다.a=b=1일 경우 beta 분포는 uniform 분포와 같아지고 prior에 대한 아무런 정보를 주지 못하기 때문에 uninformative prior라고 부른다(a)의 경우 week prior이기 때문에 posterior가 likelihood에 압도되었다.(b)의 경우 strong prior이기 때문에 posterior가 likelihood와 prior의 타협선이다.

3.3.4 Posterior predictive distribution

위에서 구한 posterior 분포 하에서 한 번의 동전 던지기가 앞면이 나올 확률에 대한 예측.

동전 던지기 시도의 데이터 D가 주어지고, 다음 동전 던지기 시도에서 앞면이 나올 확률은

Page 9: 3 Generative models for discrete data

동전 던지기 시도의 데이터 D가 주어지고, 다음 동전 던지기 시도에서 앞면이 나올 확률은

           

           

// 증명

           데이터가 주어졌을 때 앞면이 나올 확률=모든 앞면이 나올 확률 θ에 대해서, θ을 추정한 posterior p(θ|D)로 가중치 합한 것           즉 Posterior로 θ의 기대값을 구한 것.

           적분 계산을 하면 a/(a+b)가 나온다. 예를 들어 베타 분포의 prior가 a=b=1일 경우, 

            

           prior의 hyper-parameter가 smoothing으로 작용 add-one smoothing이라고 한다.

3.4 The Dirichlet-multinomial model

Likelihood가 multinomial 인 경우동전 던지기를 일반화해서 K-면 주사위 던지기를 N번 던지는 문제로 확장Latent Dirichlet Allocation에서, 사람이 문서의 토픽을 결정하는, 토픽 내에서 단어가 결정되는 분포.LDA는 토픽이라는 latent 변수를 연결체로 주사위를 두번 던지는 문제로 볼 수 있음문서의 첫 단어에서, 토픽 갯수-면 주사위를 한 번 던져서 토픽을 뽑고, 그 토픽에서의 단어-면 주사위를 한 번 더 던져서 단어를 뽑는다.

3.4.1 Likelihood

xi는 i번째 주사위 던지기 시도에서 나온 눈의 수

       

 where 

 

θk = k-면이 나올 확률, 모든 K에 대해서 합은 1

         

Page 10: 3 Generative models for discrete data

D에 대한 likelihood는 다음과 같다 (multinomial model)

         

           

 event k가 일어난 횟수(이 모델의 데이터에 대한 충분 통계량)

3.4.2 Prior

multinomial 분포의 conjugate prior 분포는 Dirichlet 분포이다.즉 multinomial 분포의 파라메터(각 눈이 나올 확률)의 분포를 표현하는데 많이 쓰임(LDA)즉 로 추출된 랜덤변수 벡터의 모든 원소의 합은 1이고 0보다 크다.(랜던 변수 자체가 확률 모양)x ~ Dir()

그림 설명

(a) multinomial의 파라메터들은 θ1+θ2 +θ3=1 이고 0<=θ<=1 인 θ의           분포이고 왼쪽 그림에서 평면 위에 위치(b) 평면             위에서 hyper-parameter α = (2,2,2)일 때의 θ의 분포 θ = (1/3,1/3,1/3)일 때의 확률이 가장 크다(c) α = (20,2,2)일         때의 θ의 분포 θ1가 큰 θ의 확률이 크다

         

Page 11: 3 Generative models for discrete data

3.4.3 Posterior

Dirichlet 분포인 prior에 multinomial 분포의 likelihood를 곱하면 posterior 역시 Dirichlet 분포이다

       

posterior(Dirichlet 분포)의 parameter는 prior의 hyper-parameter에 시행 데이터의 카운팅 Nk를 더한 것임을 알 수 있다.Posterior가 최대가 되는  (즉MAP)를 미분으로 구할 수 있다. θ

          

라는 제약 조건이 있기 때문에 라그랑지 승수(Lagrange Multiplier)법을 사용한다.          목적 함수 l(θ,λ) = logp(θ|D) +( 제약조건 페널티)를 다음과 같이 만든다      

           제약 조건이 포함된 마지막 항은  θ가 제약에서 벗어날 때, 페널티로 작용하기 때문에 최대한 제약조건을 만족하는 θ로 최적화된다.           

라 놓고           각   편 θ와 λ에 대해서 미분 후 0 이 되는 지점을 찾으면         

(3.42)           

(3.42)             

(3.43)             위의 (3.43)번 수식 양쪽에 sum을 취하면            

         

 where 

Page 12: 3 Generative models for discrete data

            (3.43) 수식에 (3.46) 수식을 대입하면            

            uniform prior인  αk=1을 사용한다면, α0=K가 되어서, MLE 추정이 되어 버린다.            

(3.48)             k가 나올 확률 = 주사위 k가 나온 횟수/전체 시도

3.4.4 Posterior Predictive

주사위 던지기 시도인 데이터 D가 주어지고, 한 번 더  던졌을 때 j면이 나올 확률은

(3.49) 모든 parameter θ에 대해서, θ가 주어졌을 때 j면이 나올확률*θ에 대한 posterior를 더한다(3.50) 상관없는  p(X=j| ) = P(X=j| )이고 두번째 항은 전확률 법칙에 의해 성립된다θ들은 없앤다: θ θj(3.51) (θj의 hyper-pameter + D에서 j면이 나온 횟수)/(θ의 hyper-pameter의 합 + 총 시도 횟수)

동전 던지기 posterior predictive와 비교

3.4.4.1 Worked example: language models using bag of words

Mary had a little lamb, little lamb, little lamb,Mary had a little lamb, its fleece as white as snow 단어를 숫자 인덱스화 해서 바꾸면,Mary had a little lamb, little lamb, little lamb,Mary had a little lamb, its fleece as white as snow 단어들이 나온 횟수를 테이블로 만들면,

총 17번 시도의 10면 동전 던지기로 볼 수 있다. 각 Count 엔트리는 

를 의미한다.각 단어 j가 나올 확률: θjθ 의 prior: Dir(α)posterior predictive(위의 데이터 D가 주어졌을 때, 다음 단어로 j가 나올 확률)

 로 셋팅하면,

Page 13: 3 Generative models for discrete data

 로 셋팅하면,

lamb, little, unk가 나올 확률이 제일 높다

3.5 Naive Bayes classifiers

discrete-valued feature vector 

을 분류하는 법에 대해서 다룬다.

          K는 각 feature에 할당될 수 있는 값의 갯수, 1에서 10까지 정수가 나올 수 있다면 K = 10          D는 feature의 수

다음과 같은 조건부 독립(conditionally independent)를 가정한다  

       

          feature vector의 class conditional probability는 각 feature의 class conditional probability의 단순 곱이다          class 가 주어졌을 때 각 feature간에는 독립이다. 예를 들어 각 문서의 단어를 feature라고 하면 각 단어들 사이에는 독립이다

          위의 모델을 naive Bayes classifier(NBC)라 한다. 

실제 세계에는 잘 안맞는 가정이기 때문에 naive라고 이름 붙여졌지만 모델의 간단함 때문에 overfitiing에 대한 내성이 있기 때문에 여러도메인에서 좋은 성능을 보이고 있다. 각 class의 feature vector들이 정규 분포를 따른다면,

            

            D는 피쳐의 수             μjc는 c에 속한 feature j의 평균

            σ는 위의 분산

각 class의 feature vector들이 Bernoulli를 따른다면, 

          

            μjc는  feature j가  class c에서 발생(1이 될)할 확률

각 class의 feature vector들이 multinoulli를 따른다면(

 ),

Page 14: 3 Generative models for discrete data

          

 

3.5.1 Model fitting

MLE 하나의 (feature vector xi, class yi) 쌍에 대한 확률은 다음과 같다:

//p(x,y) = p(x|y)p(y) , p(xij| )가 아니라 p(xij|yi, ) 싶은데?? θj θj                     

//p(y)는 multinuilli 분포, 두번째 파이는 조건부 독립 조건에 의해서

이므로,  위의 식에 log를 취하면

likelihood에서분류 카테고리 class c의 분포는 앞에서 다루었던 multinomial 분포와 같고, MLE 추정은 다음과 같다(식 3.56를 pi      에 대해서 미분 후    )0으로 셋팅하고 정리

그리고, 각 class 별, feature vector의 분포를 베르누이 분포라고 가정하면(

), 각 클래스 c의 j번째 feature가 1될 확률은 다음과 같이 추정할 수 있다(식 3.56를  )θ에 대해서 미분 후 0으로 셋팅하고 정리

즉, class c로 분류된 feature vector들 중 j번째 feature가 1이 된 횟수/class c가 나온 전체 feature vector들의 갯수

3.5.2 Using the model for prediction

위와 같은 NBC의 parameter  π, θ의 fitting(학습) 과정 후, 새로운 테스트 feature vector x 하나에 대한 분류는 다음과 같이 한다.

Page 15: 3 Generative models for discrete data

//p(y)p( |y) , 파라메터들은 섹션 3.5.1에서 fiting됨x

다음 예제에서 자세히

3.5.5 Classifying documents using bag of words (example)

문서를 binary vector로 표현한다. 즉 문서 i에 단어 j가 등장했다면 xij = 1class conditional density를 다음과 같이 표현할 수 있다. traiining 문서문서1 (a b)->(1,1,0),class1 문서2 (b c)->(0,1,1),class2 test 문서문서3 (c)->(0,1,1),? Fitting

Predict

p(class1|(0,1,1))   p(class1)p((0,1,1)|class1) = 0.5*p(a=0|class1)p(b=1|class1)p(c=1|class1)= 0.5*{0*1*0} = 0αp(class2|(0,1,1))   p(class2)p((0,1,1)|class2) = 0.5*p(a=0|class2)p(b=1|class2)p(c=1|class2)= 0.5*1*1*1 = 0.5α두번째 것이 더 크므로 class2로 분류 

3.5.1.2 Bayesian naive Bayes

위의 예제는 MLE 추정이 overfittinf이 일어날 수 있음을 보여준다b 단어는 2개의 클래스 모두에 나타나기 때문에, 만약 b라는 단어가 없는 테스트 문서가 들어왔을 경우, 두개의 클래스 모두에서 예측은0이 되어 버림이러한 문제를 해결하기 위한 방법은 bayesain이 되는 것이다.

나이브 베이즈의 파라메터(π,θ) 에 대해서 다음과 같은 prior를 설정한다고 생각하자

π ~ Dir( )αθjc ~ Beta(β0,β1)

다음과 같이 나이브 베이즈의 파라메터의 posterior를 구할 수 있다.

Page 16: 3 Generative models for discrete data

====================================================================

복습

  =  

====================================================================

나이브 베이즈의 예측 수식은 

전 확률 법칙과 x의 분포(multinomail) y의 분포(베르누이)에 의해서 

// Ber(xj|y=c,θjc) = p(x|y,θjc)

posterior predictive density는 단순히 parameter의 기대값을 파라메터로 쓰면 된다. 즉

Page 17: 3 Generative models for discrete data

=====================================================================복습Multi-Dirichlet model

bin-beta model 

=====================================================================복습에 의해서, 각 파라메터의 값은 다음과 같이 계산할 수 있다

살펴보면, 파라메터 추정치의 분자와 분모에 prior의 hyper-parameter 값들이 더해지기 때문에, 앞서 예제와 같은 overfitting문제가 완화될 것이라고기대할 수 있다즉, laplace smoothing이라고 알려져 있는 수식이 bayesian에서 유도(사실 수식 먼저 개발하고 껴 맞춘 거일수도 있고...)

세줄 요약

Bayesian이 붙는 건 NB paramter(\pi,\theta)의 분포까지 추정하겠다는 것 = NB paramter의 posterior를 알고 싶다는것

결과적으로 다음 pi의 posterior는 Dirichlet 분포를 따르고, theta는 Beta 분포를 따른다NB paramter의 분포까지 알았고 예측을 할때는,파라메터의 특정 추정값이 필요한데, 이제 분포를 다 알기 때문에 그걸을 MLE나 MAP이아닌 더 좋은 파라메터의 기대값을 사용