Fitting(적합)은 머신러닝/딥러닝 모델이 주어진 데이터에 얼마나 잘 들어맞는지를 나타내는 개념이다.
모델의 성능은 훈련 데이터뿐만 아니라 새로운 데이터(테스트 데이터)에 대한 일반화 능력을 기준으로 평가되어야 한다.
(1) 최적적합 (Optimal Fitting)
모델이 훈련 데이터에 잘 학습되었을 뿐만 아니라, 새로운 테스트 데이터에도 높은 성능을 유지하는 상태이다.
이는 모델이 과적합도 과소적합도 아닌 일반화에 최적화된 상태이다.
오차 관점에서 보면, 훈련 오차(training error)와 검증 오차(validation error)가 모두 낮고,
두 오차의 차이(gap)가 작아 모델이 데이터에 잘 일반화되고 있음을 의미한다.
(2) 과소적합 (Underfitting)
모델이 훈련 데이터에서도 성능이 낮고, 테스트 데이터에서도 마찬가지로 성능이 좋지 않은 상태이다.
이는 모델이 지나치게 단순하여 데이터의 패턴을 충분히 학습하지 못한 경우에 해당한다.
오차 관점에서 보면, 훈련 오차와 검증(테스트) 오차가 모두 높게 유지되는 상태이다.
이는 모델의 표현력(complexity)이 부족하여 데이터의 패턴 자체를 충분히 학습하지 못했기 때문이다.
해결 방법:
모델의 복잡도 증가
더 많은 특성(feature) 추가
더 많은 학습 데이터 제공
(3) 과대적합/과적합 (Overfitting)
모델이 훈련 데이터에 지나치게 잘 맞아서, 테스트 데이터에서는 성능이 급격히 떨어지는 상태이다.
모델이 노이즈나 예외적인 패턴까지 학습해버려 일반화 능력이 낮아지는 경우이다.
오차 관점에서 보면, 훈련 오차는 낮지만 검증(테스트) 오차는 높게 유지되는 상태이다.
이때 성능을 향상시키기 위해 모델의 복잡도를 더 높이는 것은 오히려 역효과이며,
복잡도를 낮추거나 정규화 등을 적용하는 것이 올바른 해결 방향이다.
또한 과적합은 단순히 데이터 양이 부족해서만 발생하는 것이 아니라, 모델이 지나치게 복잡하거나 학습을 과도하게 진행한 경우에도 발생할 수 있다.
해결 방법:
드롭아웃(Dropout) 학습 과정에서 일정 비율의 노드를 무작위로 꺼서(비활성화) 특정 노드에 과도하게 의존하는 것을 막는 기법
정규화(Regularization, L1/L2) 오차 함수에 가중치 크기에 대한 페널티 항(모델 복잡도 항)을 추가하여, 가중치의 절댓값이 과도하게 커지지 않도록 제한하는 기법
배치 정규화(Batch Normalization) 각 배치(mini-batch) 내 노드 값들의 분포를 평균 0, 분산(표준편차) 1에 가깝게 맞춰 학습을 안정시키는 기법. 표준편차를 증대시키는 것이 아니라 일정한 값으로 정규화하는 것이므로 주의가 필요하다.
데이터 증강(Data Augmentation) 기존 학습 데이터에 회전·이동·노이즈 등의 약간의 변형을 가한 새로운 데이터를 추가하여 학습 데이터의 다양성을 늘리는 기법
모델의 복잡도 감소
더 많은 학습 데이터 확보
최적적합, 과대적합, 과소적합 예시
최적적합, 과대적합, 과소적합 예시
출처: 서지영, 난생처음 인공지능 입문(2판), 한빛아카데미, 2024
과적합은 데이터가 부족해서 발생하므로, 데이터의 양을 늘려 학습하면 해결할 수 있다.
확인 문제
다음 그래프에 대한 설명으로 옳지 않은 것은? (단, x는 특징, y는 레이블이다)
(가) 과소적합 / (나) 최적적합 / (다) 과대적합 예시 그래프
(가)는 모델의 표현력이 부족해 훈련 오차와 검증 오차가 모두 높게 유지되는 상황을 나타낸다.
(나)는 훈련 오차와 검증 오차가 모두 낮고 서로 차이가 작아, 모델이 데이터에 일반화되고 있음을 보여 준다.
(다)는 훈련 오차가 낮고 검증 오차는 높게 유지되므로, 성능을 향상하기 위해서 모델 복잡도를 더 높여야 한다.
기계 학습에서 과적합은 학습 데이터에서 성능이 뛰어나지만 일반화에 대한 성능을 보장할 수 없다.
정답 · 해설 보기
정답: ③
① (가)처럼 훈련·검증 오차가 모두 높은 상태는 모델의 표현력이 부족한 과소적합(underfitting)을 나타낸다는 설명으로, 옳은 내용이다.
② (나)처럼 두 오차가 모두 낮고 서로 가까운 상태는 모델이 데이터에 잘 일반화되고 있다는 뜻으로, 옳은 설명이다.
③ (다) 그래프처럼 훈련 오차는 낮은데 검증 오차는 높게 유지되는 상황은 모델이 훈련 데이터의 세부 특징(노이즈 포함)까지 과도하게 암기한 과적합(overfitting)을 의미한다. 이를 개선하려면 모델의 복잡도를 오히려 낮추거나, 규제(regularization)를 추가하거나, 드롭아웃을 적용하는 등의 방법을 써야 한다. "성능 향상을 위해 모델 복잡도를 더 높여야 한다"는 설명은 과적합을 오히려 악화시키는 방향이므로 옳지 않다.
④ 과적합한 학습 데이터에서는 성능이 좋지만, 새로운(본 적 없는) 데이터에 대한 일반화 성능은 보장되지 않는다는 의미로, 옳은 설명이다.