07. 문제 정식화 — 변수, 목적함수, 제약, feasible region
// CORE 1/7— decision variables, objective function, constraints, feasible region
최적화 문제는 알고리즘으로 시작하지 않습니다. 먼저 문제를 정확히 써야 합니다. 정식화가 잘못되면 빠른 알고리즘은 잘못된 답에 더 빨리 도착할 뿐입니다.
표준 형태
가장 기본적인 최적화 문제는 다음처럼 씁니다.
이 식 하나에 네 가지 구성요소가 들어 있습니다.
Decision variables
decision variables는 우리가 직접 고를 수 있는 값입니다. 보통 로 씁니다.
예시:
- 모델 parameter
- 설계 치수
- 생산량
- 경로의 waypoint
- 실험 조건
좋은 변수는 “바꿀 수 있는 것”이어야 합니다. 날씨나 재료 물성처럼 직접 고를 수 없는 값은 변수보다 parameter나 uncertainty로 두는 것이 자연스럽습니다.
Objective function
objective function은 무엇을 최소화하거나 최대화할지 정의합니다.
최적화 알고리즘은 scalar objective를 비교해야 하므로, 여러 성능 지표가 있으면 하나의 숫자로 합쳐야 합니다.
예시:
여기서 는 비용과 오차의 trade-off를 조정합니다.
Constraints
constraints는 반드시 만족해야 하는 조건입니다.
부등식 제약:
등식 제약:
box constraint처럼 변수 범위를 직접 제한할 수도 있습니다.
제약은 “좋으면 좋은 것”이 아니라 “어기면 안 되는 것”입니다. 목적함수와 제약을 섞으면 문제의 의미가 바뀝니다.
Feasible region
feasible region은 모든 제약을 만족하는 후보들의 집합입니다.
최적화는 결국 안에서 가 가장 좋은 점을 찾는 일입니다.
예시: 최소제곱 회귀
데이터 가 있을 때 선형모델 를 맞추는 문제는 다음과 같습니다.
- decision variable: parameter vector
- objective function: squared error sum
- constraints: 없음
- feasible region: 전체
regularization을 넣으면 objective가 바뀝니다.
정식화 체크리스트
- 내가 실제로 조정할 수 있는 것은 무엇인가?
- 좋고 나쁨을 scalar로 비교할 수 있는가?
- 절대 어기면 안 되는 조건은 무엇인가?
- feasible region이 비어 있지는 않은가?
- objective와 constraints가 같은 단위나 적절한 스케일을 갖는가?
다음: 수학적 기반