과소적합은 데이터 과학에서 데이터 모델이 입력 변수와 출력 변수 간의 관계를 정확하게 포착하지 못해, 학습 데이터와 미처 보지 못한 데이터 모두에서 높은 오류율을 발생시키는 상황을 의미합니다.
과소적합은 모델이 너무 단순할 때 발생하며, 이는 모델에 더 많은 학습 시간, 더 많은 입력 특성, 또는 적은 정규화가 필요할 때 나타날 수 있습니다.
과적합과 마찬가지로, 모델이 과소적합되면 데이터 내 주요 패턴을 제대로 파악하지 못해 학습 오류가 발생하고 모델 성능이 저하됩니다. 모델이 새로운 데이터에 대해 잘 일반화되지 못하면, 분류나 예측 작업에 활용할 수 없습니다. 모델을 새로운 데이터로 일반화하면 궁극적으로 머신 러닝 알고리즘을 사용하여 매일 데이터를 예측하고 분류할 수 있게 됩니다.
높은 편향(bias)과 낮은 분산(variance)은 과소적합의 좋은 지표입니다. 이러한 현상은 학습 데이터 세트를 사용할 때도 나타나기 때문에, 과소적합된 모델은 과적합된 모델보다 일반적으로 더 쉽게 식별할 수 있습니다.
간단히 말해, 과적합은 과소적합의 반대 개념으로, 모델이 과도하게 학습되었거나 너무 복잡할 때 발생하며, 테스트 데이터에서 높은 오류율을 초래합니다. 과적합이 과소적합보다 더 흔하며, 과소적합은 일반적으로 “조기 종료”라는 과적합 방지 과정에서 발생하는 경우가 많습니다.
학습 부족이나 모델 복잡성 부족으로 인해 과소적합이 발생한다면, 이를 방지하기 위한 논리적인 전략은 학습 시간을 늘리거나 더 관련성 높은 입력 변수를 추가하는 것입니다. 하지만 모델을 과도하게 학습시키거나 너무 많은 특성을 추가하면, 편향은 낮지만 분산이 높은 과적합 현상이 발생할 수 있습니다(즉, 편향-분산 균형 문제). 이 경우 통계 모델이 학습 데이터에 지나치게 밀착되어 새로운 데이터에 대해 잘 일반화하지 못하게 됩니다. 특히 Decision Trees나 K-최근접 이웃(KNN)과 같은 일부 모델은 과적합에 더 취약할 수 있다는 점을 유의해야 합니다.
과적합은 학습 데이터에서 높은 정확도를 보이기 때문에, 과소적합보다 식별하기 더 어려울 수 있습니다. 알고리즘의 정확도를 평가하기 위해 일반적으로 k-겹 교차 검증(k-fold cross-validation) 기법이 사용됩니다.
k-폴드 교차 검증에서 데이터는 '폴드'라고도 하는 k개의 동일한 크기의 하위 집합으로 분할됩니다. k-폴드 중 하나는 홀드아웃 세트 또는 검증 세트라고 하는 테스트 세트 역할을 하고 나머지 폴드는 모델을 학습시킵니다. 이 프로세스는 각 폴드가 홀드아웃 폴드 역할을 할 때까지 반복됩니다. 각 평가 후 점수가 유지되며 모든 반복이 완료되면 점수의 평균을 계산하여 전체 모델의 성능을 평가합니다.
모델을 적합할 때 이상적인 상황은 과적합과 과소적합 사이의 균형을 찾는 것입니다. 이 두 가지 사이에서 ‘적절한 지점’을 찾아내면 머신 러닝 모델이 정확한 예측을 할 수 있습니다.
학습 데이터 세트를 기반으로 과소적합을 감지할 수 있기 때문에, 초기 단계에서 입력 변수와 출력 변수 간의 주요 관계를 더 잘 파악하도록 도울 수 있습니다. 적절한 모델 복잡성을 유지함으로써 과소적합을 방지하고 보다 정확한 예측을 할 수 있습니다. 아래는 과소적합을 줄이기 위해 사용할 수 있는 몇 가지 기법입니다.
정규화는 계수가 큰 입력 변수에 페널티를 부과하여 모델의 분산을 줄이는 데 주로 사용됩니다. L1 정규화, 라쏘 정규화, 드롭아웃 등과 같은 다양한 방법들이 모델 내 노이즈와 이상치를 줄이는 데 도움을 줍니다. 하지만 데이터 특성들이 너무 균일해지면 모델이 주요 패턴을 파악하지 못해 과소적합으로 이어질 수 있습니다. 정규화 강도를 줄이면 모델에 더 많은 복잡성과 변동성이 도입되어, 모델이 성공적으로 학습될 수 있습니다.
앞서 언급했듯이, 너무 일찍 학습을 중단하는 것도 과소적합된 모델을 초래할 수 있습니다. 따라서 학습 시간을 연장함으로써 이를 방지할 수 있습니다. 하지만 과도한 학습과 그에 따른 과적합에 유의하는 것도 중요합니다. 이 두 상황 사이의 균형을 찾는 것이 핵심입니다.