머신러닝 정확도 향상 - Learning Rate, 전처리, Overfitting 해결법
모델을 만들었는데 정확도가 안 나온다면? 대부분의 경우 데이터 품질이나 하이퍼파라미터 설정에 문제가 있다. 이 글에서는 머신러닝 모델의 정확도를 높이기 위한 세 가지 핵심 요소를 정리한다.
머신러닝의 정확도
머신러닝에서의 정확도는 다양한 요인에 의해 결정된다. 그 중 가장 큰 영향을 미치는 변수는 learning rate, data preprocessing, overfitting 세 가지다.
적당한 Learning Rate의 선택
Learning rate는 gradient descent 알고리즘에서 한 번에 얼마나 움직일지를 결정하는 변수다.
- 너무 크면: 최저점을 지나쳐서 발산(overshooting)할 수 있다.
- 너무 작으면: 학습 속도가 너무 느려서 수렴하는 데 오래 걸린다.
개인적인 생각: 실무에서는 learning rate를 처음에 0.001 정도로 시작해서, loss가 줄어드는 속도를 보면서 조절한다. 요즘은 Adam 같은 adaptive learning rate optimizer를 쓰면 초기값에 덜 민감하다. 하지만 여전히 튜닝이 필요한 하이퍼파라미터 중 하나다.
정확도 향상을 위한 data preprocessing
만약 입력받은 두 종류의 변수의 크기 차이가 심한 경우 이는 학습에 큰 영향을 미칠 수 있기 때문에 학습 전에 data preprocessing을 거쳐 정확도를 높일 수 있으며, 흔히 normalize라고 불리는 정규화 작업을 거친 뒤 학습을 하게 된다. 이러한 standardize를 위한 수식은 다음과 같다.

Overfitting
Overfitting이란 모델이 학습 데이터에 너무 맞춰져서, 새로운 데이터에는 오히려 성능이 떨어지는 현상이다.
학습 데이터가 적거나, 모델이 너무 복잡할 때 발생하기 쉽다. 학습 데이터의 노이즈까지 외워버려서, 일반화 능력이 떨어지는 것이다.
Overfitting 해결 방법
- 더 많은 데이터 확보 - 가장 확실한 방법이지만, 현실적으로 어려울 때가 많다.
- Feature 수 줄이기 - 불필요한 feature를 제거하면 모델이 단순해진다.
- Regularization - L1, L2 regularization으로 weight가 너무 커지는 것을 방지한다.
- Dropout - 딥러닝에서 학습 중 일부 뉴런을 랜덤하게 끄는 기법이다.
- Early stopping - validation loss가 더 이상 줄어들지 않으면 학습을 멈춘다.
개인적인 생각: Overfitting은 머신러닝에서 가장 흔하게 마주치는 문제다. "학습 정확도는 99%인데 테스트 정확도는 60%"라면 십중팔구 overfitting이다. 이럴 때 데이터를 더 모으거나, 모델을 단순하게 만들거나, regularization을 강하게 걸어야 한다. 경험상 데이터를 더 모으는 게 가장 효과적이다.
마무리
정리하면:
| 문제 | 증상 | 해결책 |
|---|---|---|
| Learning rate 너무 큼 | Loss가 발산함 | Learning rate 줄이기 |
| Learning rate 너무 작음 | 학습이 너무 느림 | Learning rate 높이기 |
| Data scale 차이 큼 | 특정 feature가 지배적 | 정규화(Standardization) |
| Overfitting | 학습 정확도 ↑, 테스트 정확도 ↓ | 데이터 추가, Regularization |
머신러닝 모델 성능이 안 나올 때, 위 체크리스트를 하나씩 점검해보면 대부분의 문제를 해결할 수 있다.