오늘은 Linear Discriminant Analysis(LDA)에 대한 수식적 이해를 돕도록 하겠다. 

 

참고 : 머피의 머신러닝 1, CPSC 540

 

 


0. optional - 사전 지식

0-1. prior, posterior, likelihood

prior, posterior, likelihood에 대해 샘플 데이터 D, 학습하고 싶은 파라미터 θ를 기반으로 정리하면 다음과 같다. 

  • prior : P(θ)
  • posterior : P(θ|D)
  • likelihood : P(D|θ)
  • posterior ~= prior * likelihood (by baysian)

이번엔 데이터가 피쳐 x와 라벨 y로 구성되어 있다 가정하자. 그러면 식이 다음과 같이 바뀔 수 있다. 아래와 같이 수식을 접근하게 되면 라벨 y의 클래스(c)가 달라질 때마다 분포가 달라질 수 있는 '조건(condition)'을 가정할 수 있게 된다. 

  • prior over class : P(y = c ; θ)
  • class posterior : P(y | x; θ)
  • class conditional density : P(x | y=c; θ)

오늘 글에서는 class posterior를 posterior로 줄여 쓸 예정이다. 

 

 

0-2. Gaussian

Gaussian을 log로 옮긴다면 식을 다음과 같이 풀 수 있다. 우선 데이터 x가 평균이 u고 분산이 ∑인 가우시안 분포를 따른다고 가정하자.

  • P(x|θ) = N(x| u, ∑)

이때 Log P(x|θ)는 아래와 같이 표현된다. 

Gaussian likelihood
Gaussian Likelihood

 

가우시안을 log로 나타내서 식을 풀 수 있음을 알았다. 그리고 마침 P(x|θ)를 보니 딱 Likelihood다. 우린 이제 가우시안 분포를 지니는 log likelihood를 구할 수 있게 됐다! 

 

0-3. MLE

Gaussian에서 MLE를 구할 때 최적화된 prior, 평균, 분산은 다음과 같다.

  • prior : Nc / N 

0-4. Logistic Regression

a = Wx + b 를 만족하는 linear 함수가 있다고 가정한다. 이 함수는 predictor로 작동하며, 요 함수를 최적화하는 것이 Logistic Regression의 미션이다.  

Multinominal Logistic Regression

posterior 수식은 y가 binary일 때는 sigmoid, 그렇지 않을 때는 softmax 형태가 된다. 

binary - sigmoid multinomial -softmax

Multinominal Logistic Regression

 

 

Linear Discriminant Analysis (LDA)

1. Discriminant Model의 이해

분류기를 크게 두가지로 분류하라고 한다면 생성(generative) 모델과 판별(Discriminative) 모델로 나눌 수 있을 것이다. 생성 모델은 말 그대로 라벨 y가 있을 때 x에 대해 생성하는 방법론이고, 판별 모델은 x에 대해서 y를 예측하는 방법론이다. 

이를 정리하자면 생성 모델은 likelihood 기반, 판별 모델은 class posterior 기반이라 볼 수 도 있다. 

 생성모델 (Generative Classifier)  판별 모델 (Discriminative Classifier)
likelihood 기반 class posterior 기반
p(x | y=c;θ) p(y | x;θ)

 

판별 모델은 class posterior를 구하는 분류 모델이다.(밑에서부터는 class posterior를 posterior로 나타내겠다.) 이때 클래스 y가 c로 지정되어 있다고 생각해 보자. 이를(posterior) 수식으로 나타내면 아래와 같이  (class conditional density) * (prior over class)  의 형태로 나타낼 수 있다. (posterior ~= prior * likelihood였음을 기억하자. optional 참고.)

Class posterior
classification models

 

LDA는 이름에서도 알 수 있다시피 판별 모델에 속한다. 위 수식에서 posterior를 구할 때 class conditional density(p(x | y=c;θ))가 사용되었다. LDA는 이 class conditional density가 가우시안, 혹은 베이시안을 따르고 posterior를 선형함수(ex. wx +b) 로 나타낼 수 있는 방법론이다. 

 

2. Decision Boundary로 보는 LDA

class conditional density가 가우시안일 때를 가정해서 위의 판별 모델을 나타내보자. 우선 class conditional density를 Gaussian으로 나타내면 다음과 같다.

  • 이는 y=c일 때(class conditional), 즉 u_c, ∑_c를 분포의 특정 가우시안을 따르는 x를 구하는 식이다. y에 라벨이 c1, c2, c3가 있다면 y=c1, y=c2, y=c3일 때의 가우시안이 각각 있을 것이다. 

Multivariate gaussian
multivariate Gaussian class conditional density

posterior는 베이시안에 따라 prior * likelihood로 나타낼 수 있으므로, 우리가 구하고 싶은 class posterior는 다음과 같다. 이때의 π는 prior P(y=c)를 의미한다. 

posterior

 

 

2-1. Quadratic decision boundaries ( == Quadratic Discriminant Analysis. QDA)

위 수식에서 우리는 Gaussian 분포를 따르는 x가 있을 때 y가 class c일 확률인 posterior p(y=c|x,θ)를 구했다. 여기에 log를 붙여서 log posterior를 붙이면 아래와 같이 나타낼 수 있다. (optional의 Gaussian 참고)

 

Gaussian log posterior
log posterior

이 수식을 우리는 Discriminant Function, 즉 판별 함수로 지칭한다. 왜그럴까? 이 수식을 그림으로 나타내면 알 수 있다. 특정 클래스 c에 대해서 그려진 log posterior는 해당 클래스 c를 판별하기 위한 영역을 친 것과 같은 결과를 보인다. 

QDA
Qda

2-2. Linear Decision Boundaries (== Linear Discriminant Analysis. LDA)

