본문 바로가기
ML

[ML]Over Fitting 해결방법(Validation, Regularization)

by 어떻게든 되겠지~ 2024. 6. 4.

일반적으로 모델 복잡도를 증가시키면 Bias가 줄어든다.

하지만 Bias and Variance Trade-Off로 인해 Variance가 증가하고 결론적으로 전체 Error는 증가한다.

또한 모델 복잡도를 증가시키면 Over fitting 이슈가 발생할 수 있다.

 

Bias and Variance Trade-Off(분산 편향 트레이드 오프)

※ Notation$f(x)$ : Input x에 대한 실제 정답, 하나 존재$\hat{f(x)}$ : Input x에 대한 Model의 예측값, 다양한 값 존재$E[\hat{f(x)}]$ : $ \hat{f}(x) $에 대한 기댓값 모델 복잡도(Model Complexity)모델의 파라미터 수

self-objectification.tistory.com

 
일반적으로 모델의 복잡도를 키우면서 Over Fitting을 방지하는 해결방안이 존재한다.

  1. 검증 데이터셋(Validation) 활용
  2. K-fold cross Validation
  3. 정규화(Regularization) 손실 함수

Validation Data

  • 모델 학습 정도를 검증하기 위한 데이터셋
  • 모델 학습에 직접적으로 참여하지 못한다
  • 학습 중간에 계속해서 평가를 하고, 가장 성능이 좋은 파라미터를 저장해둔다

Leave - One - Out Cross Validation(LOOCV)

  • 랜덤으로 생성된 검증 데이터셋 하나는 편향된 결과를 줄 수 있다
  • 검증 데이터 셋 샘플들은 모델이 학습할 수 없다(Train data 수 감소)
  • 간단하게 모든 데이터 샘플 한개마다 검증을 진행(but, 계산 비용이 크다)

Leave - one - out cross validaion

K - fold Cross Validation

  • LOOCV 경우 계산 비용이 매우 크다는 단점이 있다
  • 이러한 문제를 해결하기 위해, K개의 파트로 나누어 검증을 진행
  • K 값이 커지면??
    • 학습 데이터 수 증가(모델의 복잡도가 증가)
    • Bias 감소, Variance 증가
    • 계산비용 증가

4 - fold cross validation

Regularization(정규화)

정규화 손실 함수

  • 모델 복잡도가 커진다 == 모델의 파라미터 수가 많아진다
  • 모델 복잡도가 커진다 ==> Over fitting이 발생할 가능성이 커진다
  • 그렇다면 복잡도가 큰 모델을 정의하고 중요한 파라미터만 학습하자 ! (필요없는 파라미터를 0으로 설정

$\beta(파라미터)$값에 제약을 줌으로써 과적합을 완화하여 모델의 일반화 성능을 높여준다

$L(\beta) = \underset{\beta}{\min} \sum \limits_{i=1} (y_i - \hat{y_i})^2 + \lambda \sum \limits_{j=1}^{p} \beta_{j}^2 $

 

$\sum \limits_{i=1} (y_i - \hat{y_i})^2 $ : Training Accuracy

$\lambda \sum \limits_{j=1}^{p} \beta_{j}^2$ : Generalization Accuracy

 

Lasso Regression(L1 Regression)

$ L = \sum \limits_{i=1}^{n} \big( y_i - (\beta_0 + \sum \limits_{j=1}^{D}\beta_j x_{ij}) \big)^2 + \lambda \sum \limits_{j=1}^{D}|\beta_j|$ 

  • Loss를 줄이지 못하면 페널티 항의 손실값이 더 크게 작용한다
  • $\lambda$ 는 정규화의 영향을 조절하는 Hyper parameter
    • \lambda 가 증가 : 정규화 정도가 크다 ==> $\beta$ 값 작아진다
    • \lambda 가 감소 : 정규화 정도가 작다 ==> 일반적인 회귀 모델
  • 정규화 식이 절댓값의 합으로 표현

파라미터가 2개인 L1 Regression

 

 

Ridge Regression(L2 Regression)

$ L = \sum \limits_{i=1}^{n} \big( y_i - (\beta_0 + \sum \limits_{j=1}^{D}\beta_j x_{ij}) \big)^2 + \lambda \sum \limits_{j=1}^{D}\beta_j^2$ 

  • Loss를 줄이지 못하면 페널티 항의 손실값이 더 크게 작용한다
  • $\lambda$ 는 정규화의 영향을 조절하는 Hyper parameter
  • 정규화 식이 제곱의 합으로 표현

파라미터가 2개인 L2 Regression

 

$\lambda$가 커지면 파라미터의 값이 감소한다(0이 되는 것도 생김) 따라서 모델 복잡도가 작아진다

==> Bias 에러 증가, Variance 에러 감소

파라미터의 Sparsity(희소성) 정도 : L2 정규화 < L1 정규화

0 의 값을 가진 파라미터가 더 많아지게 하는 법 : $\lambda$ 크게 만들기

    

 

 

반응형