sol’s blog

오버피팅 방지를 위한 Regularization 기법 실험 계획

sol-commits
sol-commitsMay 15, 2025
오버피팅 방지를 위한 Regularization 기법 실험 계획
  1. Dropout

정의: 학습 중 일부 뉴런을 무작위로 꺼내 네트워크가 특정 뉴런에 과도하게 의존하지 않도록 함

적용위치:

  • LSTM 층의 dropout 파라미터(입력 - 은닉 사이)
  • recurrent_dropout (은닉 - 은닉 사이)
  • nn.Dropout()을 LSTM 출력 이후에 수동으로 적용

  1. Weight Decay(L2 정규화)

정의: 모델의 가중치 값이 너무 커지는 것을 막아 일반화 성능 향상

적용방식:

optimizer = torch.optim.Adam(model.parameters(), weight_decay=1e-5)
python
kernel_regularizer=regularizers.l2(1e-5)
python
  1. Early Stopping

정의: 검증 성능이 일정 에폭 동안 개선되지 않으면 학습을 조기 종료

적용 이유:

  • 에폭 수가 많을수록 오버피팅 발생 가능성 증가
  • 자동으로 적절한 학습 종료 시점을 탐색
  1. Layer Normalization

정의: 시점별로 hidden state를 정규화해 안정적 학습 유도

장점:

  • LSTM 등 순환 모델에 적합(BatchNorm 보다 효과적)
self.norm = nn.LayerNorm(normalized_shape)
out = self.norm(lstm_output)
python
  1. Data Augmentation
    1. jittering

      정의: 입력 시계열에 약간의 랜덤한 noise 추가

b. time warping

정의: 시계열에 일부 구간을 늘이거나 줄이는 변형

목적: 동일한 행동이라도 속도 변화에 대해 더 일반화된 표현을 학습하도록 유도

from tsaug import TimeWarp

# 보수적인 설정
aug = TimeWarp(n_speed_change=1, max_speed_ratio=1.3)
X_aug = aug.augment(X)

# 한 번만 속도 변화
python

→ 우리 데이터에서 하품 데이터가 증강이 필요한데, 하품 시퀀스에 하품 한주기가 다 담겨있지 않으므로 timewarp는 적합하지 않다고 판단됨