AI: 과적합과 언더피팅 진단 및 해결법

ㅁ 과적합과 언더피팅 진단 및 해결법

1. Dropout

ㅇ 정의:
– 신경망 학습 시 일부 뉴런을 확률적으로 비활성화하여 모델의 복잡도를 줄이고 과적합을 방지하는 정규화 기법.

ㅇ 특징:
– 학습 시 무작위로 뉴런을 제거하므로 네트워크가 특정 뉴런에 과도하게 의존하지 않음.
– 테스트 시에는 모든 뉴런을 사용하되 가중치를 학습 시 비활성화 확률에 맞춰 스케일링.

ㅇ 적합한 경우:
– 층이 깊고 파라미터 수가 많은 모델.
– 데이터셋 크기가 제한적인 경우.

ㅇ 시험 함정:
– Dropout은 학습 시에만 적용되며, 추론 시에는 적용하지 않는다는 점을 혼동하기 쉬움.

ㅇ 시험 대비 “패턴 보기” 예시:
– O: “Dropout은 학습 중 일부 뉴런을 무작위로 비활성화하여 과적합을 줄인다.”
– X: “Dropout은 추론 시에도 일부 뉴런을 제거하여 일반화를 높인다.”

================================

2. L2 Regularization

ㅇ 정의:
– 가중치 값의 제곱합에 비례하는 패널티를 손실 함수에 추가하여 가중치가 지나치게 커지는 것을 방지하는 정규화 기법.

ㅇ 특징:
– 가중치 감소(weight decay) 효과.
– 모든 가중치를 조금씩 줄여 모델의 복잡도 완화.

ㅇ 적합한 경우:
– 과적합이 발생하는 대부분의 회귀/분류 모델.
– Feature 수가 많고 다중공선성이 우려되는 경우.

ㅇ 시험 함정:
– L1과 혼동: L1은 가중치의 절댓값 합을 패널티로 사용하여 일부 가중치를 0으로 만들어 특성 선택 효과를 냄.

ㅇ 시험 대비 “패턴 보기” 예시:
– O: “L2 정규화는 가중치 제곱합 패널티를 추가하여 과적합을 방지한다.”
– X: “L2 정규화는 일부 가중치를 완전히 0으로 만들어 변수 선택을 수행한다.”

================================

3. Batch Normalization

ㅇ 정의:
– 미니배치 단위로 각 층의 입력을 정규화하여 학습을 안정화하고 수렴 속도를 높이는 기법.

ㅇ 특징:
– 내부 공변량 변화(internal covariate shift) 완화.
– Dropout 없이도 과적합 억제 및 학습 속도 향상 가능.

ㅇ 적합한 경우:
– 심층 신경망 학습 시.
– 학습 속도가 느리거나 초기화에 민감한 경우.

ㅇ 시험 함정:
– BN은 항상 과적합을 줄이는 것은 아니며, 주로 학습 안정화와 속도 향상이 목적임.

ㅇ 시험 대비 “패턴 보기” 예시:
– O: “배치 정규화는 미니배치 단위로 평균과 분산을 맞춰 학습을 안정화한다.”
– X: “배치 정규화는 오직 과적합 방지만을 위해 사용된다.”

================================

4. Early Stopping

ㅇ 정의:
– 검증 데이터의 성능이 더 이상 향상되지 않을 때 학습을 조기에 중단하여 과적합을 방지하는 기법.

ㅇ 특징:
– 모델이 훈련 데이터에 과도하게 적합되기 전에 학습 종료.
– patience(성능 향상 대기 횟수) 파라미터로 종료 시점 조절.

ㅇ 적합한 경우:
– 검증 데이터셋이 충분히 확보된 경우.
– 과적합 위험이 높은 상황.

ㅇ 시험 함정:
– Early Stopping은 하이퍼파라미터 튜닝 과정에서 검증 데이터에 대한 정보가 학습에 간접적으로 유입될 수 있음.

ㅇ 시험 대비 “패턴 보기” 예시:
– O: “Early Stopping은 검증 성능이 개선되지 않으면 학습을 중단한다.”
– X: “Early Stopping은 훈련 데이터의 손실이 줄어들면 학습을 중단한다.”

ㅁ 추가 학습 내용

추가 학습 정리

1. Dropout 변형 기법과 적용 시 주의사항
– SpatialDropout: 채널 단위로 feature map 전체를 드롭하여 CNN에서 공간적 상관관계 보존. 주로 Conv 레이어 출력에 사용.
– DropConnect: 가중치 자체를 무작위로 0으로 설정하는 방식. 파라미터 레벨에서 정규화 효과.
– CNN 적용 시: SpatialDropout이 일반 Dropout보다 효과적일 수 있음. Dropout 비율 과도하게 설정 시 정보 손실 주의.
– RNN 적용 시: 시퀀스 길이 동안 동일한 dropout mask를 적용하는 방식이 안정적(LSTM/GRU에서 time-step별 mask 변화 시 학습 불안정 가능).

2. L2 Regularization과 Weight Decay 차이 및 구현 차이
– L2 Regularization: 손실 함수에 가중치 제곱합을 직접 추가하여 경사 계산 시 반영.
– Weight Decay: 매 스텝마다 가중치를 일정 비율로 감소시키는 방식.
– PyTorch: optimizer의 weight_decay 파라미터는 실제 Weight Decay 방식 적용. L2 Regularization을 구현하려면 손실에 직접 항 추가.
– TensorFlow/Keras: 대부분 L2 Regularization을 레이어의 kernel_regularizer로 구현. Optimizer의 weight_decay 옵션은 프레임워크 버전에 따라 동작 방식이 다를 수 있음.

3. Batch Normalization 동작 방식
– 학습 시: 배치별 평균과 분산으로 정규화, 동시에 이동평균(running mean/variance) 업데이트.
– 추론 시: 배치 통계 대신 학습 시 저장된 이동평균과 분산 사용.
– Layer Normalization과 비교: LayerNorm은 배치 차원이 아닌 feature 차원에 대해 정규화, 배치 크기 변화에 영향 없음. RNN 등 시퀀스 모델에서 안정적.

4. Early Stopping 시 최종 가중치 선택 방법
– 최고 성능 시점: 검증 성능이 가장 좋았던 시점의 가중치를 저장 후 복원. 일반적으로 권장.
– 종료 시점: patience 기준으로 학습이 멈춘 시점의 가중치 사용. 성능이 다소 떨어질 수 있음.

5. 과적합과 언더피팅 진단 지표
– 학습/검증 손실 곡선 패턴:
– 과적합: 학습 손실 지속 감소, 검증 손실 증가.
– 언더피팅: 학습·검증 손실 모두 높고 개선되지 않음.
– K-fold 교차검증: 데이터 편향 최소화, 모델 일반화 성능 평가에 유용.

6. 정규화 기법 조합 사용 시 주의점
– Dropout, BatchNorm, L2 등 여러 기법을 동시에 사용할 경우 상호작용으로 학습 속도나 성능에 영향 가능.
– 예: Dropout과 BatchNorm을 함께 사용할 때는 Dropout을 BatchNorm 이후에 적용하는 것이 일반적.
– 과도한 정규화는 학습을 방해할 수 있으므로 비율과 조합을 실험적으로 조정 필요.

Previous Article

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*