
이 문서는 머신러닝 학습 중 가장 중요한 개념 중 하나인 오버피팅(Overfitting)과
언더피팅(Underfitting)을 이해하고 극복하기 위한 개념인
바이어스(Bias)와 베리언스(Variance)를 중심으로 정리한 학습 기록입니다.
| 용어 | 설명 |
|---|---|
| 언더피팅 (Underfitting) | 모델이 너무 단순해서 학습 데이터를 제대로 설명하지 못하는 상태 |
| 오버피팅 (Overfitting) | 모델이 너무 복잡해서 학습 데이터에 과하게 맞춰져, 새로운 데이터에 일반화가 되지 않는 상태 |

| 모델 상태 | 바이어스 | 베리언스 |
|---|---|---|
| 언더피팅 | 높음 | 낮음 |
| 적절한 학습 | 낮음 | 낮음 |
| 오버피팅 | 낮음 | 높음 |
→ 좋은 모델은 낮은 바이어스와 낮은 베리언스를 동시에 만족해야 함

from sklearn.linear_model import Ridge
model = Ridge(alpha=1.0) # alpha 값이 클수록 계수 제약이 커짐
→ 이 구간에서 학습을 중단하는 전략 = Early Stopping


from keras.layers import Dropout
model.add(Dropout(0.3))
| 전략 | 설명 |
|---|---|
| 정규화 (Regularization) | 계수 값을 작게 제한하여 복잡한 모델을 억제 |
| Dropout | 신경망 학습 중 일부 뉴런 무작위 off |
| Early Stopping | 검증 정확도 기준으로 학습 조기 종료 |
| Feature Selection | 불필요한 입력 제거로 과적합 완화 |
| 데이터 확장 | 학습 데이터 양을 늘려 모델의 일반화 향상 |
이번 정리를 통해 단순히 모델 성능이 좋다는 것이 아니라,
학습 데이터와 새로운 데이터 모두에서 잘 작동해야 좋은 모델이라는 기준을 배웠다.
앞으로 모델 학습 시 바이어스-베리언스 밸런스를 고려해서,
단순히 정확도가 아닌 일반화 성능 중심으로 판단해야겠다는 생각이 들었다.