Warm Start
- 다른 이름: warm starting
- 카테고리: Planning & manipulation › Trajectory optimisation
- 태그: optimization, model-predictive-control, trajectory-optimization, numerical-methods, real-time
반복 솔버를 처음부터가 아니라 흔히 이전 해나 관련 해인 좋은 추정값으로 초기화하는 것. 풀이 시간을 줄이고 솔버를 쓸모 있는 국소 최적해 쪽으로 이끈다.
정의
웜 스타트(warm start)는 반복 최적화나 수치 솔버를 기본값이나 임의의 시작점이 아니라 관련된 문제의 정보로 초기화하는 것이며, 기본값이나 임의의 시작점에서 출발하는 것은 콜드 스타트(cold start)라고 한다. 이 정보는 원시 변수(궤적 같은 결정 변수 자체), 쌍대 변수나 라그랑주 승수, 부등식 제약의 활성 집합, 또는 준뉴턴 헤세 행렬 같은 근사가 될 수 있다. 비선형 로봇공학 문제는 보통 국소 최적해가 많기 때문에, 시작점은 솔버가 얼마나 빨리 수렴하는지뿐 아니라 어떤 해를 찾는지에도 영향을 준다.
가장 흔한 용도는 모델 예측 제어다. 매 제어 주기마다 제어기는 이전 구간과 거의 완전히 겹치는 구간에 걸친 최적화를 풀므로, 한 시간 스텝 앞으로 밀고 마지막 스텝을 늘린 이전 해는 이미 새 최적해에 가깝다. 이렇게 웜 스타트하면 솔버가 주기마다 몇 번의 반복만으로 끝나는 경우가 많으며, Diehl과 동료들의 실시간 반복(real-time iteration) 방식은 여기서 더 나아가 주기마다 순차 이차 계획법 반복을 단 한 번만 수행한다. MPPI와 교차 엔트로피 방법 같은 샘플링 기반 제어기는 이전의 평균 제어 시퀀스를 재사용하는 방식으로 웜 스타트한다.
웜 스타트가 얼마나 도움이 되는지는 솔버에 따라 다르다. qpOASES에 쓰인 것 같은 활성 집합 방법과, ADMM 솔버인 OSQP 같은 1차 방법은 가까운 원시 및 쌍대 추정이나 올바른 활성 집합이 있으면 빠르게 끝낼 수 있으므로 큰 이득을 본다. 내점법은 웜 스타트하기가 더 어렵다. 반복점이 실현 가능 영역의 엄밀한 내부에, 이전 해가 보통 놓이는 제약 경계에서 떨어져 있어야 하기 때문이다. 오프라인 궤적 최적화에서 웜 스타트는 더 단순한 모델, 더 거친 이산화, 문제의 완화된 버전, 저장된 해 라이브러리, 또는 좋은 초기 추정을 예측하도록 학습된 신경망에서 올 수 있다. 물리 엔진도 마찬가지로 반복적 접촉 솔버를 이전 스텝의 충격량으로 웜 스타트한다. 기계 학습에서는 이 용어가 이전에 학습된 모델로부터 학습을 초기화하는 것을 가리키기도 한다.
중요한 이유
실시간 최적화 기반 제어기는 수십에서 수천 헤르츠로 동작하며, 대개 각 풀이가 답 가까이에서 시작하기 때문에 그 속도를 맞출 수 있다. 오프라인 계획에서는 좋은 웜 스타트가 합리적인 동작으로 수렴하는 솔버와, 실패하거나 나쁜 국소 최솟값을 찾는 솔버를 가르는 경우가 많다.
주요 응용
- 다리형 로봇, 드론, 매니퓰레이터의 실시간 모델 예측 제어
- 접촉 암시적 궤적 최적화와 비선형 궤적 최적화
- 전신 제어에서 서로 관련된 이차 계획 문제의 연속 풀이
- 물리 엔진의 반복적 접촉 솔버
- 빠른 모션 플래닝을 위한 학습된 초기 추정
실제 사례
다리형 로봇이 100 Hz로 비선형 모델 예측 제어(MPC)를 실행한다. 각 풀이가 끝나면 제어기는 최적 상태 궤적과 입력 궤적, 그리고 승수를 저장한다. 다음 주기에는 이것들을 한 스텝 밀고, 마지막 스텝을 복사해 구간 끝을 채우고, 첫 상태를 새로 측정한 상태로 바꾼 뒤, 그 결과를 초기 추정값으로 솔버에 넘긴다. 그러면 전형적인 풀이가 스무 번이 아니라 두세 번의 반복으로 끝난다. 엔지니어는 웜 스타트가 실패하는 경우도 처리한다. 크게 밀리거나 걸음새가 바뀐 뒤에는 밀어 둔 추정값이 새 최적해에서 멀기 때문에, 제어기는 그 걸음새에 대해 저장해 둔 공칭 궤적으로 돌아가고 그 주기에는 반복을 더 허용한다.
흔한 오해
- 웜 스타트는 속도만 높인다 — 비볼록 문제에서는 어떤 국소 최적해를 찾을지도 정하므로, 나쁜 웜 스타트는 솔버를 나쁜 해에 묶어 둘 수 있다
- 어떤 솔버든 똑같이 이득을 본다 — 활성 집합 방법과 1차 방법이 가장 큰 이득을 보며, 내점법은 이득이 적고 특별한 처리가 필요할 수 있다
- 웜 스타트에는 이전 결정 변수만 있으면 된다 — 쌍대 변수나 활성 집합까지 함께 주는 것이 빠른 수렴에 그만큼 중요한 경우가 많다
- 이전 해는 언제나 좋은 추정값이다 — 큰 외란, 모드 변경, 목표 변경 뒤에는 새 최적해에서 멀리 떨어져 있을 수 있어 대체 수단이 필요하다
알아야 할 사람
- 모델 예측 제어 엔지니어
- 궤적 최적화 개발자
- 다리형 이동 및 드론 제어 엔지니어
- 로봇공학의 수치 최적화 실무자
관련 기술
- OSQP
- qpOASES
- IPOPT
- acados
- CasADi
- 실시간 반복 방식(Real-Time Iteration Scheme)
관련 용어
- Model Predictive Control
- Direct Collocation
- Differential dynamic programming
- Trajectory Planning
- Model Predictive Path Integral
- Complementarity Constraint
관련 프로젝트
- GENESIS: World's fastest physics engine: 43M FPS for embodied AI learning
- Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
- FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
- Dora AI: Dataflow middleware for AI robotics applications, built in Rust
- GTSAM: Factor-graph optimization library powering many modern SLAM backends