[ML/DL] Optuna 사용법

오늘은 기계 학습 모델에서 하이퍼파라미터를 조정할 수 있는 오픈 소스 라이브러리인 Optuna를 소개하고자 한다.

 

이전에 사용했던 GridSearchCV 패키지는 시간이 너무 오래걸리고 하이퍼파라미터 값을 직접 지정해야한다는 단점이 존재한다.  Optuna도 파라미터 값을 지정해주어야 하는 것은 맞지만, 조금 더 포괄적인 값을 입력하면 범위 내에서 자동탐색을 통해 최적의 하이퍼파라미터를 도출해준다는 점에서 큰 장점을 가진다. 

 

최적화 메커니즘

 

Optuna의 핵심 기능은 '효율적인 하이퍼파라미터 최적화'에 있다.

 

최적화 과정은 크게 2가지 메커니즘으로 이루어진다.

  1. 트리 기반의 구조화된 파라미터 최적화 (TPE)
  2. 프루닝 메커니즘

 

트리 기반의 구조화된 파라미터 최적화(TPE)는 베이지안 최적화의 일종으로, 이전의 평가 결과를 기반으로 하여 하이퍼파라미터의 새로운 셋을 제안한다. 기존의 랜덤 or 격자(grid) 검색 방법보다 효율적으로 공간을 탐색한다. TPE는 모델의 성능을 가장 잘 향상시킬 것으로 예상되는 하이퍼파라미터의 조합에 더 많은 자원을 할당한다.

 

프루닝 메커니즘은 계산 자원의 낭비를 줄이기 위해 비효율적인 시도를 조기에 중단시키는 기술이다. 예를 들어, 특정 하이퍼파라미터 셋으로 훈련 중인 모델이 중간 평가에서 기대치에 미치지 못할 경우, 추가적인 훈련 없이 해당 트라이얼을 중단시킨다. 이는 전체 최적화 프로세스의 속도를 높이고 불필요한 계산 자원의 소모를 방지한다.

 

이러한 방식으로 사용자가 목적 함수를 정의하기만 하면, Optuna가 자동으로 최적의 하이퍼파라미터를 탐색하고 평가한다.

 

GridSearchCV vs RandomSearchCV vs Optuna

 

특성/도구 GridSearchCV RandomSearchCV Optuna
검색 방식 격자 검색 랜덤 검색 트리 기반의 구조화된 파라미터 최적화
최적화 속도 느림 중간 빠름
자원 활용 효율 낮음 중간 높음
프루닝 기능 없음 없음 있음
사용자 정의 최적화 제한적 유연함 매우 유연함
시각화 도구 기본적인 시각화 지원 기본적인 시각화 지원 시각화 도구 제공

 

Code Review

 

아래 링크를 참조해주세요.

https://github.com/BARAM1NG/Deep_Learning_Hub/tree/main/Optimization

 


Reference

https://github.com/optuna/optuna

 

GitHub - optuna/optuna: A hyperparameter optimization framework

A hyperparameter optimization framework. Contribute to optuna/optuna development by creating an account on GitHub.

github.com

https://optuna.org/

 

Optuna - A hyperparameter optimization framework

Optuna is an automatic hyperparameter optimization software framework, particularly designed for machine learning. It features an imperative, define-by-run style user API.

optuna.org

https://hyunicecream.tistory.com/75

 

[머신러닝] Optuna 모델 최적화 - 하이퍼파라미터 튜닝 사용법

하이퍼파라미터 튜닝 방법 중 하나인 Optuna에 대해 소개하고자 합니다. Optuna에 대한 설명 및 기존의 GridSearchCV, RandomSearchCV와 어떤점이 다른지 알아보겠습니다. 1. Optuna란 무엇인가?Optuna는 기계

hyunicecream.tistory.com