모델의 과대적합을 막기 위한 방법들

  • early stopping
  • dropout
  • weight decaying
    • L1 : 가중치를 0으로 만드는 경향

    • L2 : 매끄럽게.. 소극적 반영

    • L1L2

      layers.Dense(16, kernel_regularizer = tf.keras.regularizers.L1(0.01))
  • batch normalization : 틀에 맞춘다.. → regularization(억제) 효과
    • 서로 다른 크기를 같은 scale로 맞춰준다. 튀는 데이터 학습 억제

    • batch마다 평균과 표준편차가 달라지므로 출력값에 일정한 오차가 생김 → 학습을 방해

      • Dropout과 비슷한 효과
    • 학습 속도 향상 (안정적)

    • 경사가 사라지거나 폭발하는 문제를 완화

      tf.keras.layers.BatchNormalization()
  • Layer Normalization
    • BN은 동일한 변수를 배치 내에서 normalization → 배치 크기가 1이면 분산을 구할 수 없음
    • LN은 한 레이어의 서로 다른 변수들끼리 normalization (이미지 1장 안에서)
    • text의 경우 같은 글 내에서.. 긴글은 짧게, 짧은 글은 길게?
  • Label smoothing
    • 레이블은 부정확하게 붙어있을 수 있거나 예외적인 사례일 수 있음
    • 이러한 데이터에 과적합될 경우 모형의 예측력이 떨어짐
    • 원핫인코딩에서 1을 조금 줄이고 그만큼 0을 키워줌 (1, 0) → (0.8, 0.2)
profile
ML/DL swimmer

0개의 댓글