본문으로 건너뛰기

과적합(Overfitting)이란?

과적합(Overfitting)이란?

과적합(Overfitting)은 머신러닝 모델이 훈련 데이터에는 아주 잘 맞춰져 있지만, 새로운 데이터나 검증 데이터에 대해서는 성능이 좋지 않은 상태를 말합니다.

쉽게 말해, 모델이 훈련 데이터의 특정 패턴, 심지어는 노이즈까지 학습해서, 일반적인 상황에서는 잘 작동하지 않게 되는 것입니다.

과적합 이해되지 않는다면?

어린이가 공룡에 대해 배우기 시작했다고 가정해 보겠습니다. 처음에는 티라노사우루스라는 단어를 들었을 때 큰 이빨과 두 발로 걷는 큰 동물이라는 이미지만 학습합니다. 이 어린이에게 공룡 그림을 몇 개 보여주고, 이 중에서 티라노사우루스를 골라봐 라고 물으면, 아마도 크고 무섭게 생긴 것들을 모두 티라노사우루스라고 지목할 수 있습니다.

그런데 이 어린이가 티라노사우루스에 대해 더 많은 정보를 학습하면서, 티라노사우루스의 이빨의 모양, 특정한 발가락의 수, 특정한 몸통의 길이를 구체적으로 지나치게 학습하게 된다면, 다른 종류의 공룡이나 비슷하게 생긴 다른 동물들까지도 티라노사우루스라고 잘못 인식할 수 있습니다. 실제로는 티라노사우루스가 아니더라도, 그 어린이가 학습한 매우 구체적인 조건에 맞으면 모두 티라노사우루스라고 생각하는 것입니다. 이런 상태가 바로 과적합입니다.

과적합 해결방법

  • 데이터 증강: 기존의 데이터를 변형하거나 추가하여 가상의 새로운 데이터를 생성합니다. 이렇게 하면 특정 데이터에 지나치게 의존하지 않고 더 넓은 범위의 패턴을 학습합니다.

    • 텍스트: 문장의 단어를 동의어로 교체하거나 문장을 재배열할 수 있습니다.
    • 이미지: 이미지를 회전하거나, 뒤집기, 색상 조정 등을 통해 같은 이미지를 다르게 보이게 만들 수 있습니다.
  • 더 많은 데이터 수집: 과적합을 방지하는 가장 직관적인 방법 중 하나는 훈련 데이터의 양을 증가시키는 것입니다. 훈련 데이터가 많을수록 모델은 더 정확하고 다양한 패턴을 인식할 수 있게 되어 좋은 성능을 발휘할 수 있습니다.

실습

  1. 모달창: 데이터 선택 버튼을 눌러 모달창을 띄우고 새 파일 생성 버튼을 누릅니다.

  2. 행 추가: + 버튼을 눌러 행을 추가합니다.

  3. 데이터 복사: 상단에 미리 정의된 문장 하나를 복사합니다.

  4. 데이터 증강: 복사한 문장에서 동의어로 변경해 봅니다.