BraveTiger

CH6. 딥러닝_Multi Layer Perceptron의 Overfitting 본문

취업 준비/AIVLE SCHOOL

CH6. 딥러닝_Multi Layer Perceptron의 Overfitting

BraveTiger 2023. 4. 25. 09:29

Overfitting 해결법

: Deep Neural Network(은닉층의 개수가 많은 경우)에서 과대적합이 발생할 확률이 높다.

  1. 데이터의 양을 늘려준다.
  2. Regularization 사용
    • L1/L2 Regularization: Weight가 작아지도록 학습하여 Outlier의 영향을 덜 받도록 하는 방법
      • L1 Regularization(Lasso)
        • Cost function 계산 시 L1 norm을 사용하여 weight의 절댓값을 더해주는 방법
        • Feature selection 가능,
        • sparse model에 적합
      • L2 Regularization(Ridge)
        • Cost function 계산 시 L2 norm을 사용하여 weight의 제곱값을 더해주는 방법
        • weight가 작아지지만 제거되지 않는다.
  3. DropOut
    • 특정 비율로 임의의 노드들을 동작하지 않도록 학습하는 방법
  4. Dropconnect
    • Dropout의 일반화된 형태
    • 노드 연결 중 일부가 동작하지 않도록 하는 방법(노드 사이에 전달되는 가중치를 무작위로 차단하는 방법)
    • 모든 노드가 학습에 사용되지만, 다음 층으로 가는 일부 가중치를 0으로 차단한다.
  5. Batch Normalization
    • 학습 과정에서 Batch마다 평균과 분산을 활용하여 데이터의 분포를 정규화하는 과정

※ Normalization

  • 빠른 학습과 Local Minimum에 빠지는 가능성을 줄이기 위해 사용
    • MinMaxscaler
      • x - x.min / x.max - x.min
    • Standardscaler
      • x - μ / σ
  • Unnormalization
    • 타원 모양
    • 수평으로 이동할 때와 수직으로 이동할 때 변화량의 불균형 발생
    • Gradient Descent 알고리즘의 적용이 어렵고 learning rate를 작게 해야 함.
  • Normalization
    • 구 모양
    • Gradient Descent 적용이 쉽고 빠르게 최적화 지점을 찾을 수 있음
    • learning rate에 민감하지 않다.

출처:https://towardsdatascience.com/how-to-calculate-the-mean-and-standard-deviation-normalizing-datasets-in-pytorch-704bd7d05f4c

Mini Batch

: 모든 학습 데이터에 대해 loss를 구하는 것은 시간이 오래 걸리므로, 데이터의 일부를 사용해 학습한다.

  • Epochs
    • 모든 데이터 셋이 Neural Network 전체에 대한 학습을 1회 수행한 것
  • Batch Size
    • Single batch 내 학습용 데이터 사이즈
  • Iterations
    • 1 Epoch을 달성하기 위한 Batch 개수
    • Iterations = 전체 데이터 수 / Batch_size

1000개의 데이터, batch_size = 100이면, 1 Epoch을 달성하기 위해 10 Iterations를 한다.

출처: https://onesixx.com/epoch-batch-iteration/

Comments