본문 바로가기
AI & CS 지식/메타러닝

[메타러닝] 7. Hyperparameter Optimization

by rahites 2025. 2. 2.

딥러닝 모델을 돌리다 보면 우리는 하이퍼파라미터를 어떻게 설정해야 할지 고민을 해야하는 상황에 맞닥뜨린다. 이 때 최적의 하이퍼파라미터를 설정하는 방법을 Hyperparameter Optimization이라고 하며 일반적으로 Hyperparameter Optimization 방법에는 2가지 종류가 존재한다.

 

  특징 예시
Configuration 하이퍼파라미터가 고정되어 사용 Random Search, Grid Search, Succesive-halving, Hyperband, Bayesian Optimization
Schedule 학습 과정동안 하이퍼파라미터가 변경될 수 있음 Population-based training, Hypergradient

 

1. Grid Search

: 하이퍼 파라미터의 주어진 조합을 모두 탐색하는 방법

 

2. Random Search

: 무작위로 하이퍼파라미터 조합을 선택하여 탐색하는 방법

 

3. Bayesian Optimization

: 기존 탐색 결과를 학습하여 더 유망한 지점을 선택적으로 탐색하는 방법

확률 모델(Surrogate Model)과 탐색 전략(Acquisition Function)을 활용하여 최적의 하이퍼파라미터를 찾는 방법으로 각각의 역할은 다음과 같다.

- Surrogate Model: 지금까지 조사된 Input 함숫값을 가지고 미지의 목적함수에 대해 추정(일반적으로 Gaussian Process를 활용)

- Acquisition Function: 다음에 올 하이퍼파라미터를 선택하는 전략으로 Expected Improvement (EI), Upper Confidence Bound (UCB), Probability of Improvement (PI) 등의 기법이 있지만 대표적인 EI 기법을 기준으로 설명 → 현재까지의 추정을 바탕으로 최적해에 가까운 다음 $x_{t+1}$를 추천

Gaussian Process
: 어떤 함수의 값이 특정한 가우시안 분포를 따른다는 가정하에 함수 자체를 예측하는 방법

 

EI 기법은 Exploration과 Exploitation을 활용하는데 Exploration은 아직 탐색하지 않은 영역을 적극적으로 탐색하는 전략이며, Exploitation은 지금까지 가장 성능이 좋았던 부분을 집중적으로 탐색하는 전략이다. 두 방법은 모두 장단점을 가지는 Trade-Off 관계이기에 이를 균형있게 탐색할 수 있도록 파라미터를 설정하는 것이 중요하다. 

  장점 단점
Exploration Global Optimum을 찾을 가능성이 높다 불필요한 탐색이 많아져 학습이 오래 걸릴 수 있다
Exploitation 빠르게 좋은 성능을 얻을 수 있다 Local Minimum에 빠질 가능성이 있다

 

4. Evolutionary Strategy

: 적자생존 원리에 기반하여 최적의 파라미터를 찾아내는 기법

(1) 랜덤하게 여러 하이퍼파라미터 조합을 가지고 평가하여 좋은 조합을 찾아냄

(2) 선택된 조합을 가지고 Mutation, Crossover를 통해 연산을 적용하여 새로운 조합을 찾아냄

(3) 위 과정을 반복하며 최적의 조합을 찾아냄

이 때 Mutation은 하이퍼파라미터에 Gaussian Noise를 주는 형태로 주로 이루어지고 Crossover는 잘 이루어지지 않는다.

 

5. Population Based Training(PBT)

: Evolutionary Algorithm과 Gradient-based Optimization을 결합한 방식. 학습 도중에 하이퍼파라미터를 수정해나가며 최적해를 찾아나가는 방식.

(1) 초기 하이퍼파라미터 조합(Population)을 생성

(2) 모든 모델을 Parallel하게 학습하며 일정 주기마다 평가를 진행

(3) 성능이 낮은 Population들은 성능이 높은 Population을 Clone하거나 Mutation

이 3번 방법 덕분에 성능이 낮은 조합을은 버리고 성능이 좋은 조합에 대해 Exploitation을 할 수 있네

(4) 위 과정을 반복하며 최적의 조합을 찾아냄

 

