7.163 자동 미분(Automatic Differentiation)과 로봇 응용

7.163 자동 미분(Automatic Differentiation)과 로봇 응용

1. 자동 미분의 원리

자동 미분(Automatic Differentiation, AD)은 컴퓨터 프로그램으로 구현된 함수의 도함수를 기계적으로 정확하게 계산하는 기법이다. 수치 미분(유한 차분)의 근사 오차나 기호 미분(symbolic differentiation)의 표현 폭증 없이, 원 함수의 계산 비용의 상수배 이내에서 정확한 도함수를 산출한다.

AD의 핵심 원리는 모든 수치 함수가 기본 산술 연산(덧셈, 곱셈, 삼각 함수, 지수 함수 등)의 합성으로 분해되며, 각 기본 연산의 도함수가 알려져 있으므로, 연쇄 법칙(chain rule)의 반복 적용으로 전체 함수의 도함수가 계산 가능하다는 것이다.

2. 전방 모드와 역방 모드

2.1 전방 모드(Forward Mode)

입력 변수의 미소 변화가 출력으로 어떻게 전파되는지를 순방향으로 추적한다. 각 중간 변수 v_i에 대해 값 v_i와 도함수 \dot{v}_i = \partial v_i / \partial x_j를 쌍으로 계산한다.

비용: 입력 차원 n에 대해, 하나의 방향 미분(directional derivative)을 원 함수 비용의 O(1)배에 계산한다. 전체 야코비안은 O(n)배의 비용이 필요하다.

적합 상황: 출력 차원 m이 입력 차원 n보다 큰 경우(m \gg n).

2.2 역방향 모드(Reverse Mode)

출력에서의 민감도가 입력으로 어떻게 전파되는지를 역방향으로 추적한다. 먼저 순방향 통과(forward pass)로 모든 중간 변수의 값을 저장하고, 역방향 통과(backward pass)에서 출력에 대한 각 중간 변수의 수반 변수(adjoint) \bar{v}_i = \partial f / \partial v_i를 역순으로 계산한다.

비용: 스칼라 출력의 그래디언트 전체(n개 편미분)를 원 함수 비용의 O(1)배(통상 \leq 5배)에 계산한다. 단, 중간 변수를 저장하기 위한 O(m_{ops})의 메모리가 필요하다.

적합 상황: 출력 차원이 입력 차원보다 작은 경우(m \ll n). 특히 m = 1(스칼라 비용 함수)인 최적화 문제에서 그래디언트 계산에 최적이다.

역방향 모드 AD는 신경망 학습에서의 역전파(backpropagation)와 수학적으로 동치이다.

3. 수치 미분과의 비교

특성수치 미분자동 미분
정확도근사 (절단/반올림 오차)기계 정밀도
비용 (n차원 그래디언트)O(n)회 함수 평가O(1)배 (역방향)
스텝 크기 선택필요 (h의 최적화)불필요
구현단순프레임워크 필요
고차 미분오차 증가정확

4. AD 프레임워크

4.1 CasADi

로봇 공학의 최적 제어와 MPC에 특화된 기호-수치 혼합 AD 프레임워크이다. 기호 표현(symbolic expression)으로 함수를 정의하고, 자동으로 야코비안과 헤시안을 생성한다. IPOPT, qpOASES 등의 해법기와 직접 연동되며, C 코드 생성을 지원하여 임베디드 실시간 해법에 적합하다.

4.2 JAX

구글 개발의 Python 기반 AD 프레임워크로, NumPy 호환 인터페이스에 전방/역방향 AD, JIT(Just-In-Time) 컴파일, GPU 가속을 제공한다. 로봇 학습과 미분 가능 시뮬레이션에 활발히 사용된다.

4.3 PyTorch / TensorFlow

심층 학습 프레임워크로, 역방향 모드 AD(autograd)가 핵심 기능이다. 로봇 학습에서 정책 그래디언트, 모방 학습, 동역학 모델 학습에 사용된다.

4.4 Pinocchio

로봇 동역학 계산 라이브러리로, 순방향/역방향 동역학의 해석적 도함수를 효율적으로 계산한다. AD 기반이 아닌 알고리즘적 미분(algorithmic differentiation)을 이용하여, 재귀적 뉴턴-오일러 알고리즘의 도함수를 최적 복잡도로 산출한다.

5. 로봇 공학에서의 AD 응용

5.1 궤적 최적화의 야코비안/헤시안 계산

직접 배치법 또는 직접 사격법의 NLP에서 동역학 제약의 야코비안과 목적 함수의 헤시안을 AD로 정확히 계산한다. CasADi + IPOPT의 결합이 표준적이다.

5.2 미분 가능 시뮬레이션

물리 시뮬레이터의 전체 시뮬레이션 궤적에 대한 그래디언트를 역방향 AD로 계산하여, 제어 입력이나 물리 파라미터를 직접 최적화한다. 접촉 역학의 비매끄러움이 주요 도전으로, 평활화나 랜덤화에 의한 미분 가능화 기법이 연구되고 있다.

5.3 역기구학과 동역학의 민감도

관절 변수에 대한 말단 장치 위치의 야코비안, 동역학 파라미터에 대한 토크의 민감도 등이 AD로 정확히 계산된다.

5.4 센서 모델의 그래디언트

카메라 투영, LiDAR 광선 추적(ray tracing) 등의 센서 모델을 미분 가능하게 구현하면, 센서 관측으로부터의 역문제(inverse problem)를 경사 기반으로 풀 수 있다.

6. 참고 문헌

  • Griewank, A., & Walther, A. (2008). Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation (2nd ed.). SIAM.
  • Andersson, J. A. E., Gillis, J., Horn, G., Rawlings, J. B., & Diehl, M. (2019). “CasADi: A Software Framework for Nonlinear Optimization and Optimal Control.” Mathematical Programming Computation, 11(1), 1–36.
  • Bradbury, J., et al. (2018). JAX: Composable Transformations of Python+NumPy Programs. http://github.com/google/jax.
  • Carpentier, J., & Mansard, N. (2018). “Analytical Derivatives of Rigid Body Dynamics Algorithms.” Robotics: Science and Systems (RSS).

version: 1.0