반응형
오늘도 토론에 올라온 개념을 정리해 보려고한다.
If several models of almost-equal predictive quality are evaluated on the same set of validation data in order to select the model that performs best, is it likely that the truly best-predictive model will be chosen?
여러 모델 중에서 가장 성능이 좋은 모델을 고를 때, 우리는 가장 좋은 모델을 선택하고 있다고 확신할 수 있을까?
좀더 구체적으로 주제에 대해서 말해보자면
- 여러 모델이 비슷한 성능을 보일 때, 특정 모델이 검증 데이터에서 최고 성능을 보인건 단순히 운이 좋았을 수도 있다 라는 이야기다!
- 검증 데이터는 원래 전체 데이터를 대표하는 작은 샘플인데, 이 작은 샘플에 우연히 잘 맞아떨어진 모델을 선택하면, 실제 데이터에서는 오히려 성능이 안 좋을 수 있다!
모델 평가의 목표
- 모델이 새로운 데이터에서 얼마나 잘 일반화될지를 판단한다.
- 최적의 모델을 선택한다.
과적합 개념
- 모델 과적합: 모델이 학습 데이터의 특이한 패턴을 지나치게 학습하여, 새로운 데이터에서의 성능이 저하되는 현상.
- 검증 데이터에 대한 과적합
- 여러 모델 중 검증 데이터에서 최고 성능을 보인 모델을 선택하면, 그 모델이 검증 데이터의 특정 특성에 우연히 맞춰진 경우일 수 있다.
- 실제 테스트 데이터에서 성능이 떨어질 가능성이 높아진다.
왜 가장 좋은 모델을 선택하기 어려울까?
- 검증 데이터는 전체 데이터에서 무작위로 선택된 작은 샘플일 뿐이다.
- 성능이 비슷한 모델이 많을 경우, 검증 데이터의 특정 특성에 잘 맞는 모델이 가장 높은 점수를 받을 가능성이 있다.
- 진짜로 일반화 성능이 가장 좋은 모델 대신, 우연히 높은 점수를 받은 모델이 선택될 수 도 있다는 것이다!!!
해결방안은 뭐가 있을까?
문제 발생 상황
- 여러 모델(A, B, C)이 검증 데이터에서 평가됨.
- 각 모델의 성능이 90%, 89.8%, 89.7%로 매우 비슷함.
- 단순히 검증 점수가 가장 높은 모델 A를 선택하면
- 실제로 A가 테스트 데이터에서 가장 잘 수행할 가능성은 낮음.
- 검증 데이터에서 A가 가장 높은 점수를 얻은 것은 데이터의 특이점이나 우연 때문일 수 있음.
해결 방안
- 교차 검증(Cross-Validation)
- 데이터셋을 여러 부분으로 나누어, 각 부분을 검증 데이터로 사용하여 여러번 평가해본다
- 모델의 평균 성능을 계산해, 더 안정적인 선택을 보장 한다.
- 독립적인 테스트 데이터 활용
- 검증 데이터와는 별개로 새로운 데이터셋에서 최종 모델 성능을 평가 한다.
- 검증 데이터에 과적합된 모델은 테스트 데이터에서 일반적으로 낮은 성능을 보이기 때문엥 최적 모델을 더 정확히 식별할 수 있다.
- Ensemble Methods(앙상블 방법)
- 성능이 비슷한 여러 모델을 결합하여 최종 예측값을 생성 한다.
- 단일 모델의 불확실성을 줄일고 일반화 성능을 향상 시킨다.
- Bayesian Optimization 및 Regularization
- Bayesian Optimization은 하이퍼파라미터 튜닝 과정에서 검증 데이터에 과적합 되지 않도록 최적화를 수행 한다.
- Regularization(정규화)은 모델 복잡도를 줄여서 과적합을 방지 한다.
정리
검증 데이터를 사용해 성능이 비슷한 여러 모델 중 가장 높은 점수를 받는 모델을 선택한다면, 실제로 최적의 예측 성능을 가진 모델을 선택하지 못할 가능성이 크다.
여러 해결 방법들을 이용 활용해야 한다!
최적의 모델 선택은 검증 데이터의 과적합을 최소화 하고, 일반화 성능을 극대화 하기 위한 접근이 필요하다...!
그렇구나! 잘알겠따!
** 그냥 하루하루 개인 공부한 것을 끄적 거리는 공간입니다.
이곳 저곳에서 구글링한 것과 강의 들은 내용이 정리가 되었습니다.
그림들은 그림밑에 출처표시를 해놓았습니다.
문제가 될시 말씀해주시면 해당 부분은 삭제 하도록하겠습니다. **
반응형
'public void static main > AI' 카테고리의 다른 글
[Discussion] 분류와 군집화의 근본적인 차이는 무엇일까? (0) | 2025.01.24 |
---|---|
[Discussion] 테스트 데이터의 모델 성능 토론 (0) | 2025.01.24 |
[DataModeling] Clustering 그리고 Distance Norms...... (0) | 2025.01.15 |
[DataModeling] 데이터 검증, 분할 (0) | 2025.01.15 |
[Discussion] KNN(K-Nearest Neighbors)알고리즘에서 스케일링(Scaling)이 중요한 이유 (0) | 2025.01.14 |
댓글