본문 바로가기
Machine Learning/개념 정리

Hyperparameter Search Optimization

by W_log 2023. 11. 30.

오늘은 Optuna를 사용하면 왜 하이퍼파라미터 조합을 잘찾는지 공부하다가 발견한 자료를 정리해보았습니다. 그 이유는 optuna는 Hyperparameter를 찾는 여러 알고리즘을 실제로 코드로 구현해서 함수 형태로 활용할 수 있게 만들어서 제공하고 있기 때문입니다. 생각보다 간단했는데 핵심적으로 공부한 내용은 어떤 알고리즘을 통해서 hyperparameter optimization이 이루어졌는지여서 이걸 정리해보았습니다.

 

 

 

기본 개념

  • 복잡한 모델은 학습 연산자체도 복잡한데, 탐색해야할 하이퍼파라미터 자체도 매우 많기 때문에 모든 하이퍼 파라미터를 계산해는 것은 불가능하다.
  • Hyperparameter Search는 딥러닝처럼 최적화된 지점을 빠르게 도달하는 방법을 고안하는 방식이다.
  • 알고리즘들의 핵심은 하이퍼파라미터를 대입해서 직접 학습연산을 하지 않고 대신 성능을 개선하는 방법을 어떻게 찾아낼지이다.

이제 본론으로 들어가보겠다.

 

 

Hyperparameter 찾는 방식

  1. 가장 간단한 방식
    • Grid Search : 사용자가 이렇게 조사해줘라고 요청하는 방식. 컴퓨터는 요청한 조합만 하나씩 대입해가면서 계산한다.
    • Random Search : 알아서 랜덤하게 하이퍼 파라미터 조합을 뽑아서 제공하는데 이게 동일한 리소스 안에서 Grid Search보다 성능이 좋을 확률이 높다고 한다.
  2. 정보를 활용하는 방식
위의 방식들은 사실 하나하나 연산을 한 것이 다음 연산에 도움을 주지 않고 독립적인 시행을 한다. 하지만 한번 연산을 하는 것 자체도 cost니까 이걸 어떻게 하면 다음 시행때 활용할 수 있을까가 이 정보를 활용하는 방식이고 대부분의 hyperparameter search library가 이 방법을 사용한다.

