콘텐츠로 이동

하이퍼파라미터 최적화 (Hyperparameter Optimization)

난이도: 중급
선수 지식: 교차 검증, 기본 ML 모델 하이퍼파라미터
관련 문서: 학습률 | 경사 하강법 | 과적합과 과소적합 | No Free Lunch

핵심 요약: 모델의 “설정값”(학습률(Learning Rate), 트리 깊이(Tree Depth) 등)을 최적화하는 과정. 하이퍼파라미터(Hyperparameter)는 데이터에서 자동으로 학습되지 않기 때문에 별도의 탐색이 필요하며, Grid Search보다 Random Search가 대부분 우수하고, 베이지안 최적화(Bayesian Optimization)가 가장 효율적이다.


하이퍼파라미터 최적화(Hyperparameter Optimization, HPO)는 모델의 학습 과정을 제어하는 설정값(하이퍼파라미터)의 최적 조합을 찾는 과정이다. 파라미터가 데이터에서 학습되는 것과 달리, 하이퍼파라미터는 사전에 설정해야 한다.

예시:

  • 학습률, 배치 크기, 에폭 수
  • 정규화 강도 (λ\lambda, 드롭아웃 비율)
  • 모델 구조 (레이어 수, 유닛 수, 트리 깊이)
  • 옵티마이저 선택 및 설정

하이퍼파라미터 최적화 분야의 가장 영향력 있는 발견 중 하나는 Bergstra와 Bengio가 2012년에 발표한 “Random Search for Hyper-Parameter Optimization” 논문에서 비롯된다. 이 논문의 핵심 주장은 직관에 반하면서도 명쾌했다: 무작위 탐색(Random Search)이 격자 탐색(Grid Search)보다 낫다.

당시 ML 실무에서 Grid Search는 하이퍼파라미터 튜닝의 사실상 표준이었다. “모든 조합을 체계적으로 시도하면 최선의 설정을 놓치지 않을 것”이라는 믿음이 지배적이었다. 그러나 Bergstra와 Bengio는 핵심적인 관찰을 제시했다: 대부분의 하이퍼파라미터 공간에서, 모델 성능에 실질적으로 영향을 미치는 차원은 소수에 불과하다.

이 “유효 차원(effective dimensionality)” 통찰의 함의는 다음과 같다. 예를 들어 학습률과 드롭아웃 비율 두 개를 탐색한다고 하자. 만약 학습률이 성능의 90%를 결정한다면, 4x4 Grid Search는 학습률의 고유한 값을 4개만 시도하는 반면, 16회의 Random Search는 학습률의 고유한 값을 최대 16개까지 시도할 수 있다. 중요하지 않은 차원에 자원을 낭비하는 대신, 중요한 차원을 훨씬 밀도 높게 탐색하는 것이다.

비유: Grid Search바둑판 위의 모든 교차점을 하나하나 탐색하는 것이다 — 체계적이지만, 바둑판의 해상도(격자 크기)가 고정되어 있어 교차점 사이의 영역은 완전히 무시된다. Random Search다트를 무작위로 던지는 것이다 — 다트가 바둑판 교차점에만 꽂히지 않으므로 더 다양한 지점을 탐색한다. 특히 중요한 축이 어디인지 사전에 모를 때, 다트 방식이 압도적으로 효율적이다.


미리 정의한 파라미터 격자의 모든 조합을 탐색한다.

param_grid = {
'C': [0.1, 1, 10, 100],
'gamma': [0.001, 0.01, 0.1, 1]
}
# 총 4 × 4 = 16 조합
장점단점
단순, 재현 가능기하급수적 비용: O(nk)O(n^k)
격자 내 최적 보장중요하지 않은 파라미터에도 동일 자원
병렬화 용이해상도가 고정
  • 복잡도: O(nk)O(n^k) (kk: 파라미터 수, nn: 각 파라미터의 값 수)

Grid SearchRandom Search가 같은 예산(Budget)에서 어떻게 다른지 비교해 보자.

설정: 학습률(Learning Rate)과 드롭아웃(Dropout) 2개 하이퍼파라미터를 탐색. 총 9회 평가 가능.

방법탐색 방식학습률 고유값드롭아웃 고유값
Grid 3x3[0.001, 0.01, 0.1] x [0.1, 0.3, 0.5]3개3개
Random 9회무작위로 9쌍 샘플링(Sampling)최대 9개최대 9개

