파라미터 최적화 모듈 (GridSearchCV, RandomSearchCV, Bayesian Optimization)

김민영·2024년 2월 1일
0

Machine Learning

목록 보기
2/2

1.GridSearchCV

그리드 서치(Grid Search)는 하이퍼파라미터를 일정한 간격으로 변경하며 최적의 파라미터를 찾아가는 기법이다.

아래의 그림 1처럼 가로축이 하이퍼 파라미터이고 세로축이 목표함수 일 때, 목표함수 값이 최대가 되는 하이퍼파라미터를 찾는 문제를 풀어야 한다고 가정한다면, 그리드 서치는 특정 범위 내에서 하이퍼 파라미터를 일정값만큼 일일이 변경하며 출력값을 비교하는 방식으로 동작한다.

따라서, 가능한 모든 조합을 평가하기 때문에 확실히 최적의 하이퍼파라미터를 찾을 수 있지만, 탐색 공간이 커지면 계산 비용이 증가하고, 많은 하이퍼파라미터를 다루기 어려울 수 있다.

  • 간단하고 광범위하게 사용되는 hyperparameter 탐색 알고리즘
  • 해당 범위 및 Step의 모든 경우의 수를 탐색
  • 범위를 넓게 가져갈수록, Step을 작게 설정할 수록 최적해를 찾을 가능성이 높이지지만 시간이 오래 걸림
  • 일반적으로 넓은 범위와 큰 Step으로 설정한 후 범위를 좁혀 나가는 방식을 사용하여 시간을 단축

2.RandomSearchCV

랜덤 서치(RandomSearch)는 이름에서 알 수 있듯이 무작위의 하이퍼파라미터를 선정하는 과정을 통해 최적의 해를 찾아가는 기법이다. 무작위로 선택된 하이퍼파라미터 값을 사용하여 조합을 평가하기 때문에 GridsearchCV와는 다른 조합으로 진행해 좋은 성능으로 올릴 수도 있지만, 모든 조합을 평가하는 것이 아니기 때문에 최적의 조합을 놓칠 수 있다.

  • 정해진 범위 내에서 Random하게 선택
  • 기본적으로는 더 빠르고 효율적이기 때문에 GridSearch보다 권장되는 방법
  • Grid Serach보다 속도가 빠르지만 optimzed solution이 아닐 수 있음
  • Sample의 수가 많다면 Random Sampling을 통해 최적해를 찾을 가능성이 높아짐

3. Bayesian Optimization

베이지안 최적화(Bayesian Optimization)는 최적의 해 근처의 하이퍼파라미터를 위주로 탐색하는 작업과 임의의 새로운 하이퍼파라미터를 탐색하는 과정을 반복하여 최적의 해를 탐색하는 기법이다. 확률적 모델을 사용하여 함수의 최적화를 수행하는 기법으로 주어진 함수를 평가하고, 평가 결과를 사용해 조금씩 탐색 공간을 조절해 나간다.

확률적 모델 구축하기

  1. 초기 데이터 수집
    초기에 몇 가지 샘플링된 데이터 포인트를 사용해 구축할 확률 모델이 어떤 영역을 탐색해야 하는지 알 수 있다.
  2. 초기 모델 구축
    함수 값에 대한 확률적인 추정을 제공하는 Gaussian Process 모델을 사용해 확률 모델을 구축하고, 평균 함수와 공분산 함수를 사용하여 목적 함수의 평균과 분산을 추정한다.
    GP에서는 각 하이퍼파라미터 조합에 대한 함수 값이 확률적으로 모델링 되어 있다. 이는 주어진 하이퍼파라미터 조합에 대한 함수값이 확률 분포를 따른다는 것을 의미하고, GP를 사용하고 있으므로 가우시안 분포를 따른다고 가정하고 있다.
    데이터를 추가해 나가면서 모델이 현재까지 수집된 데이터를 잘 설명하도록 조정되며, 불확실성(분산이 큰)이 있는 지역에서 더 많은 탐색을 수행하도록 유도된다. 왜냐면 GP 모델의 예측이 불확실하다는 것은 적합한 예측을 하기 어려운 상태인 것을 말하기 때문이다.

아래의 그림 3처럼 초기에 A와 B 위치의 하이퍼 파라미터를 탐색했다고 가정한다면, 목표 함수의 최댓값을 찾는 문제일 때, A보다는 B 근처에 최적의 해가 위치할 가능성이 높다. 베이지안 최적화는 이러한 경우를 고려하여 최적의 해가 근처에 있을 가능성이 높은 구간을 위주로 탐색한다. 더불어, 해당 구간 외에도 최적의 해가 있을 가능성을 열어두고 임의의 새로운 하이퍼 파라미터에 대해서도 탐색을 이어나간다.

[출처] : https://heytech.tistory.com/389
[출처] : https://velog.io/@crosstar1228/MLHyperparameter-tuning-기법의-3가지GridSearch-RandomSearch-Bayesian-Optimization

profile
data analysis, data science

0개의 댓글