지금까지 설명한 방법들은 성능은 좋지만 고비용의 계산이 필요하다는 단점이 있다. 따라서 Low-fidelity를 가진 근사값을 활용하여 적은 계산량으로 빠르게 학습할 수 있는 Multi-Fidelity Optimization 방법론이 등장하였다. 많은 계산량을 가진 High-fidelity 값과 적은 계산량을 가진 Low-fidelity 값을 모두 활용하기 때문에 위와 같이 이름붙은 것 같다.

 

6. Successiv-Halving(SHA)

: 모든 후보를 끝까지 학습하는 것은 비효율적이기에 초반에 많은 후보를 학습하고, 성능이 낮은 것들을 조기에 제거하여 연산 비용을 절감하는 방법

- 처음에 여러개의 하이퍼파라미터 조합을 선택하여 적은 Epoch로 빠르게 학습하고 성능을 확인, 일정 주기마다 성능이 낮은 하위 절반의 조합을 제거한다.

- 남은 상위의 조합들만 더 많은 리소스를 활용하여 학습해 나가며 최종적으로 가장 성능이 좋은 조합을 찾는다.

- 하지만 SHA 방법은 절반을 날리더라도 많은 케이스를 학습하기 때문에 오래걸린다는 단점이 있다.

 

7. Hyperband

: SHA의 단점을 극복하기위해 등장한 방식으로 여러 개의 SHA를 병렬로 실행하여, 리소스 할당을 최적화하는 방법

- 기존 SHA에서는 자원 할당이 고정적으로 주어져(ex. Epoch) 필요 없는 조합을 쓸데 없이 많이 돌리거나, 점점 성능이 더 좋아질 가능성이 있는 조합을 제거할 가능성이 존재한다.

- 따라서 여러 개의 SHA를 동시에 실행하고, 각 SHA가 서로 다른 자원 할당(Different N)을 사용하도록 하여 일부 SHA는 적은 리소스로 많은 후보를 평가, 다른 SHA는 적은 후보에 많은 리소스를 할당

- 예를 들어, 한 SHA는 많은 후보를 만들고 적은 Epoch로 학습하고, 다른 SHA는 적은 후보를 만들고 많은 Epoch로 학습하여 평가하는 방식이다.

- 말만 들으면 Hyperband가 SHA보다 학습 시간이 더 오래 걸릴 것 같지만, 그만큼 효율적으로 자원 관리를 실행하여 불필요한 연산을 줄이고 더 적은 계산으로 최적의 하이퍼파라미터를 찾을 가능성이 높다.

참고 논문(Hyperband)

https://arxiv.org/abs/1603.06560

 

Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization

Performance of machine learning algorithms depends critically on identifying a good set of hyperparameters. While recent approaches use Bayesian optimization to adaptively select configurations, we focus on speeding up random search through adaptive resour

arxiv.org

 

8. BOHB(Bayesian Optimization + Hyperband)

: Hyperband의 빠른 탐색 속도와 Bayesian Optimization의 스마트한 탐색 방식을 결합하여 더 적은 연산으로 최적의 조합을 탐색하는 방법

- 초반 탐색이 비효율적이지만 데이터가 적을 때 효율적인 Baysian Optimization 방식과, 빠르게 최적의 하이퍼파라미터를 찾아내는 Hyperband 방식을 결합하여 초반에는 Hyperband, 이후에는 Bayesian Optimization을 사용해 빠르면서도 효율적으로 최적화를 진행

 

9. Hypergradient

: 하이퍼파라미터를 자동으로 최적화하기 위해, 하이퍼파라미터의 변화에 따른 그래디언트를 계산하여 업데이트하는 기법

- 기존 방식들이 하이퍼파라미터를 샘플링하고 평가하는 방식이었다면, Hypergradient는 하이퍼파라미터 자체를 Gradient Descent로 최적화를 진행한다. 즉, 하이퍼파라미터 자체를 학습한다는 것.


본 개념 정리 글은 제가 수업을 듣고 이해한 내용과 인터넷 검색을 통해 찾은 정보를 바탕으로 작성되었습니다. 잘못된 개념이 있다면 언제든 알려주시면 감사하겠습니다.

'AI & CS 지식 > 메타러닝' 카테고리의 다른 글

[메타러닝] 8. Continual Learning  (0) 2025.02.07
[메타러닝] 6. AutoAugment  (0) 2024.12.31
[메타러닝] 5. NAS  (0) 2024.12.22

댓글