AI, Deep Learning Basics/Basic

(작성중) [기초] 3. Overfitting/Underfitting 및 Regularization일반화/일반화 기법

이 글은 필자가 "밑바닥부터 시작하는 딥러닝 1"을 보고 헷갈리는 부분이나 다시 보면 좋을만한 부분들을 위주로 정리한 글입니다. 추가 참고: 링크1

🏈 Overfitting vs. Underfitting

  • Overfitting과적합
  • Underfitting

🏈 모델의 Bias와 Variance

https://gaussian37.github.io/machine-learning-concept-bias_and_variance/

  • Bias편향: 모델의 예측값과 실제값이 얼마나 떨어져있는가
    • Bias가 크면 underfitting
    • Inductive bias
    • General bias
  • Variance분산: 예측 모델의 복잡도, variance가 크면 overfitting

🏈 Regularization

  • 규제(Regularization)은 "자연계에 존재하는 데이터들의 입력과 출력은 서로 매끄럽다" 라는 가정 하에 사용되는 기법
  • 모델 복잡도에 대한 패널티로 Overfitting 예방하고 일반화 성능을 높인다. = 즉, 매끄럽지 않은 데이터 설명 함수를 매끄럽게 만들어 모델의 오버피팅을 막기
  • 기법 종류
    1. Batch Normalization
    2. Early stopping: 과적합이 되기 시작하는 전 시작점에 학습을 멈추는 방식
    3. L1/L2 Regularization
    4. Dropout
    5. Ensemble

🏈 Batch Normalization

  • 각 층에서의 활성화 값이 적당히 분포되도록 배치 내의 데이터를 조정하는 방식
  • 장점: 학습 속도 개선, 초깃값 설정에 도움, 오버피팅 억제 $$\big\{x_1, x_2, ..., x_m\big\} \sim N(\mu_B, \sigma^2_B) \longrightarrow \big\{\hat{x_1}, \hat{x_2}, ..., \hat{x_m}\big\} \sim N(0,1) $$

🏈 L1/L2 Regularization

  • 학습과정에 큰 가중치에 대해서는 그에 상응하는 큰 페널티(L1, L2 regularization)을 부과하여 과적합을 막는 방법. -> 가중치 감소의 효과를 보여준다. L1/L2 Norm, Loss
  • 종류
    • L1 regularization $$ Cost = \frac{1}{n} \sum_{i=1}^n \big\{ L(y_i, \hat{y_i}) + \frac{\lambda}{2} \mid w \mid \big\}\\ L(W) \longleftarrow L(W) + \lambda |W|
      , \frac{\partial L}{\partial W} \longleftarrow \frac{\partial L}{\partial W} \pm \lambda$$
      • 각 w_i들에 대해 비례하게 값이 빠지게 되어, 다중 선형 회귀 모델 식의 w_i들은 완전히 0이 되지 않습니다. 즉 L2 규제를 쓰면 모델의 항을 완전히 없애지는 않는다.
    • L2 regularization $$ Cost = \frac{1}{n} \sum_{i=1}^n \big\{ L(y_i, \hat{y_i}) + \frac{\lambda}{2} {\mid w \mid}^2 \big\}\\ L(W) \longleftarrow L(W) + \frac{1}{2}\lambda W^2 
      , \frac{\partial L}{\partial W} \longleftarrow \frac{\partial L}{\partial W}+ \lambda W$$
      • 결국에 각 w_i들에 대해 비례하게 값이 빠지게 되어 
      • 크기가 큰 가중치에 대한 규제는 강하게, 작은 가중치에 대한 규제는 약하게 줘서 모든 가중치들이 모델에게 고르게 반영되도록 처리