만약 성능의 90%를 학습률이 결정한다면? Grid는 학습률을 3가지만 시도하지만, Random은 최대 9가지를 시도한다. 중요하지 않은 드롭아웃 차원(Dimension)에 자원을 낭비하지 않고, 중요한 차원을 3배 더 밀도 높게 탐색하는 것이다. 이것이 Bergstra & Bengio(2012)가 증명한 Random Search의 핵심 이점이다.


파라미터 분포에서 무작위로 샘플링한다.

왜 그리드보다 나은가? (Bergstra & Bengio, 2012)

섹션 제목: “왜 그리드보다 나은가? (Bergstra & Bengio, 2012)”

핵심 통찰: 중요한 하이퍼파라미터는 일부에 불과하다.

  • 그리드 탐색: 중요하지 않은 차원에도 균등하게 배분 —> 중요한 차원의 커버리지 부족
  • 무작위 탐색: 각 차원을 독립적으로 더 다양하게 탐색
그리드 탐색 (4×4) 무작위 탐색 (16회)
│ × × × × │ × ×
│ × × × × │ × ×
│ × × × × │ × ×
│ × × × × │ × × ×
└───────── │ × × ×
중요 파라미터의 │ × × ×
고유값: 4개 └──────────
중요 파라미터의
고유값: ~16개
장점단점
같은 예산으로 더 나은 커버리지과거 결과를 활용하지 않음
병렬화 용이최적 영역을 놓칠 수 있음
사전 지식 불필요

3. 베이지안 최적화 (Bayesian Optimization)

섹션 제목: “3. 베이지안 최적화 (Bayesian Optimization)”

f(하이퍼파라미터)성능f(\text{하이퍼파라미터}) \to \text{성능}을 모델링하는 대리 모델(surrogate model)을 구축하고, 이를 기반으로 다음 탐색 지점을 지능적으로 선택한다.

  1. 초기 랜덤 포인트들로 대리 모델 학습
  2. 획득 함수(acquisition function)로 다음 포인트 선택
  3. 해당 포인트에서 모델을 실제 평가
  4. 대리 모델 업데이트
  5. 반복
모델설명도구
가우시안 프로세스 (GP)불확실성 추정 제공, O(n3)O(n^3)scikit-optimize
TPE (Tree-structured Parzen Estimator)P(paramsscore)P(\text{params}\|\text{score}) 모델링Hyperopt, Optuna
랜덤 포레스트범주형 처리 용이SMAC
함수수식특성
Expected Improvement (EI)E[max(0,f(x)fbest)]E[\max(0, f(x) - f_{\text{best}})]가장 일반적
Upper Confidence Bound (UCB)μ(x)+κσ(x)\mu(x) + \kappa\sigma(x)κ\kappa로 탐험/활용 조절
Probability of Improvement (PI)P(f(x)>fbest)P(f(x) > f_{\text{best}})보수적

획득 함수: 탐험 vs 활용 다이어그램

장점단점
샘플 효율적순차적 (병렬화 어려움)
과거 결과를 활용대리 모델 학습 오버헤드
노이즈가 있는 평가 처리구현 복잡

Successive Halving 기반: 많은 설정을 적은 자원으로 시작하고, 상위만 남겨 자원을 늘린다.

라운드설정 수자원 (에폭)
1811
2273
399
4327
5181
  • nn vs B/nB/n 트레이드오프 (많은 설정 vs 깊은 평가) 해결
  • 여러 bracket으로 다양한 조기 종료 공격성
  • Successive Halving의 비동기 병렬 버전
  • 분산 환경에서 자원 활용 극대화

베이지안 최적화 + Hyperband: 샘플링에는 BO를 사용하고, 조기 종료에는 Hyperband를 사용. 두 장점 결합.


5. 인구 기반 학습 (Population-Based Training, PBT)

섹션 제목: “5. 인구 기반 학습 (Population-Based Training, PBT)”
  1. 여러 모델을 다른 하이퍼파라미터로 동시 학습
  2. 주기적으로:
    • 활용(exploit): 성능이 나쁜 모델을 좋은 모델의 가중치로 교체
    • 탐험(explore): 하이퍼파라미터를 무작위로 변동
  • 학습 중에 하이퍼파라미터를 적응 —> 고정값이 아닌 스케줄 발견
  • 학습률 스케줄, 정규화 강도 스케줄 등을 자동 탐색

방법설명
진화/유전 알고리즘설정의 인구를 진화시킴
다중 충실도 (Multi-fidelity)저비용 근사(데이터 부분집합, 적은 에폭)로 필터링
전이 학습 for HPO유사 태스크의 결과로 워밍 스타트
NAS (Neural Architecture Search)아키텍처 자동 설계 (DARTS, ENAS)

