티스토리 뷰
이전 글에서 좋은 모델을 만들기 위해 데이터를 훈련(train), 검증(validation), 테스트(test) 데이터로 나누는 이유에 대해 살펴보았다. 이번에는 이렇게 나눈 데이터를 바탕으로 학습을 진행한 이후, 어떤 모델이 ‘좋은 모델’인지 판단하는 기준에 대해 살펴보자.

좋은 모델이란 뭘까?
머신러닝 모델을 이용해 학습을 진행했다고 가정해보자. 훈련 데이터로 학습한 결과 훈련 정확도는 90점, 검증 정확도는 89점이 나왔다면 이는 비교적 양호한 성능이라 볼 수 있다. 일반적으로 모델은 자신이 학습한 데이터(즉, 훈련 데이터)에 더 익숙하기 때문에, 검증 데이터보다는 훈련 데이터에서 다소 높은 정확도를 보이는 것이 자연스럽다.
하지만 만약 훈련 정확도가 90점인데, 검증 정확도나 테스트 정확도가 80점 이하로 떨어진다면 이는 문제가 될 수 있다. 모델이 훈련 데이터에는 지나치게 잘 맞추지만, 새로운 데이터에는 일반화되지 못하고 있다는 뜻이다. 이러한 현상을 과적합(overfitting) 혹은 과대적합이라고 부른다. 즉, 모델이 훈련 데이터의 패턴뿐만 아니라 노이즈나 예외적인 부분까지 과하게 학습한 상태다. 이 경우, 분산(variance)이 높은 모델로 판단할 수 있으며, 일반화 성능이 떨어진다. 이러한 경우에는 모델이 좀 더 일반적인 패턴을 인식할 수 있도록 데이터의 양을 늘리거나 모델에 규제를 가해 모델의 복잡도를 줄이는 방법 등을 사용할 수 있다.

한편, 훈련 정확도와 검증 정확도 모두 낮은 경우는 과소적합(underfitting) 상태다. 이는 모델이 데이터의 복잡성을 충분히 반영하지 못하거나, 모델 자체가 너무 단순해서 의미 있는 패턴조차 잘 학습하지 못한 경우다. 이때는 바이어스(bias)가 큰 모델이라고 할 수 있다. 이러한 경우에는 데이터를 해석할 수 있는 좀 더 복잡한 모델을 사용해보거나 데이터 피처들을 다항(Polynomial)으로 만들어 좀 더 복잡해진 데이터를 학습 시키는 기법 등을 사용할 수 있다.
바이어스-분산 트레이드오프
과적합과 과소적합은 모델의 복잡도와 밀접한 관련이 있으며, 이는 바이어스(bias)와 분산(variance)의 개념으로 설명할 수 있다.
바이어스는 모델이 정답에서 얼마나 벗어나 있는지를 의미한다. 즉, 정답을 잘 맞추지 못하는 정도다. 바이어스가 크다는 것은 모델이 데이터의 핵심적인 패턴을 제대로 학습하지 못했음을 뜻하며, 이는 보통 과소적합된 모델에서 발생한다.
반면, 분산은 모델의 예측값이 얼마나 불안정한지를 나타낸다. 분산이 높다는 것은 입력 데이터의 조금만 변화가 있어도 예측 결과가 크게 달라지는 것을 의미하며, 이는 과적합된 모델에서 주로 발생한다. 이 경우, 모델은 훈련 데이터의 노이즈까지 과하게 학습하여 새로운 데이터에 대해 일반화 성능이 떨어진다.

바이어스와 분산은 서로 트레이드오프(trade-off) 관계에 있다. 모델이 너무 단순하면 바이어스는 커지고, 모델이 너무 복잡하면 분산이 커지는 경향이 있다. 좋은 모델이란 이 두 요소 사이에서 적절한 균형을 이루는 모델이다. 결론적으로, 바이어스와 분산이 모두 낮은 상태(위 그림에서 1번) 즉, 정확하면서도 안정적인 예측을 하는 모델이 가장 좋은 모델이라고 할 수 있다. 이러한 균형을 찾기 위해서는 다양한 모델을 실험해보고, 모델의 복잡도와 데이터 특성에 맞는 구조를 선택하는 과정이 필요하다.
이때 검증 데이터(validation set)는 모델의 일반화 성능을 평가하는 중요한 역할을 하므로 반드시 잘 구성되어야 한다. 데이터를 잘못 분할하거나, 훈련과 검증 데이터가 유사하거나 중복되는 경우, 과적합이나 과소적합 여부조차 잘못 판단할 수 있다. 즉, 검증 데이터 구성 자체가 모델 성능 해석의 신뢰성을 좌우한다. 이러한 문제를 방지하기 위해 K-폴드 교차 검증(K-Fold Cross Validation) 등의 기법을 활용하면 보다 안정적인 검증이 가능하다.
마무리
모델 성능은 단지 훈련 데이터에서의 결과만으로 판단해서는 안 된다. 훈련, 검증, 테스트 데이터 모두에서 안정적인 성능을 보이는 모델이 좋은 모델이다. 즉, 일반화 성능이 뛰어난 모델을 목표로 해야 한다. 이를 위해서는 과적합과 과소적합을 피하고, 모델의 복잡도와 데이터 특성을 균형 있게 조절하는 것이 중요하다.
'AI > Machine learning' 카테고리의 다른 글
| [ML] ML 모델링 프로세스, ML 알고리즘 종류 (1) | 2025.08.08 |
|---|---|
| [ML] 좋은 모델을 만들려면 어떻게 해야 할까? (3) (0) | 2025.08.06 |
| [ML] 좋은 모델을 만들려면 어떻게 해야 할까? (1) (2) | 2025.08.04 |
| [ML] 머신러닝 모델링(Modeling), 도대체 뭘 하는 걸까? (0) | 2025.07.24 |
| [ML] 머신러닝은 어떻게 학습할까? (3) | 2025.07.23 |
- Total
- Today
- Yesterday
- 앤드류응
- 딥러닝
- 파이썬
- Action spaces
- 숏코딩
- NumPy
- *
- ML
- **
- 경사하강법
- 강화학습
- **kwargs
- 손실함수
- ndarray
- *args
- 비용함수
- ML 종류
- ML 프로세스
- 로지스틱 회귀
- 강의노트 정리
- Sort
- 백준
- cnn
- ML Process
- 클래스 총 정리
- Andrew Ng
- baekjoon
- 머신러닝
- sorted
- python
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
