본문 바로가기
math4ai/Machine Learning and Deep Learning

M4AI) LDA & Ensemble

by 잼민ai 2024. 7. 29.

PCA는 선대 공부하면서 짚고 넘어갔으니까 https://m-cademic-archive.tistory.com/22 

이거 참고👆

LDA

Linear Discriminant Analysis의 준말임. PCA는 차원 감소로 특정 그룹을 일반화(generalize)하기 위한 방법론이었다면, LDA는 그룹들을 구분하기 위함입니다. 확실한 classification이라고 말할 수 있을 듯..

LDA의 아이디어는 "어떤 hyperplane에 projection 해야 그룹이 잘 분리될까?"입니다. 여기서 '잘'의 의미는, projection 했을 때..

  • 두 그룹 각각의 평균 간 거리가 최대
  • 두 그룹 각각의 분산은 최소

그니까 그룹마다 옹기종기 모여있되 멀리 떨어뜨리도록 하는 Hyperplane을 찾자는 아이디어예요. 

 

LDA의 objective function은 아래와 같은데요,

\begin{equation}\label{lda}\tag{*}
J(\mathbf{w}) = \dfrac{\mathbf{w}^\top \boldsymbol{S_B}\mathbf{w}}{\mathbf{w}^\top \boldsymbol{S_W}\mathbf{w}}
\end{equation}

 

$\mathbf{w}$는 우리가 찾으려는 hyperplane을 결정하는 파라미터고, $\boldsymbol{S_B}=(\boldsymbol{\mu}_1-\boldsymbol{\mu}_2)(\boldsymbol{\mu}_1-\boldsymbol{\mu}_2)^\top$로 정의되는 between-class scatter라고 하구요, (식에서 볼 수 있듯이 두 평균간의 거리 제곱임ㅇㅇ) $\boldsymbol{S_W}$는 projection 하기 전 class별 공분산행렬^2의 합이라고 생각하면 될 거 가틈. 암튼 LDA는 $\arg\max_\mathbf{w}J(\mathbf{w})$ 찾으면 됩니다.

 

근데 특이하게도 이 최적화 문제는 generalized eigenvalue 문제로 바뀌고, 잘 풀다보면 projection 하기 전 각 그룹의 평균이 되는 두 지점과 평행한 벡터가 $\mathbf{w}$가 되더라는 거예요~

 

끝.

 

Ensemble

이것도 포스팅 한 적 있었던 거 같음: https://m-cademic-archive.tistory.com/14

정리!

  • Bagging은 complex한 모델에 대해 variance를 줄이는 방식을 선택하는 것! 여러 모델의 평균치를 쓰는 아이디어임
  • Boosting은 비교적 simple한 모델에 대해 bias를 줄이는 전략을 취함! 한 epoch마다 모델의 mistake를 반영하여 데이터 분포를 업데이트해주는 방식, 최종적으로 그렇게 유도된 epoch 수 만큼의 모델을 또 가중합하여 최종 모델 산출. 근데 이러면 noise에 좀 민감해질 수도 있다는 단점이 있음.

끄끄끝

 

728x90