방법평가 횟수순차적?과거 활용?조기 종료?
그리드 탐색기하급수아니오아니오아니오
무작위 탐색고정 예산아니오아니오아니오
베이지안 최적화소수대체로 예기본 아님
Hyperband많은 저비용부분적아니오
BOHB적응적부분적
PBT연속적아니오예 (인구)내재적

상세 비교표 다이어그램

하이퍼파라미터추천 분포이유
학습률로그 균일 (log-uniform)규모가 중요 (0.001 vs 0.01)
정규화 강도로그 균일규모가 중요
드롭아웃 비율균일 (0.0~0.5)범위가 제한적
배치 크기{32, 64, 128, 256}이산적
레이어/유닛 수균일 정수 또는 로그 균일문제 의존
  1. 무작위 탐색으로 영역 파악 (~20-50회)
  2. 유망한 영역에서 베이지안 최적화로 정밀 탐색
  3. 또는 딥러닝이면 Hyperband/ASHA로 효율적 탐색
  4. 최종 모델은 교차 검증으로 확인

상황추천 방법
빠른 프로토타이핑무작위 탐색
고비용 평가 (< 100회)베이지안 최적화
딥러닝 + 조기 종료Hyperband / ASHA
최상의 효율BOHB
파라미터 스케줄 탐색PBT
파라미터 ≤ 3개그리드 탐색도 가능

6개월간 Grid Search를 고수한 팀이 Random Search 2주 만에 더 나은 결과를 얻은 이야기

섹션 제목: “6개월간 Grid Search를 고수한 팀이 Random Search 2주 만에 더 나은 결과를 얻은 이야기”

한 대기업의 ML 엔지니어링 팀은 고객 이탈 예측(churn prediction) 모델의 성능을 개선하기 위해 6개월간 Grid Search 기반 HPO를 수행했다. XGBoost 모델에 대해 학습률, 트리 깊이, 정규화 강도, 최소 리프 샘플 수, 서브샘플 비율 등 5개 하이퍼파라미터를 격자로 탐색했다.

각 파라미터에 5개 값을 설정하면 55=3,1255^5 = 3,125개 조합이 만들어졌고, 5-fold 교차 검증까지 포함하면 총 15,625회의 모델 학습이 필요했다. 팀은 GPU 클러스터를 확보하여 이를 수행했지만, 결과적으로 AUC 0.823에서 0.831로 미미한 개선만 달성했다.

새로 합류한 ML 엔지니어가 Bergstra & Bengio(2012) 논문을 근거로 Random Search + Optuna(베이지안 최적화) 조합을 제안했다. 접근법은 다음과 같았다:

  1. 1단계(1주): Random Search로 200회 무작위 탐색 → 유망한 영역 식별
  2. 2단계(1주): Optuna(TPE)로 유망 영역에서 100회 정밀 탐색

결과: AUC 0.847 — Grid Search 6개월의 결과를 2주 만에 초과했다.

왜 이런 차이가 발생했는가:

  • Grid Search는 5개 파라미터를 균등하게 탐색했지만, 실제로 성능에 큰 영향을 미치는 것은 학습률과 트리 깊이 2개뿐이었다
  • Grid Search에서 학습률의 고유한 값은 5개에 불과했지만, Random Search 200회에서는 학습률의 고유한 값이 200개였다
  • 베이지안 최적화가 이전 결과를 활용하여 유망 영역에 탐색을 집중했다

실무 교훈:

  • 하이퍼파라미터가 3개 이상이면 Grid Search보다 Random Search가 거의 항상 우수하다
  • 2단계 접근(Random Search → 베이지안 최적화)이 가장 효율적인 전략이다
  • 컴퓨팅 자원을 더 많이 쓰는 것보다 탐색 전략을 개선하는 것이 ROI가 높다

1. “그리드 탐색이 가장 신뢰할 수 있다”

섹션 제목: “1. “그리드 탐색이 가장 신뢰할 수 있다””
  • 차원이 많으면 비효율적이고, 무작위 탐색이 같은 예산으로 더 나은 결과를 주는 경우가 많다.

2. “베이지안 최적화가 항상 최선이다”

섹션 제목: “2. “베이지안 최적화가 항상 최선이다””
  • 평가가 저렴하고 조기 종료가 가능하면 Hyperband가 더 효율적. BO는 비용이 높은 평가에 적합.

3. “HPO는 모델 학습 후에만 한다”