DMQA 연구실 세미나. Introduction to Hyper-Parameter Optimization (이민재님)

  • Bayesian Optimization : 하나의 하이퍼파라미터 조합으로 성능을 계산하는 시행을 Trial이라고 했을 때, 시행에서 나온 정보를 활용해서 다음 하이퍼파라미터 조합에 적용하는 것 
    • 하지만, 그 때마다 데이터와 하이퍼파라미터를 다 넣어서 학습을 하는 건 연산량이 많이 들기 때문에 새로운 방식을 선택한게 Surrogate Model의 도입이다. ( 데이터와 하이퍼 파라미터를 다 넣는다는 것은 직접 그 복잡한 모델을 대입한다는 의미)
      1. 몇 개 샘플링해서 뽑은 하이퍼 파라미터와 성능 쌍을 가지고 데이터를 빼고 둘과의 관계를 다루는 함수를 학습시킨다.(일종의 근사화)
      2. 이 surrogate model이 결국 최고의 성능을 내기 위한 하이퍼 파라미터 조합을 찾는 문제로 바뀌어짐
      3. 이제 이걸 Gradient Descent방법같이 획득함수를 활용해서 최상의 조합을 찾는 작업을 시행
      4. 그리고 이 결과를 바탕으로 실제 모델에 데이터까지 넣어서 얻은 성능과 하이퍼 파라미터 조합을 활용해서 1번의 surrogate model 업데이트
      5. 3번과 4번 반복하다가 종료 조건이 되면 마무리
  • TPE (Tree-structured Parzen Estimator) : TPE는 Bayesian Optimization의 한 형태로, 비용이 많이 드는 함수의 최적화를 위해 설계되었습니다.
    • 차이는 Surrogate model로 Parzen Window Estimators를 사용합니다.
    • 아래와 같은 방식으로 학습합니다.
      • 초기 단계는 동일하게 무작위 하이퍼파라미터 조합을 평가해서 성능 데이터를 수집합니다.
      • 고성능 샘플에 대해 하나의 확률 모델 A를, 저성능 샘플에 대해 다른 확률모델 B를 구축합니다.
        • 하이퍼파라미터에 따른 확률분포를 모델링한다는게 핵심.
      • Parzen Window Estimator를 사용하여 각 하이퍼 파라미터 조합의 성능 확률을 추정합니다.
      • 이 때 TPE는 A(x)/B(x)의 비율이 높은 영역을 탐색합니다. (저성능일 확률이 낮으면서 고성능일 확률이 높다는 것을 의미)
      • 이후에 동일하게 A,B 모델 업데이트해서 최적의 하이퍼파라미터에 접근합니다.
    • 장점
      • 고차원 공간에서의 효율성: TPE는 고차원 하이퍼파라미터 공간에서도 효과적으로 작동합니다.
      • 계산 효율성: Gaussian Process 기반의 방법에 비해 계산적으로 덜 복잡하며, 더 큰 규모의 문제에 적용할 수 있습니다. (보통 너무 차원이 크면 TPE를 사용하고 Optuna가 TPE를 디폴트로 씀
      • 확장성: 다양한 종류의 하이퍼파라미터(연속형, 이산형 등)에 적용 가능합니다.
  • Evolutionary Search

 

  • Bayesian optimization은 일종의 근사화하는 대리 모델을 만들어서 이를 최적화하는 작업을 했다면, Evolutionary Search는 말 그대로 파라미터 조합 중에 좋은 성능을 보인 파라미터들만 모아서 조합하면서 발전하는 과정을 거친다.
    • Process
      • 초기 집단 생성 : 무작위로 하이퍼파라미터 조합을 선택하여 초기 개체군을 형성
      • 적합도 평가 : 무작위 조합들의 성능을 평가해서 조합간의 우위를 선정한다.
      • 선택 과정 : 높은 적합도를 가진 개체들이 부모 세대가 되도록 하고 이 조합이 선정될 확률이 높게 만든다.
      • 새로운 개체 생성
        • 교차 : 부모개체들이 가진 하이퍼 파라미터를 조합해서 새로운 개체 생성
        • 돌연변이 : 새로 생성된 개체의 하이퍼 파라미터 중 일부에 무작위 변경을 가하는 과정입니다.
      • 자식 세대에 대한 적합도 평가 및 반복
    • Surrogate Model은 없나?
      • 이 부분에 대해서 약간의 혼돈이 있었는데 이해한 바로는 하이퍼파라미터 조합과 성능의 관계에 대한 함수가 surrogate model이라면, 여기서는 성능과의 관계라기보다는 높은 적합도를 가진 집단의 하이퍼 파라미터가 더 잘나오도록 추출하는 모델을 활용하고 있기는 하다.
        1. 토너먼트 선택 (Tournament Selection):
          • 이 방법에서는 먼저 '토너먼트'라는 작은 그룹을 무작위로 선택합니다.
          • 그룹 내의 개체들 중에서 가장 높은 적합도를 가진 개체가 다음 세대의 부모로 선택됩니다.
          • 토너먼트의 크기는 알고리즘의 선택 압력을 조절하는 데 사용될 수 있으며, 크기가 클수록 적합도가 높은 개체가 선택될 확률이 높아집니다.
        2. 룰렛 휠 선택 (Roulette Wheel Selection):
          • 룰렛 휠 선택은 개체의 적합도에 비례하여 선택될 확률을 부여합니다.
          • 즉, 적합도가 높은 개체는 룰렛 휠에서 더 큰 '조각'을 차지하며, 따라서 선택될 확률이 높아집니다.
          • 룰렛을 돌려서 랜덤하게 선택된 '조각'에 해당하는 개체가 다음 세대의 부모로 선택됩니다.
        3. 가우시안 확률 분포 모델
          • N(0,1)로 시작한다.
          • 좋은 성능을 보인 개체들의 하이퍼파라미터 분산과 평균으로 바꿔준다.
          • 이 분포에서 랜덤 추출을 하면 자연스레 우수 집단의 하이퍼파라미터가 나올 확률이 높아진다.

 

References

http://dmqa.korea.ac.kr/activity/seminar/336

https://zephyrus1111.tistory.com/232