최근에 파이토치로 간단한 CNN 모델을 만들어서 이미지 분류를 해보고 있는데, 훈련 정확도는 95% 정도인데 검증 정확도가 70% 수준으로 떨어져요. 과적합이 심한 건 알겠는데 어떻게 해야 할지 모르겠네요.
현재 모델은 Conv2d 레이어 3개, FC 레이어 2개 정도로 만들었고, 데이터셋은 약 1000장 정도밖에 없어요. 배치 정규화(Batch Normalization)도 넣어봤는데 별로 도움이 안 됐어요. Dropout도 50% 정도로 넣어봤는데 여전히 과적합이 있더라고요.
혹시 이 정도 데이터셋으로는 CNN이 무리가 있는 걸까요? 아니면 제가 놓친 뭔가가 있을까요? 사실 정규화(regularization)에 대해서 완벽히 이해 못 하고 있어서 그것도 좀 알고 싶어요. 어떤 방식들이 있는지, 그리고 제 상황에서 뭐가 가장 효과적일지 알려주실 수 있을까요?
데이터가 1000장이면 좀 부족하긴 하네요. 저도 비슷한 상황 겪었는데 데이터 증강(augmentation)을 적극적으로 해봤어요. 회전, 색상 변환 같은 거 말이에요. 그리고 L1/L2 정규화도 같이 써보세요. 옵티마이저 부분에 weight_decay 파라미터 추가하면 간단하게 적용돼요.