# Optuna에서의 CMA-ES: 하이퍼파라미터 최적화를 위한 진화 전략의 단계별 분석
CMA-ES 알고리즘은 미분 불필요 최적화 방법으로, 복잡하고 다중극이거나 노이즈가 있는 검색 공간에서 하이퍼파라미터 튜닝 작업을 효과적으로 해결합니다. 그래디언트 기반 접근법과 달리 목적 함수가 미분 가능할 필요가 없으며 국부 최소값에 강건합니다. 이 글에서는 2D Rosenbrock 함수를 예로 들어 알고리즘 작동 방식을 분석하며, 단계 크기와 검색 방향이 어떻게 적응하는지 명확히 보여줍니다.
초기화: 초기 검색 조건
CMA-ES를 시작하기 전에 세 가지 핵심 매개변수를 설정해야 합니다:
- 초기 평균 (m) — 검색 공간에서의 시작점 좌표. 우리 예시에서는 (0, -1).
- 공분산 행렬 (C) — 검색 영역의 모양과 방향을 정의합니다. 초기에는 단위 행렬로, 중심 주위에 원형 대칭을 만듭니다.
- 전역 스텝 (σ) — 검색 규모. 0.8로 설정하며, 95% 확률로 점이 내부에 떨어지는 신뢰 타원 반경 ≈1.96에 해당합니다.
이 매개변수들은 후보를 생성하는 초기 정규 분포를 형성합니다. 중요한 점: 시작점이 최적점에서 멀리 떨어져 있어도 진화 메커니즘 덕분에 알고리즘이 적응할 수 있습니다.
후보 생성 및 평가
각 반복에서 λ개의 후보(예시에서 15개)를 다음 공식으로 생성합니다:
x_k ~ m + σ · N(0, C)
여기서 N(0, C)는 평균 0, 공분산 행렬 C를 가진 다변량 정규 분포입니다. 각 후보는 모델에 하이퍼파라미터 세트를 입력해 목적 함수(예: 손실)를 평가합니다. 함수 값을 계산한 후, μ개의 최상 후보(예시에서 7개)를 선택해 분포 업데이트의 기반으로 합니다.
가중 평균을 통한 검색 중심 업데이트
새 분포의 중심은 최상 점들의 가중 합으로 계산됩니다:
m_new = Σ w_i · x_i
가중치 w_i는 로그 스케일로 계산됩니다:
w_i = [ln((λ+1)/2) - ln(i)] / Σ[ln((λ+1)/2) - ln(j)]
이로 인해 최상 후보들이 지수적으로 더 큰 기여를 합니다. 예를 들어 첫 번째 점의 가중치가 일곱 번째보다 몇 배 큽니다. 이 접근은 "자연 선택"을 모방합니다: 성공적인 솔루션이 다음 세대에 더 강한 영향을 미칩니다.
검색 모양과 규모 적응
CMA-ES의 핵심 장점은 목적 함수 토폴로지에 대한 동적 적응입니다. 이는 두 메커니즘으로 달성됩니다:
공분산 행렬 업데이트
업데이트 공식:
C_new = (1 - c_μ) · C_old + c_μ · C_μ
여기서 C_μ는 이전 중심 대비 최상 점들의 정규화된 오프셋으로 구성된 공분산 행렬입니다. 매개변수 c_μ(학습률, 예: 0.9)는 과거 데이터와 새 데이터 간 균형을 제어합니다. 최상 점들이 특정 방향(예: Rosenbrock 함수의 "계곡")을 따라 정렬되면 C 행렬이 검색 영역을 그 방향으로 길쭉한 타원으로 변형시켜 수렴을 가속합니다.
전역 스텝 (σ) 조정
스텝은 다음 공식으로 업데이트됩니다:
σ_new = σ_old · exp( (c_σ / d_σ) · (||p_σ|| / E[||N(0,I)||] - 1) )
여기:
p_σ— 여러 반복 동안 중심 이동 방향을 누적하는 진화 경로.E[||N(0,I)||]— 무작위 스텝의 기준 길이(n차원 공간에서 ≈√n).c_σ,d_σ— 학습률과 감쇠 매개변수.
노름 ||p_σ||가 기준을 초과하면 한 방향으로 일관된 이동을 나타내어 스텝이 증가합니다. 그 반대면 이동이 불규칙해 스텝이 줄어들어 위치를 세밀하게 조정합니다.
머신러닝 실무에서의 CMA-ES 장점과 한계
CMA-ES는 다음 시나리오에서 특히 유용합니다:
- 미분 불가능하거나 노이즈 있거나 불연속적인 목적 함수.
- 많은 국부 최소값이 있는 검색 공간.
- 민감도가 다른 하이퍼파라미터(예: learning_rate 대 batch_size).
그러나 한계도 있습니다:
- 차원 증가에 따른 계산 복잡도(O(n²), C 저장 때문).
- 부드러운 함수에서 TPE보다 반복 횟수 더 필요.
- 매우 작은 평가 예산(< 20)에서 비효율적.
Optuna 사용 권장사항:
- 5개 이상 하이퍼파라미터나 복잡한 지형 작업에
CmaEsSampler사용. - 멈췄을 때 σ 증가와 함께 자동 재시작 위해
restart_strategy='ipop'설정. - 이산 매개변수에는
CategoricalCmaEsSampler사용. - 항상 TPE와 RandomSearch와 검증 데이터셋에서 비교.
핵심 포인트
- CMA-ES는 그래디언트 사용 안 함 — 어떤 블랙박스든 작동.
- 공분산 행렬 적응으로 목적 함수 "계곡"을 따라 효율적 진행.
- 동적 스텝 크기로 조기 수렴 방지하고 최종 세밀화 가속.
- 중대형 반복 횟수(>50)와 고차원 공간에서 빛남.
- Optuna에서 샘플러만 교체하면 됨 — 모델 코드 변경 불필요.
이 알고리즘은 표준 방법(예: 그리드 서치나 베이지안 최적화)이 실패하는 작업에서 특히 가치 있습니다: 불안정한 메트릭, 복잡한 매개변수 상호작용, 부드러움 부족. 진화적 성격 덕분에 실제 "혼란스러운" 머신러닝 문제를 다루는 연구자들에게 강건하고 다재다능한 도구입니다.
— Editorial Team
아직 댓글이 없습니다.