머신러닝

그리드 서치 (Grid Search)

데이터_박과장 2023. 3. 28. 16:26

Grid Search는 기계 학습 모델에서 하이퍼파라미터(Hyperparameter)를 조정하기 위해 사용되는 방법 중 하나입니다. 하이퍼파라미터는 모델의 성능에 영향을 미치는 파라미터로서, 모델 학습 전에 사용자가 직접 설정해야 하는 파라미터입니다. Grid Search는 모든 하이퍼파라미터 조합을 대상으로 모델을 학습하고 평가하여 가장 우수한 성능을 보이는 조합을 찾아내는 방법입니다. Grid Search는 가능한 모든 하이퍼파라미터 조합을 구성하여 탐색하므로, 해당 모델의 모든 하이퍼파라미터를 찾는데 유용합니다. 그러나 모든 조합을 탐색하므로 계산량이 매우 높아질 수 있습니다.

 

 

좀 더 풀어서 말씀드리자면, 우선 정해줘야 하는 각 하이퍼 파라미터에 넣어 볼 후보 값을 몇 개씩 정하고, 각 후보 값으로 모델을 학습시켰을 때 가장 성능이 좋았던 하이퍼 파라미터 조합을 선택합니다

 

 


Grid Search의 동작 방식

  1. 조정하고자 하는 하이퍼파라미터와 가능한 값들을 사전에 정의합니다. 이렇게 정의된 값들의 조합에 대한 그리드를 생성합니다.
  2. 그리드 상의 각 조합에 대해 모델을 학습하고, 검증 데이터셋을 사용하여 성능을 평가합니다.
  3. 가장 우수한 성능을 보이는 조합을 선택합니다.
  4. 예를 들어, SVM 모델에서 C와 gamma라는 하이퍼파라미터를 조정하고자 한다면, C=[0.1, 1, 10], gamma=[0.1, 0.01, 0.001]와 같이 가능한 값들을 사전에 정의한 후, 이를 조합한 그리드를 생성합니다. 
  5. 그리드 상의 모든 조합에 대해 SVM 모델을 학습하고 검증 데이터셋을 사용하여 성능을 평가하면서 가장 우수한 조합을 선택합니다.

 

이해에 도움이 되시도록 예시를 보이고자 합니다. 동일한 중요도를 가진 두 개의 하이퍼파라미터가 있다면, 그리드 탐색과 랜덤 탐색은 다음과 같이 보일 것입니다:

 

 

같은 개수의 하이퍼파라미터 후보군을 선정하여 모델을 실행한다고 가정할 때, 그리드 서치가 모든 영역, 모든 가능한 범위릐 하이퍼퍼라미터 후보군을 더욱 효과적으로 탐색할 수 있습니다. 만일 특정 구간의 하이퍼파라미터 군을 자세히 서치해야 한다면 아래와 같이 대비되어 보일 것입니다.

 

 

 

Grid Search를 사용하면 많은 하이퍼파라미터를 조정할 때 빠르게 최적의 조합을 찾을 수 있습니다. 하지만 가능한 모든 조합을 탐색하므로 계산 비용이 매우 높아질 수 있으며, 그리드 상의 값들이 실제 최적값과 다를 수 있습니다. 따라서 Grid Search를 수행하기 전에 모델이 사용하는 하이퍼파라미터에 대한 지식이 있어야 하며, 값들을 적절하게 설정하는 것이 중요합니다.

 

아래는 딥러닝의 대가분들이 하이퍼퍼라미터 최적화에 관한 논문을 작성해 주셨습니다. 링크를 따라가서 공부해보실 수 있습니다. James Bergstra and Yoshua Bengio: Random Search for Hyper-Parameter Optimization