Hyperparameter
하이퍼파라미터
학습 전 설정하는 파라미터. 학습률, 배치 크기 등. 튜닝으로 최적화.
하이퍼파라미터
학습 전 설정하는 파라미터. 학습률, 배치 크기 등. 튜닝으로 최적화.
하이퍼파라미터(Hyperparameter)는 모델이 학습을 시작하기 전에 사람이 직접 설정해야 하는 값입니다. 학습률(Learning Rate), 배치 크기(Batch Size), 에폭(Epochs) 수, 드롭아웃 비율 등이 대표적인 예입니다. 모델의 가중치(Weight)처럼 학습 과정에서 자동으로 업데이트되는 파라미터와 구분됩니다.
하이퍼파라미터 개념은 기계학습 초기부터 존재했지만, 딥러닝의 발전으로 그 중요성이 크게 부각되었습니다. 특히 GPT, BERT 같은 대규모 모델에서는 수십 개의 하이퍼파라미터가 성능에 직접적인 영향을 미칩니다.
하이퍼파라미터 튜닝은 Grid Search(모든 조합 탐색), Random Search(무작위 탐색), Bayesian Optimization(베이지안 최적화) 등의 방법으로 수행됩니다. 최근에는 Optuna, Ray Tune 같은 AutoML 도구가 자동 탐색을 지원합니다.
실무에서 학습률은 0.001~0.1 사이, 배치 크기는 8~32 사이가 일반적인 시작점입니다. LLM 파인튜닝 시에는 learning rate multiplier 0.02~0.2 범위가 권장되며, 배치 크기가 클수록 학습률도 함께 높여야 합니다.
import optuna
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
from sklearn.datasets import load_iris
# Optuna를 활용한 하이퍼파라미터 자동 튜닝
def objective(trial):
# 탐색할 하이퍼파라미터 정의
n_estimators = trial.suggest_int('n_estimators', 10, 200)
max_depth = trial.suggest_int('max_depth', 2, 32)
min_samples_split = trial.suggest_float('min_samples_split', 0.1, 1.0)
# 모델 생성 및 학습
clf = RandomForestClassifier(
n_estimators=n_estimators,
max_depth=max_depth,
min_samples_split=min_samples_split,
random_state=42
)
# 교차 검증으로 성능 평가
X, y = load_iris(return_X_y=True)
score = cross_val_score(clf, X, y, cv=5).mean()
return score
# 100회 시도로 최적 하이퍼파라미터 탐색
study = optuna.create_study(direction='maximize')
study.optimize(objective, n_trials=100)
print(f"최적 하이퍼파라미터: {study.best_params}")
print(f"최고 정확도: {study.best_value:.4f}")
"학습률을 0.001로 시작했는데 수렴이 너무 느려서 0.01로 올렸더니 3배 빠르게 수렴했습니다. 배치 크기는 GPU 메모리 고려해서 32로 설정했고요."
"하이퍼파라미터는 학습 전에 사람이 설정하는 값이고, 파라미터는 학습 중에 모델이 스스로 업데이트하는 값입니다. Optuna로 Bayesian Optimization을 적용하면 Grid Search보다 효율적으로 최적값을 찾을 수 있습니다."
"배치 크기를 키우면 학습 속도는 빨라지지만 일반화 성능이 떨어질 수 있어요. Learning Rate Warmup이나 Cosine Annealing 스케줄러를 함께 적용하는 게 좋습니다."
학습률이 너무 높으면 발산(diverge)하거나 local minima를 건너뛰어 최적점을 놓칩니다. 항상 loss 그래프를 모니터링하세요.
배치 크기가 너무 크면 gradient 노이즈가 줄어 일반화 성능이 저하됩니다. GPU 최적화를 위해 8의 배수(8, 16, 32)를 권장합니다.
초기에는 큰 학습률로 빠르게 수렴하고, 후반에는 줄여서 정밀 조정하는 Cosine Annealing이나 Step Decay를 적용하세요.