섹션 제목: “3. “HPO는 모델 학습 후에만 한다””
  • PBT처럼 학습 중에 하이퍼파라미터를 조정하는 방법도 있으며, 이것이 더 효과적일 수 있다.

4. “더 많은 하이퍼파라미터를 탐색할수록 좋다”

섹션 제목: “4. “더 많은 하이퍼파라미터를 탐색할수록 좋다””
  • 탐색 공간이 커지면 필요한 예산이 기하급수적으로 증가한다. 중요한 파라미터에 집중해야 한다.

5. “학습률은 로그 스케일로 탐색해야 한다”

섹션 제목: “5. “학습률은 로그 스케일로 탐색해야 한다””
  • 맞는 말이다. 하지만 같은 원리로 정규화 강도도 로그 스케일이어야 하며, 이를 간과하는 경우가 많다.


  1. 무작위 탐색이 그리드 탐색보다 좋은 이유는?

    • 중요한 하이퍼파라미터가 일부에 불과할 때, 무작위 탐색이 각 차원을 더 다양하게 탐색. 같은 예산으로 중요 파라미터의 더 많은 값을 시도.
  2. 베이지안 최적화의 탐험-활용 트레이드오프를 설명하시오

    • 탐험: 불확실한 영역 탐색 (정보 수집). 활용: 현재 최선 근처 탐색 (성능 개선). 획득 함수가 이 균형을 조절.
  3. Hyperband를 베이지안 최적화보다 선호하는 경우는?

    • 평가가 저렴하고 조기 종료가 가능할 때 (딥러닝). 많은 설정을 빠르게 시도하고 부적합한 것을 일찍 제거.
  4. 하이퍼파라미터 수가 탐색 전략에 미치는 영향은?

    • 파라미터 수 증가 —> 탐색 공간 기하급수적 증가. 적은 파라미터: 그리드 가능, 많은 파라미터: 무작위/BO/Hyperband 필수.

# === scikit-learn: 그리드 & 무작위 탐색 ===
from sklearn.model_selection import GridSearchCV, RandomizedSearchCV
from scipy.stats import loguniform, uniform
# 그리드 탐색
grid_search = GridSearchCV(
estimator=model,
param_grid={'C': [0.1, 1, 10], 'gamma': [0.01, 0.1, 1]},
cv=5, scoring='accuracy', n_jobs=-1
)
grid_search.fit(X_train, y_train)
# 무작위 탐색 (로그 균일 분포)
random_search = RandomizedSearchCV(
estimator=model,
param_distributions={
'C': loguniform(1e-3, 1e3),
'gamma': loguniform(1e-4, 1e1)
},
n_iter=100, cv=5, scoring='accuracy', n_jobs=-1
)
random_search.fit(X_train, y_train)
# === Optuna: 베이지안 최적화 (TPE) ===
import optuna
def objective(trial):
lr = trial.suggest_float('lr', 1e-5, 1e-1, log=True)
n_layers = trial.suggest_int('n_layers', 1, 5)
dropout = trial.suggest_float('dropout', 0.0, 0.5)
model = build_model(lr=lr, n_layers=n_layers, dropout=dropout)
accuracy = train_and_evaluate(model, X_train, y_train, X_val, y_val)
return accuracy
study = optuna.create_study(direction='maximize')
study.optimize(objective, n_trials=100)
print(f"Best params: {study.best_params}")
print(f"Best accuracy: {study.best_value}")
# Optuna + Pruning (Hyperband 유사)
study = optuna.create_study(
direction='maximize',
pruner=optuna.pruners.HyperbandPruner()
)

영어한국어
Hyperparameter Optimization하이퍼파라미터 최적화
Grid Search그리드 탐색
Random Search무작위 탐색
Bayesian Optimization베이지안 최적화
Surrogate Model대리 모델
Acquisition Function획득 함수
Expected Improvement기대 향상
Successive Halving순차 절반
Population-Based Training인구 기반 학습
Multi-fidelity다중 충실도
Exploration-Exploitation탐험-활용

  • Bergstra & Bengio (2012) - “Random Search for Hyper-Parameter Optimization”
  • Snoek, Larochelle, Adams (2012) - “Practical Bayesian Optimization of Machine Learning Algorithms”
  • Li et al. (2018) - “Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization”
  • Jaderberg et al. (2017) - “Population Based Training of Neural Networks” (PBT)
  • Falkner et al. (2018) - “BOHB: Robust and Efficient Hyperparameter Optimization at Scale”
  • Akiba et al. (2019) - “Optuna: A Next-generation Hyperparameter Optimization Framework”