13. Expensive optimization — 평가가 비쌀 때의 최적화
// CORE 7/7— DOE, Latin Hypercube Sampling, surrogate modeling, surrogate-based optimization
목적함수 평가가 싸면 많은 반복을 돌릴 수 있습니다. 하지만 simulation, 실험, 대형 모델 추론처럼 평가가 비싸면 “어디를 평가할 것인가” 자체가 최적화의 핵심이 됩니다.
왜 expensive optimization인가
다음 상황에서는 gradient descent를 그대로 쓰기 어렵습니다.
- objective evaluation이 오래 걸림
- gradient를 얻기 어렵거나 불가능
- 실험 비용이 큼
- noise가 있음
- 제약 위반이 위험하거나 비쌈
이때 목표는 적은 evaluation으로 좋은 해를 찾는 것입니다.
DOE
DOE는 Design of Experiments입니다. 모델을 만들거나 탐색을 시작하기 전에 실험점을 계획적으로 고릅니다.
나쁜 DOE는 특정 영역에 sample이 몰려 surrogate가 편향됩니다. 좋은 DOE는 설계공간을 균형 있게 덮고, 중요한 상호작용을 놓치지 않게 합니다.
Latin Hypercube Sampling
Latin Hypercube Sampling은 각 변수 축을 여러 구간으로 나눈 뒤, 각 구간이 한 번씩 쓰이도록 sample을 배치하는 방법입니다.
직관적으로는 다음 요구를 만족합니다.
- 각 변수의 범위를 골고루 본다.
- full grid보다 훨씬 적은 점을 쓴다.
- 초기 surrogate 학습에 쓸 데이터를 만든다.
full factorial design은 차원이 커지면 sample 수가 폭발합니다. LHS는 그보다 적은 점으로 공간을 넓게 훑는 절충안입니다.
Surrogate Modeling
surrogate model은 비싼 원래 함수 를 싼 근사 함수 로 대체합니다.
자주 쓰는 surrogate는 다음과 같습니다.
| surrogate | 특징 |
|---|---|
| polynomial response surface | 해석 쉽고 빠름 |
| radial basis function | smooth interpolation에 유용 |
| Gaussian process | uncertainty 추정 가능 |
| random forest | 비선형성과 interaction 처리 |
| neural network | 데이터가 많을 때 표현력 큼 |
surrogate는 빠르지만 틀릴 수 있습니다. 따라서 exploitation과 exploration의 균형이 중요합니다.
Surrogate-based Optimization
surrogate-based optimization은 surrogate를 학습하고, 그 위에서 다음 평가점을 고른 뒤, 실제 함수를 평가해 surrogate를 갱신하는 loop입니다.
전형적 흐름:
- DOE로 초기 sample을 만든다.
- 실제 expensive function을 평가한다.
- surrogate model을 학습한다.
- acquisition 또는 infill criterion으로 다음 점을 고른다.
- 실제 함수를 평가해 데이터에 추가한다.
- 예산이 끝날 때까지 반복한다.
Bayesian optimization은 Gaussian process surrogate와 acquisition function을 쓰는 대표적인 surrogate-based optimization입니다.
읽을 때의 핵심 질문
- evaluation budget은 몇 번인가?
- noise가 있는가?
- constraint도 expensive한가?
- surrogate uncertainty를 사용할 수 있는가?
- global search가 중요한가, local refinement가 중요한가?
전체 시리즈 요약
최적화는 다음 순서로 축약할 수 있습니다.
- 문제를 변수, 목적함수, 제약으로 정식화한다.
- 미분과 선형대수로 국소 구조를 읽는다.
- 최적성 조건으로 멈출 기준을 세운다.
- 비용과 구조에 맞는 알고리즘을 고른다.
- 평가가 비싸면 DOE와 surrogate로 평가 전략 자체를 최적화한다.
처음으로 돌아가기: Optimization index