모델이 새로운 데이터에 대해서 제대로 작동하는지 알기 위해서는 실제로 새로운 데이터에 대해서 작동시켜보아야 합니다. 배포를 하기 전에 새로운 데이터에 대한 정확도를 평가하기 위해서는,가지고 있는 데이터셋을 Training Set과 Test Set으로 나누어야 합니다. Training Set을 사용해서 모델을 학습시킨 다음에 Test Set에서 시험을 한번 해보는 것입니다.
새로운 데이터들에 대해서 발생하는 오차 값은 Generalization Error (out-of-sample error)라고 부르며, 이 값이 낮을수록 모델이 새로운 데이터에 대해서도 성능이 좋다는 것을 의미합니다. 만약 training error(Training Set에 대한 오류)는 낮은데 generalization error가 높다면 모델이 오버피팅되어 있다는 것을 시사합니다.
* Training Set과 Test Set의 비율은 8:2로 하는 것이 보통이지만, 데이터의 양이 큰 경우 Test Set의 크기를 낮춰도 generalization error를 예측하는데에는 큰 문제가 없습니다.
하이퍼파라미터 튜닝과 모델 선택
만약 두가지 모델 중에 최적의 모델을 고르기 위해서 Training Set과 Test Set을 나누어서 평가를 했다고 합시다. Test Set에서 좋은 성능을 보여줘도 다른 데이터에 대해서는 성능이 안좋게 나올 수도 있습니다. 이는 그 특정 모델이 우연히 정해진 Test Set에 대해서만 성능이 좋았던 것입니다.
이 문제를 해결하기 위해서는 holdout validation이라는 방법을 사용합니다. Test Set에 대해서 성능을 평가하는 것이 아닌, Training Set의 일부를 쪼개서 최적의 모델을 찾는 것입니다. Training Set의 일부인 데이터의 그룹은 Validation Set (development set, dev set)라고 불립니다. Validation Set에서 가장 좋은 성능을 내어 선택된 모델은 전체 Training Set에 대해서 학습을 한뒤, 마지막으로 Test Set에 대해 평가되어 generalization error를 예측합니다.
Validation Set을 사용하면 보통 좋은 결과를 얻을 수 있습니다. 하지만 Training Set에 비교해서 Validation Set의 크기가 너무 작으면 최적의 모델을 못찾게 되고, 반대로 Validation Set의 크기가 너무 크면 Training Set이 너무 작아져 학습이 제대로 진행이 되지 못해 정확한 비교가 이루어지지 못한다는 문제가 발생할 수 있습니다. 이러한 문제를 해결하는 방법은 cross-validation으로 여러 개의 Validation Set을 만들어서 평가를 여러번 한 뒤에 그 결과를 종합하여 최적의 모델을 선택하는 것입니다. 이 방법으로는 성능에 대한 더 정확한 평가를 내릴 수 있지만, 연산량이 많아진다는 단점이 존재합니다.
Data Mismatch (데이터 불일치)
데이터셋의 크기는 충분하지만, 실제로 배포되는 환경에서 유의미한 대표성을 가지는 데이터(Representative Data)는 부족할 수 있습니다. 만약 대표성을 가지는 데이터가 Validation Set이나 Test Set에 몰려있다면, generalization error의 예측값이 정확하지 않을 수도 있습니다. 이러한 문제를 Data Mismatch (데이터 불일치)라고 합니다.
ex) 학습되는 데이터는 배경, 화질, 조명과 같은 요인들이 최소화되어 다른 노이즈가 없는데, 실제로 배포된 환경에서는 이런 변수가 존재한다면 모델의 성능이 낮아질 수 있습니다.
이 문제를 해결하기 위해 만들어진 것이 Train-Dev Set의 개념입니다. Training Set에서 Validation Set을 분리한 뒤에, 남은 Training Set에서 다시 한번 Train-Dev Set을 만들어 평가를 하는 것입니다. Train-Dev Set에서의 평가 점수가 낮다면, Training Data에 대해서 모델이 오버피팅 되어 있음을 의미합니다(기존의 Validation Set의 역할). 만약 Train-Dev Set에서의 평가 점수는 높은데 Validation Set에서의 평가 점수가 낮다면 Data Mismatch가 발생했음을 의미합니다.
Training-Dev Set을 사용해서 데이터 불일치가 발생한다는 것을 확인하면
* No Free Lunch (NFL)이론
No Free Lunch 이론은 모든 문제에 최적화된 완벽한 모델은 존재하지 않는다는 것입니다. 각 모델은 각자 장단점이 있기 때문에 해결해야 하는 문제와 주어진 상황을 고려해서, 여러 후보 모델들을 정하고 평가한 뒤에 적절한 모델을 선택해야 합니다.
'AI > ML' 카테고리의 다른 글
[ML] 모델 파인튜닝 (0) | 2024.08.14 |
---|---|
[ML] 데이터셋 준비 (0) | 2024.08.13 |
[ML] 머신 러닝의 성능 저하 요인 (1) | 2024.07.24 |
[ML] 머신 러닝 유형 (1) | 2024.07.23 |
[ML] 머신 러닝 소개 (0) | 2024.07.21 |