NLP/AI/Statistics

[cs231n] Note 1: Image Classification (Validation sets for Hyperparameter tuning) 본문

Stanford Lectures : AI/CS231n

[cs231n] Note 1: Image Classification (Validation sets for Hyperparameter tuning)

Danbi Cho 2020. 11. 19. 20:23

> Hyperparameter

 

이전에 image classification을 위한 Nearest Neighbor Classifier에 대하여 설명하였다. 

 

NN 분류기의 확장된 아이디어 모델인 KNN 모델에서 사용자들은 K의 값을 설정함으로써 모델의 능력을 다르게 학습할 수 있다. 

 

또한, NN 분류기를 위한 거리 계산 방법으로 L1, L2 distance에 대하여 설명하였는데, 

 

어떤 계산 법을 사용하여 모델을 학습하였는지도 역시 사용자의 설정에 따라 학습 방법, 학습의 능력이 다르게 평가될 수 있다. 

 

이처럼 사용자가 모델의 학습 능력을 선택하는 parameter를 hyperparameter 라고 한다.

 

즉, 모델을 설계하기 위한 부품들이라고 생각할 수 있다. 

 

이러한 hyperparameter에는 정답이 없으며 이를 어떻게 설계하였나에 따라 모델 성능의 차이가 나타난다. 

 

그렇기 때문에 다양한 hyperparameter를 조정하면서 모델이 가장 강건한 hyperparameter를 찾는 것 또한 인공지능에서 중요한 요소라고 할 수 있다. 

 

 

> Validation sets

 

다양한 hyperparameter를 조정하면서 모델에 가장 강건한 hyperparameter를 찾는 과정에서 주의해야할 점이 있다. 

 

바로, 평가 데이터를 활용하여 hyperparameter를 조정할 경우 학습 데이터가 이미 평가 데이터를 충분히 학습하여 overfitting되는 문제가 발생할 수 있다는 것이다. 

 

즉, 평가 데이터는 학습된 모델에 입력으로써 사용하여 실제 평가 데이터의 class와 모델이 예측한 class의 차이를 비교하여 평가하기 위한 역할로써 사용되어야 하는데, 

 

만약 평가 데이터를 학습 데이터를 학습하는 과정에서 사용한다면 모델은 이미 평가 데이터의 정답을 아는 상태가 되어버린다. 

 

모델이 평가 데이터의 class를 이미 모두 학습한 상태에서 평가 데이터의 class를 평가하게 된다면 

 

모델은 이미 평가 데이터의 정답을 알고 있기 때문에 과적합(overfitting) 문제가 발생하여 모델의 정확한 평가가 이루어지지 못하게 된다. 

 

이러한 문제를 방지하기 위해 검증 데이터 (validation set)를 구성한다. 

 

검증 데이터를 확보하기 위해 많은 연구에서는 평가 데이터를 제외한 학습 데이터를 다시 8:2 혹은 9:1로 분할하여 검증 데이터를 구성한다. 

 

(Nearest Neighbor Classifier)에서 소개한 CIFAR-10 데이터를 예로 들면, 

 

학습 데이터 50,000개의 이미지 데이터를 49,000개의 학습 데이터와 1,000개의 검증 데이터로 분할하여

 

1,000개의 검증 데이터로 49,000개의 학습 데이터를 검증하기 위해 사용한다. 


#. 인공지능에서의 모델 학습 절차에 대하여 다시 정리하면 아래의 순서와 같다.

 

1. 학습 데이터, 검증 데이터, 평가 데이터를 구성한다. 

2. 학습 데이터로 모델을 학습하고 학습된 모델을 검증 데이터로 평가한다. 

3. 다양한 hyperparameter를 여러번 조정하면서 모델을 위한 가장 최적의 hyperparameter를 찾는다.
   (이 때 학습 데이터와 검증 데이터만 사용 > 모델 tuning 단계)

4. 최적의 hyperparameter로 학습된 모델을 평가 데이터로 평가한다. 
   (평가 데이터는 단 한번만 사용 > 모델 평가 단계)


> Cross-Validation

 

학습 데이터의 크기가 매우 작을 때 또다시 분할되는 학습 데이터와 검증 데이터를 여러번 수행하여 모델의 일반화 성능을 높이는 방법을 수행한다. 

 

이를 k-fold cross validation이라고 한다. 

 

k-fold cross validation은 학습 데이터와 검증 데이터를 k번 다르게 분할하여 모델을 검증하는 방법을 의미한다. 

 

이는 아래의 그림과 같이 표현할 수 있다.

 

위와 같이 K=5라고 할 때,

 

5번의 모델 검증을 수행하고 각각의 정확도를 평가하여 해당 모델의 일반화 성능을 제시할 수 있다. 

 

이러한 방법은 앞서 말한 것과 같이 데이터의 크기가 작을 경우 모델이 잘 학습되었는지에 대한 의문점이 들 수 있기 때문에 다양한 학습 데이터와 검증 데이터의 형태로 모델의 일반화 성능을 제시해주기에 효과적이다.

 

#. K는 흔히 5 혹은 10으로 많이 사용되며

   K=5일 경우 8:2의 분할 방식과 같고, K=10일 경우 9:1의 분할 방식과 같다. 

 

 

참고) cs231n.github.io/classification/#validation-sets-for-hyperparameter-tuning

 

CS231n Convolutional Neural Networks for Visual Recognition

This is an introductory lecture designed to introduce people from outside of Computer Vision to the Image Classification problem, and the data-driven approach. The Table of Contents: Image Classification Motivation. In this section we will introduce the Im

cs231n.github.io

 

Comments