1 분 소요

Hyperparameter 연구중…!!!

Hyperparameter vs. Parameter

  Hyperparameter Parameter
설명 초매개변수
모델 학습 과정에 반영되는 값
학습 시작 전에 미리 조정 매개변수
매개변수
모델 내부에서 결정되는 변수
데이터로부터 학습 또는 예측되는 값
예시 학습률
손실 함수
배치 사이즈
정규분포의 평균, 표준편차
선형 회귀 계수
가중치, 편향
직접 조정 가능 O X

Hyperparameter의 종류

  • 학습률
  • 은닉층 개수
  • 배치 사이즈
  • 모멘텀
  • 에폭 횟수
  • 손실 함수 종류
  • knn의 k값

이외에도 SVM의 C와 감마, 랜덤포레스트의 가지 개수 등 모델에서 우리가 직접 설정해야 하는 변수들을 통칭해 ‘Hyperparameter’라고 한다.

Hyperparameter 튜닝의 종류

  • Manual Search
  • Grid Search
  • Random Search
  • Bayesian Optimization
  • Non-Probabilistic
  • Evolutionary Optimization
  • Gradient-based Optimization
  • Early Stopping

이 중 manual을 제외한 나머지 방법을 ‘automated hyperparameter selection’이라 부른다.

Optuna

https://optuna.org/

Optuna란 Hyperparameter 최적화 태스크를 자동화해주는 프레임워크로, 다음과 같은 장점이 있다.

  • 거의 모든 ML/DL 프레임워크에서 사용 가능한 넓은 범용성을 가지고 있다.
  • 간단하고 빠르다.
  • 최신 동향의 다양한 최적화 알고리즘을 갖추고 있다.
  • 병렬 처리가 가능하다.
  • 간단한 메소드로 시각화가 가능하다.

이러한 이유로 Hyperparameter 튜닝 자동화 프레임워크인 HyperOpt와 비교했을 때 비교적 많이 쓰이고 있다.

Optuna를 이해하기 위해서는 다음의 용어에 익숙해져야 한다.

  • Study: 목적 함수에 기반한 최적화
  • Trial: 목적함수 시행

쉽게 말해 study는 최적화를 하는 과정이고, trial은 다양한 조합으로 목적함수를 시행하는 횟수를 뜻한다.

Study의 목적은 여러 번의 trial을 거쳐 최적의 Hyperparameter 조합을 찾는 것이라고 할 수 있겠다.

HyperOpt

https://hyperopt.github.io/hyperopt/

HyperOpt는 베이지안 최적화의 접근 방식을 취한다.

베이시안 최적화는 objective function(목적 함수)를 최대/최소로 하는 최적해를 찾는 기법이다.

목적함수와 Hyperparameter의 Pair를 대상으로 Surrogate Model을 만들어 평가하면서 순차적으로 업데이트 하면서 최적의 조합을 찾아낸다.

HyperOpt는 자동화된 Hyperparameter 튜닝 프레임워크로서, fmin()이라는 함수 안에는 3가지의 파라미터가 있다:

  • Objective Function: 최소화할 손실 함수
  • Domain Space: 탐색 범위. 베이지안 최적화에서는 이 범위가 각 Hyperparameter에 대해 통계 분포를 만들어낸다.
  • Optimization Algorithm : 최적의 조합을 찾기 위한 알고리즘

참조

https://neptune.ai/blog/optuna-vs-hyperopt

https://ichi.pro/ko/hyperopt-beijian-choejeoghwaleul-giban-eulo-han-haipeo-palamiteo-tyuning-140338828128041

https://velog.io/@emseoyk/%ED%95%98%EC%9D%B4%ED%8D%BC%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0-%ED%8A%9C%EB%8B%9D

https://shinminyong.tistory.com/37

댓글남기기