위 QDA는 각 클래스 c에 대해서 다들 다른 분산과 평균을 가진 가우시안이 있다는 가정 하에 진행되었다. 하지만 만약에 모든 클래스 c들이 다 같은 분산을 가지고 있다면? 오늘 주제인 LDA가 된다. 

 

QDA에서 사용한 log posterior 수식을 다시 가져와보자. 

log posterior

LDA의 가정이라면(모든 클래스 c들이 다 같은 공분산을 가지고 있음) 이 수식에서 모든 y=c에 대해 ∑_c 값은 동일하게 된다. x에 대한 식으로 볼 때 ∑를 상수로 봐도 된다는 의미다.  

오호라, c를 기준으로 식을 정리해 보니 식이 간단하게 정리가 됐다. 이걸 보니 마치 x*w + b 꼴이지 않는가? 수식을 그림으로 나타내면 아래와 같다.

  • 마지막 상수인 k는 c를 기준으로 했을 때 상수이기 때문에 날아간다. 

LDA

2-3. GDA(LDA) Model Fitting

이제 LDA를 최적화하는 방법에 대해 얘기해보자. 가우시안 데이터를 fitting 하기 때문에 우리가 최적화하고 싶은 변수는  u, ∑로 볼 수 있다. Maximum Likelihood Estimate(MLE)를 통해 최적화한다면 각 변수의 최적값들은 각각 아래를 따를 것이다. 이때 N은 학습 데이터의 수, Nc는 y==c를 만족하는 데이터의 수이다. 

수식을 봤을 때 u와 ∑ 모두 데이터 수 N에 대해 값이 달라질 수 있음을 확인할 수 있다.  MLE가 오버피팅에 취약하단 사실을 이전 글에서 다뤘을 거 같은데, 비슷한 맥락이다. 데이터 수가 적으면 정확한 u, ∑를 얻을 수 없을 것이다. 

 

 

2-4. Model Fitting 2 - Metric Learning

log likelihood를 통해 모델을 최적화하는 MLE가 있는가 하면, LDA에서는 수식의 생김새를 봤을 때 하나 더 선택지를 가질 수 있다. 바로 posterior가 가장 큰 값을 갖는 y=c를 구하는 것이다. (log p(y=c1 |x), log p(y=c2|x) ... 중 어떤 값이 제일 클까?)

세 번째로 log posterior 수식을 재탕해 보자. 

이때 우리가 구하고픈 y(x)는 c에 대한 식을 남겼을 때 정리가 다음과 같이 정리할 수 있다.

Metric Learning에서 기틀이 되는mhalanobis distance 수식만 남게 된다. c의 평균과 데이터 x 간의 거리를 구하는 함수가 됐다. x 와 c의 중심이 가까우면 y는 c일 확률이 높을 것이고, 그렇지 않으면 x와 c의 중심의 거리는 멀기를 기대한다. 

 

3. LDA vs Logistic Regression

LDA를 Logistic Regression 수식으로도 나타낼 수 있다. 들어가기 전에 LDA와 Logistic Regression의 차이점을 먼저 찝어보자면 다음과 같다. posterior의 형태가 P(y= c | x, θ)임을 기억하자.

  • LDA : LDA의 목적은 θ에 해당하는(==prior) Gaussian 파라미터 u, ∑를 fitting하는 것이다. posterior를 fit 하는 건 그다음 과제.
  • Logistic : postrior를 fit 함으로써 θ를 최적화하고자 한다. 

뭔가 전후관계가 묘하게 다른 것을 알 수 있다. LDA는 θ를 찾은 후 posterior를 구하려 하고 Logistic Regression은 posterior 최적화를 통해 최적의 θ를 찾고자 한다. 이 관계를 염두에 두고 이제 수식을 전개해보자. 

 

 

2-2에서 LDA의 log posterior 결과가 아래와 같았음을 기억하자. 

LDA log posterior

이를 linear predictor(y=wx + b)로 생각하고 logistic regression의 linear 자리에 넣어보자.  아래 식에서 w_c = [γ, β]을 의미한다. 

이번 예시는 binary로 가정한다. y=0 또는 y = 1만 존재하므로 아래와 같이 식이 정리된다. 아래 식의 σ는 sigmoid를 의미한다. 

 

γ, β에 다시 식을 대입해서 정리하면 놀랍게도 logistic function과 같은 형태로 정리가 된다. 

LDA
LDA

 


마치며

 

오늘은 Linear Discriminant Analysis(LDA)에 대해 알아보았다.

  1. LDA는 이 class conditional density가 가우시안, 혹은 베이시안을 따르고 posterior를 선형함수(ex. wx +b) 로 나타낼 수 있는 방법론이다. 
  2. Discriminant Classifier는 posterior를 최적화한다. ~ P(y= c | x, θ)
  3. Gaussian Discriminant Analysis(GDA)는 prior가 Gaussian 분포를 따른다. ~ P(x) = N(x|u_c, ∑_c)
  4. GDA에서 모든 c들에 대해 공분산 값이 같으면 Linear Discriminant Analysis(LDA)이다. ~  ∑_c == constant
  5. LDA를 최적화하는 방법은 Gaussian 기반 모델을 최적화하는 방법을 쓰면 된다. ~ MLE, MAP 등등
  6. LDA 수식을 정리하면 Metric Learning 나 Logistic Regression 이 될 수 있다.

 

 

LDA가 오버피팅의 우려가 있기 때문에 이를 극복하기 위한 트릭들이 여럿 있다. (MAP를 쓰거나, 분산값에 제한을 두거나 등등) 그 중 하나가 Fisher's LDA이다. 원래는 이 글에서 다루려 했지만 너무 늘어지는 것 같아 잘랐다. 

 

 

728x90

+ Recent posts