ENG
0:00 / 0:00
KOR
0:00 / 0:00
0. Abstract (초록)

본 논문은 연체(soft-body) 학습 및 제어 응용을 위한 새롭고 빠른 미분 가능 시뮬레이터를 제시합니다. 기존의 미분 가능 연체 시뮬레이터는 시간 적분 방법에 따라 두 가지 범주로 분류될 수 있습니다. 명시적 시간 단계(explicit time-stepping) 방식을 사용하는 시뮬레이터는 그래디언트 계산 시 수치적 불안정성을 피하기 위해 아주 작은 타임 스텝을 요구하며, 암시적 시간 적분(implicit time integration) 방식을 사용하는 시뮬레이터는 일반적으로 adjoint 방법을 사용하고 비용이 많이 드는 선형화된 동역학을 풀어 그래디언트를 계산합니다. Projective Dynamics (PD)에서 영감을 받아, 본 논문은 PD와 암시적 시간 적분을 기반으로 한 효율적인 미분 가능 연체 시뮬레이터인 Differentiable Projective Dynamics (DiffPD)를 제시합니다. DiffPD의 핵심 아이디어는 순방향 PD 시뮬레이션에서 미리 인수분해된 Cholesky 분해를 활용하여 역전파(backpropagation)의 속도를 높이는 것입니다. 충돌 처리 측면에서, DiffPD는 두 가지 유형의 충돌을 지원합니다: 충돌 및 마찰력을 설명하는 페널티 기반 모델과 비관통 조건 및 정지 마찰을 강제하는 상보성 기반 모델입니다. 우리는 DiffPD의 성능을 평가했으며, 시스템 식별, 역설계 문제, 궤적 최적화, 폐쇄 루프 제어 등 다양한 응용 분야에서 표준 뉴턴 방법에 비해 4-19배 더 빠른 것을 확인했습니다. 또한, 우리는 충돌 및 충돌이 있는 현실-시뮬레이션(real-to-sim) 예제DiffPD를 적용하여 실제 세계 장면의 디지털 트윈을 재구성하는 능력을 보여줍니다.

쪽집게 과외

알고리즘

flowchart TD classDef core fill:#FFDBE6; classDef sub fill:#CCEFFF; classDef idea fill:#E8D2E5; classDef pros fill:#D0F1B9; classDef warn fill:#FFD3C2; classDef ref fill:#EBEBEC; subgraph 기존 방법 (Related Work) A[미분 가능 시뮬레이터]:::ref A --> B[명시적 방법
(Explicit)]:::sub A --> C[암시적 방법
(Implicit)]:::sub B --> B_cons["아주 작은 타임스텝 필요
높은 메모리 사용량"]:::warn C --> C_cons["비싼 선형화 연산
느린 역전파"]:::warn end subgraph 제안 방법 (Proposed) D[Projective Dynamics
기반]:::idea D --> E[DiffPD]:::core E --> E_pros["미리 계산된 Cholesky 분해 재사용
빠른 역전파 (4-19배↑)
낮은 메모리 사용량"]:::pros end C --> D

핵심 콕콕

• 연체(soft-body) 시뮬레이션을 위한 빠르고 효율적인 미분 가능 시뮬레이터 'DiffPD'를 제안합니다.
• Projective Dynamics(PD)를 기반으로 하며, 암시적 시간 적분 방식을 사용해 안정성과 큰 타임스텝의 이점을 가집니다.
• 핵심 아이디어는 순방향 시뮬레이션에서 미리 계산해 둔 'Cholesky 분해'를 역전파(gradient 계산) 과정에서 재활용하여 계산 속도를 획기적으로 높이는 것입니다.
• 기존의 표준적인 암시적 방법(뉴턴 방법) 대비 4배에서 19배 빠른 성능을 보입니다.
• 페널티 기반 및 상보성 기반의 두 가지 충돌 처리 모델을 지원하여 다양한 응용에 적용 가능합니다.

함정 주의

모든 '암시적(implicit) 시간 적분' 방법이 느리다고 생각하면 안 됩니다.

기존의 표준적인 암시적 방법(예: 뉴턴 방법)이 느린 이유는 매 스텝마다 비싼 비용의 '선형화된 동역학' 문제를 풀어야 하기 때문입니다. 반면, 이 논문에서 제안하는 DiffPD 역시 암시적 방법이지만, Projective Dynamics의 구조를 활용해 이 병목 현상을 해결했습니다. 즉, '암시적'이면서도 '빠른' 시뮬레이션과 역전파가 가능함을 보여주는 것이 핵심입니다.

구현 힌트

DiffPD의 핵심적인 속도 향상은 '계산의 재활용'에 있습니다. Projective Dynamics의 전역 스텝(global step)에서 사용되는 시스템 행렬 A는 시뮬레이션 내내 변하지 않습니다. 따라서 시뮬레이션 시작 전에 이 행렬 A에 대한 Cholesky 분해(A = LLᵀ)를 단 한 번만 계산해 둡니다. 이후 순방향 시뮬레이션의 매 반복과 역전파의 매 반복에서 값비싼 행렬 역행렬 계산 대신, 이 L 행렬을 이용한 훨씬 빠른 전진/후진 대입(back-substitution)으로 선형 시스템을 풀게 됩니다. 이것이 바로 DiffPD 성능의 비밀입니다.

쉬운 비유

DiffPD의 빠른 역전파 원리f>를 쉽게 비유해볼게요.

- 요리 레시피에 비유할 수 있습니다.
- 기존 방법 (뉴턴 방법): 매번 요리할 때마다(매 타임스텝 계산마다) 레시피 책의 처음부터 끝까지 읽고, 모든 재료를 다시 계량하고 손질하는 것과 같습니다. 실수가 발견되면(역전파 필요시) 다시 처음부터 모든 과정을 반복해야 해서 매우 비효율적입니다.
- DiffPD 방법: 요리를 시작하기 전에 모든 재료를 미리 손질해서 종류별로 그릇에 담아두는 '밀키트'를 만들어 두는 것과 같습니다(Cholesky 분해). 실제 요리할 때는(순방향/역전파 계산) 이 밀키트를 가져다 쓰기만 하면 되므로 요리 과정이 매우 빨라집니다. 한 번의 준비로 계속해서 효율을 누리는 셈이죠.

셀프 테스트

[O/X] DiffPD는 그래디언트 계산 시 수치적 불안정성을 피하기 위해 매우 작은 타임스텝을 사용하는 명시적(explicit) 시간 적분 방식에 기반한다.

정답 보기

정답: X
해설: DiffPD는 안정적인 암시적(implicit) 시간 적분 방식을 사용하며, Projective Dynamics를 기반으로 합니다.

[빈칸] DiffPD가 역전파(backpropagation) 속도를 높이기 위해 순방향 시뮬레이션에서 재활용하는 것은 미리 인수분해된 ___________ 이다.

정답 보기

정답: Cholesky 분해 (Cholesky decomposition)
해설: DiffPD의 핵심 아이디어는 순방향 시뮬레이션의 전역 스텝에서 사용된 Cholesky 분해 결과를 역전파 과정에서 재사용하여 계산 비용을 줄이는 것입니다.

[서술형] 기존의 미분 가능 시뮬레이터들을 두 가지로 분류하고, 각각의 주요 한계점을 설명하시오.

정답 보기

모범답안: 기존 시뮬레이터는 명시적(explicit) 방법과 암시적(implicit) 방법으로 나뉩니다. 명시적 방법은 수치적 안정성을 위해 매우 작은 타임스텝을 사용해야 하므로 시뮬레이션이 느려지고 역전파 시 메모리 소모가 큽니다. 암시적 방법은 안정적이지만, 매 스텝마다 비용이 큰 선형화된 동역학 방정식을 풀어야 하므로 그래디언트 계산(역전파)이 매우 느리다는 한계가 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
1. INTRODUCTION (서론)

최근 미분 가능 물리(differentiable physics)가 급부상하면서 미분 가능 시뮬레이터(differentiable simulators)가 등장했고, 최적화 루프 내에 시뮬레이션을 포함하는 다양한 역문제(inverse problems)에서 성공을 거두었습니다.

미분 정보에 대한 추가적인 지식을 통해, 미분 가능 시뮬레이터는 물리 시스템의 변화에 대한 더 많은 가이드를 제공합니다.

이 추가 정보가 성숙한 경사도 기반 최적화 기법과 적절히 결합될 때, 시스템 식별(system identification) 또는 파라미터 추정, 모션 계획(motion planning), 컨트롤러 설계 및 최적화, 그리고 역설계 문제(inverse design problems)와 같은 다양한 다운스트림 응용 분야의 정량적 연구를 촉진합니다.

본 연구에서는 연체 동역학을 위한 미분 가능 시뮬레이터를 개발하는 문제에 초점을 맞춥니다.

많은 응용 분야에서의 잠재력에도 불구하고, 미분 가능 연체 시뮬레이터에 대한 연구는 연체 동역학의 많은 자유도(DoFs) 때문에 아직 초기 단계에 머물러 있습니다.

하나의 학습 기반 접근법은 빠른 자동 미분을 위해 신경망을 통해 실제 연체 동역학을 근사하는 것입니다 (Li/2019b/Learning Particle Dynamics, Sanchez-Gonzalez/2020/Graph Network Simulators).

이러한 방법들의 경우, 시뮬레이션 과정이 더 이상 물리 기반이 아니라 순전히 신경망에 기반하므로, 물리적으로 타당하지 않고 해석 불가능한 결과를 낳을 수 있으며 일반적으로 일반화가 잘 되지 않습니다.

더 물리 기반인 또 다른 연구 흐름은 연체 동역학의 지배 방정식을 직접 미분하는 것입니다 (Geilinger/2020/ADD, Hahn/2019/Real2Sim, Hu/2020/DiffTaichi, Hu/2019/ChainQueen).

우리는 이러한 시뮬레이터들을 시간 전진 기법(time-stepping schemes)에 따라 명시적(explicit) 시뮬레이터암시적(implicit) 시뮬레이터로 분류합니다.

명시적 미분 가능 시뮬레이터는 순방향 시뮬레이션에서 명시적 시간 적분(explicit time integration)을 구현하고, 관련된 모든 경사도를 유도하기 위해 연쇄 법칙(chain rule)을 직접 적용합니다.

명시적 미분 가능 시뮬레이션계산이 빠르고 구현이 간단하지만, 그 명시적 특성상 수치적 불안정성을 피하기 위해 매우 작은 타임스텝이 필요합니다.

더욱이, 경사도를 유도할 때, 출력값(일반적으로 보상 또는 오차 측정치)이 모든 타임스텝을 거슬러 역전파되어야 합니다.

이러한 과정은 시간 전진 기법과 무관하게 모든 타임스텝의 상태를 메모리에 저장해야 합니다.

따라서, 명시적 미분 가능 시뮬레이터는 일반적으로 암시적 시뮬레이터보다 수십 배 더 많은 메모리를 소비하며, 메모리 문제를 완화하기 위해 체크포인트와 같은 정교한 기법이 필요합니다 (Hu/2019/ChainQueen).

명시적 미분 가능 시뮬레이터와 달리, 암시적 시뮬레이션훨씬 더 큰 타임스텝을 가능하게 합니다.

이는 수치적으로 더 안정적이며 역전파 동안 훨씬 더 메모리 효율적입니다.

그러나, 암시적 미분 가능 시뮬레이터는 일반적으로 순방향 시뮬레이션에서는 뉴턴 방법(Newton's method)을, 역전파 중에는 어드조인트 방법(adjoint method)을 구현하는데(Geilinger/2020/ADD, Hahn/2019/Real2Sim), 두 방법 모두 연체 동역학의 값비싼 선형화를 필요로 합니다.

암시적 시간 전진 기법을 사용한 순방향 연체 시뮬레이션을 가속화하는 기술이 광범위하게 개발되었음에도 불구하고, 해당 역전파 과정은 역문제의 다운스트림 응용 분야에서 여전히 병목 현상으로 남아 있습니다.

본 연구에서는 유한요소법(FEM)과 재료 및 접촉 모델에 대한 특정 가정을 가진 암시적 시간 전진 기법을 구현하는 효율적인 미분 가능 연체 시뮬레이터DiffPD를 제시합니다.

우리는 재료 모델의 탄성 에너지가 특정 이차 형식을 가질 때 유한요소법으로 암시적 시간 적분을 푸는 데 사용될 수 있는 빠르고 안정적인 알고리즘Projective Dynamics (PD)(Bouaziz/2014/Projective Dynamics)에서 영감을 얻었습니다.

PD와 공유하는 핵심 관찰은 순방향 시뮬레이션과 역전파 모두에서 계산 병목 현상이 연체 동역학의 비선형성 때문이라는 것입니다.

시스템 동역학의 비선형성을 분리함으로써, PD는 전역-지역 솔버(global-local solver)를 제안하는데, 여기서 전역 단계는 미리 인수분해된 선형 시스템을 풀고 지역 단계는 물리의 비선형성을 해결하며 대규모 병렬화가 가능합니다.

PD에 대한 이전 연구는 순방향 시뮬레이션에서의 효과를 입증했으며, 고전적인 뉴턴 방법에 비해 상당한 속도 향상을 보고했습니다.

우리의 핵심 기여는 적절한 선형 대수 재구성을 통해 PD의 동일한 비선형성 분해 아이디어가 역전파에도 완전히 확장될 수 있음을 입증하는 것입니다.

미분 가능한 접촉 처리를 지원하기 위해, 우리는 이전 PD 논문에서 사용된 접촉 모델들을 재검토하는데, 이들 중 다수는 가상의 충돌 에너지를 기반으로 한 부드러운 접촉 힘을 구현하기로 선택했습니다 (Bouaziz/2014/Projective Dynamics, Dinev/2018a/Stabilizing Integrators, Dinev/2018b/FEPR, Li/2019a/Fast Simulation, Liu/2017/Quasi-Newton Methods, Wang/2015/Chebyshev Solvers, Wang/2016/Parallel Gauss-Seidel).

DiffPD는 이러한 에너지 기반 접촉 및 마찰 모델을 자연스럽게 지원하는데, 이는 PD 프레임워크에 매끄럽게 통합될 수 있기 때문입니다.

한 가지 주목할 만한 예외는 표준 PD 프레임워크에서 건조 마찰 접촉을 해결하는 Ly/2020/PD with Dry Friction입니다.

우리는 또한 DiffPD에서 건조 마찰 접촉 모델을 미분 가능하게 만드는 가능성을 탐구했습니다.

접촉 정점은 일반적으로 내부 정점보다 훨씬 적은 자유도를 가진 연체 표면에 있어야 한다는 사실을 이용하여, 우리는 미분 가능한 정지 마찰비침투 접촉을 지원하기 위해 촐레스키 인수분해(Cholesky factorization)저계수 행렬 업데이트(low-rank matrix update)를 결합한 새로운 해결책을 제시합니다.

우리는 최대 약 30,000개의 자유도를 가진 다양한 3D 응용 프로그램에서 DiffPD의 효능을 입증합니다.

이러한 응용 프로그램에는 시스템 식별, 초기 상태 최적화, 모션 계획, 종단간 폐쇄 루프 제어 최적화가 포함됩니다.

우리는 DiffPD를 명시적 및 암시적 미분 가능 유한요소법 시뮬레이션과 비교하고, PD의 가정이 성립할 때 DiffPD의 순방향 및 역방향 계산이 뉴턴 방법보다 4-19배 더 빠르다는 것을 관찰합니다.

또한, 우리는 연체 로봇을 위한 폐쇄 루프 신경망 컨트롤러를 훈련시키기 위해 DiffPD를 딥러닝 파이프라인의 미분 가능 레이어로 내장하고, 심층 강화 학습(RL) 알고리즘에 비해 실제 시간에서 9-11배의 속도 향상을 보고합니다.

마지막으로, 우리는 비디오 입력으로부터 두 테니스 공 사이의 충돌 이벤트를 재구성하기 위해 우리의 미분 가능 시뮬레이터를 사용하는 현실-시뮬레이션(real-to-sim) 응용 프로그램을 보여주며, 이것이 미래에 시뮬레이션-현실(sim-to-real) 문제를 해결하는 후속 연구에 영감을 줄 수 있기를 바랍니다.

요약하자면, 우리 논문은 다음을 기여합니다:

• 표준 뉴턴 방법을 사용하는 미분 가능 시뮬레이터보다 상당히 빠른 PD 기반 미분 가능 연체 시뮬레이터;

• 페널티 기반 접촉 및 마찰력 또는 상보성 기반 비침투 접촉 및 정지 마찰을 처리하는 미분 가능한 충돌 처리 알고리즘;

• PD와 호환되는 재료 모델 및 위에 언급된 단순화된 접촉 모델을 사용하여 시스템 식별, 역설계 문제, 모션 계획, 로보틱스 제어 및 현실-시뮬레이션 실험을 포함한 광범위한 응용 분야에서 우리 방법의 효능을 입증.

쪽집게 과외

알고리즘

flowchart TD subgraph 미분 가능 연체 시뮬레이터 접근법 A[연체 동역학] --> B{접근법 분류} B --> C[학습 기반
(신경망 근사)] B --> D[물리 기반
(지배 방정식 미분)] D --> E[명시적 방법
(Explicit)] D --> F[암시적 방법
(Implicit)] F --> G[표준 암시적 방법
(뉴턴 방법)] F --> H[본 논문 제안
DiffPD] end classDef idea fill:#E8D2E5 classDef core fill:#FFDBE6 classDef sub fill:#CCEFFF classDef pros fill:#D0F1B9 classDef warn fill:#FFD3C2 class C warn class E warn class G warn class H core subgraph 범례 direction LR legend_core[제안 방법]:::core legend_warn[기존 방법/한계]:::warn end

핵심 콕콕

• 기존 미분 가능 연체 시뮬레이터는 명시적(explicit) 방법과 암시적(implicit) 방법으로 나뉩니다.
• 명시적 방법은 구현이 간단하지만, 안정성을 위해 매우 작은 타임스텝이 필요하고 메모리 사용량이 큽니다.
• 암시적 방법은 안정적이고 메모리 효율이 좋지만, 역전파 과정에서 값비싼 선형화 계산이 병목이 됩니다.
• 이 논문은 Projective Dynamics(PD)의 아이디어를 역전파 과정에 확장한 DiffPD를 제안합니다.
• DiffPD는 PD의 '전역-지역 솔버'를 활용하여 역전파 병목을 해결하고, 표준 뉴턴 방법보다 4~19배 빠른 속도를 달성합니다.

함정 주의

암시적(Implicit) 방법과 DiffPD를 혼동하지 마세요.

둘 다 '암시적 시간 전진 기법'을 사용하지만, 문제 해결 방식이 다릅니다. 일반적인 암시적 방법은 매 타임스텝마다 복잡한 비선형 방정식을 풀기 위해 뉴턴 방법을 사용하여 행렬을 새로 계산하고 풀어야 해서 매우 느립니다. 반면, DiffPD는 Projective Dynamics(PD)를 기반으로 비선형성을 분리하여, 미리 계산해 둔(prefactorized) 간단한 선형 시스템을 반복적으로 풀기 때문에 훨씬 빠릅니다. 즉, DiffPD는 암시적 방법의 한 종류이지만, 속도 문제를 해결한 특별한 경우입니다.

쉬운 비유

Projective Dynamics (PD)의 전역-지역(global-local) 해결 방식f>을 쉽게 비유해볼게요.

- 상황: 수백 개의 고무줄이 복잡하게 얽힌 거대한 그물망을 한 번에 원하는 모양으로 만들려고 합니다.

- 표준 뉴턴 방법 (한 번에 풀기): 그물망 전체의 모든 고무줄 장력을 동시에 계산해서 한 번에 풀려고 시도합니다. 계산이 너무 복잡하고 오래 걸립니다. 마치 수백 개의 연립방정식을 한 번에 푸는 것과 같습니다.

- PD 방식 (나눠서 풀기):
1. 지역(Local) 단계: 각 고무줄 매듭마다 담당자를 배정합니다. 각 담당자는 다른 매듭은 신경 쓰지 않고, 오직 '자신이 맡은 고무줄'만 이상적인 길이와 방향으로 쭉 폅니다. 이 작업은 모든 담당자가 동시에 할 수 있습니다(병렬 처리).
2. 전역(Global) 단계: 모든 담당자가 자기 고무줄을 편 상태에서, 전체 그물망의 위치를 미리 정해둔 간단한 '평균 공식'에 따라 한 번에 살짝 조정합니다. 이 공식은 매우 간단해서 계산이 빠릅니다.

이 두 단계를 몇 번 반복하면, 복잡한 계산 없이도 그물망 전체가 원하는 모양으로 빠르고 안정적으로 수렴합니다. DiffPD는 이 똑똑한 '나눠서 풀기' 방식을 시뮬레이션뿐만 아니라, 그래디언트를 계산하는 역전파 과정에도 적용한 것입니다.

셀프 테스트

[O/X]

정답 보기

명시적(explicit) 미분 가능 시뮬레이터는 암시적(implicit) 시뮬레이터보다 역전파 시 메모리를 더 적게 사용한다.
정답: X
해설: 명시적 시뮬레이터는 모든 타임스텝의 상태를 저장해야 하므로 일반적으로 암시적 시뮬레이터보다 훨씬 많은 메모리를 소비합니다.

[빈칸]

정답 보기

Projective Dynamics(PD)는 시스템의 비선형성을 분리하여, 미리 계산된 선형 시스템을 푸는 ___ 단계와 비선형성을 해결하는 ___ 단계로 나누어 문제를 해결한다.
정답: 전역(global), 지역(local)
해설: PD의 핵심은 전역-지역 솔버(global-local solver)를 사용하여 계산 병목 현상을 해결하는 것입니다.

[서술형]

정답 보기

기존의 암시적 미분 가능 시뮬레이터가 역전파(backpropagation) 과정에서 병목 현상을 겪는 주된 이유는 무엇인가요?
모범답안: 주된 이유는 역전파 과정에서 어드조인트 방법(adjoint method)을 사용하기 때문입니다. 이 방법은 매 타임스텝마다 연체 동역학 시스템의 헤시안(Hessian) 행렬을 계산하고, 이 행렬을 포함하는 거대한 선형 시스템을 풀어야 합니다. 헤시안 행렬은 상태에 따라 계속 변하기 때문에 매번 새로 계산하고 인수분해해야 하므로 계산 비용이 매우 높습니다. 이것이 전체적인 성능 저하의 원인이 됩니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00

미분 가능 시뮬레이터와 접촉 처리를 포함한 PD에 대한 방법들을 검토하고, 소프트 로봇 설계 및 제어 방법에 대한 간략한 요약으로 이어집니다. 저희 연구와 이전 논문들 간의 차이점은 표 1에 요약되어 있습니다.

Differentiable Simulation. (미분 가능 시뮬레이션.)

미분 가능 물리학의 최근 많은 발전은 로봇 학습, 제어, 설계 과제에서 경사도 기반 방법의 적용을 용이하게 했습니다. 강체 동역학(de Avila Belbute-Peres/2018/End-to-End Differentiable Physics, Degrave/2019/A Differentiable Physics Engine, Macklin/2020/Primal/Dual Descent Methods, Popović/2003/Interactive Control of Avatars, Toussaint/2018/Differentiable Physics and Stable-Baselines), 연체 동역학(Geilinger/2020/ADD, Hahn/2019/Real2Sim, Hu/2020/DiffTaichi, 2019/ChainQueen), 직물(Liang/2019/Differentiable Cloth Simulation, Qiao/2020/Differentiable Cloth Simulation), 유체 동역학(Holl/2020/Learning to Control PDEs, McNamara/2004/Fluid Control, Schenck/2018/Differentiable Fluid Simulation, Treuille/2003/Keyframe Control of Smoke, Wojtan/2006/Animating Water)을 위해 여러 미분 가능 시뮬레이터가 개발되었습니다. 여기서는 저희 연구의 초점인 연체 동역학 방법들을 주로 논의합니다. ChainQueen(Hu/2019/ChainQueen)과 그 후속 연구인 DiffTaichi(Hu/2020/DiffTaichi)는 물질점법(MPM)을 사용하는 미분 가능한 물리 기반 연체 시뮬레이터를 소개합니다. 이 방법은 입자를 사용하여 동적 시스템의 전체 상태를 추적하고 배경의 오일러리안 격자에서 운동량 방정식과 충돌을 해결합니다. 그러나 이 방법들의 명시적 시간 적분수치적 안정성을 유지하기 위해 작은 타임스텝을 요구하며, 이는 역전파 중 많은 메모리 소비로 이어집니다. 이 문제를 해결하기 위해, ChainQueen은 메모리에 체크포인트 단계를 캐시하고 역전파 중에 순방향 시뮬레이션을 재실행하여 상태를 재구성하는 방법을 제안하는데, 이는 구현 복잡성을 증가시키고 추가적인 시간 비용을 발생시킵니다. 더욱이, 오일러리안 격자에서 충돌을 해결하는 것은 격자의 해상도에 따라 인공물을 유발할 수 있습니다(Han/2019/A Hybrid Material Point Method). 또 다른 입자 기반 전략은 그래프 신경망으로 연체 동역학을 근사하는 것입니다(Li/2019b/Learning Particle Dynamics, Sanchez-Gonzalez/2020/Learning to Simulate Complex Physics). 이는 자연스럽게 미분 가능성을 갖추고 있지만 물리적으로 비현실적인 행동을 초래할 수 있습니다. 저희 연구는 미분 가능한 암시적 FEM 시뮬레이터를 사용하는 Hahn/2019/Real2SimGeilinger/2020/ADD의 연구와 가장 유사합니다. adjoint 방법민감도 분석의 조합을 체계적으로 적용하여 경사도를 도출하는 다른 미분 가능한 변형체 시뮬레이터(Geilinger/2020/ADD, Hahn/2019/Real2Sim, Liang/2019/Differentiable Cloth Simulation, Qiao/2020/Differentiable Cloth Simulation)와 비교할 때, DiffPD는 Projective Dynamics의 고유한 구조를 활용하는 보다 전략적인 역전파 방식에 특별히 초점을 맞추어, 경험적으로 더 빠른 경사도 계산을 가능하게 합니다. 마지막으로, DiffPD는 연체 시뮬레이션을 위해 미분 가능한 장벽 함수로 접촉을 견고하게 처리하는 접촉 인식 뉴턴 유형 솔버를 소개한 Li/2020/Incremental Potential Contact의 연구와도 관련이 있습니다. 비록 Li/2020/Incremental Potential Contact의 연구가 경사도 계산이나 이러한 경사도로부터 이점을 얻는 응용 프로그램을 제시하지는 않았지만, 그들은 전체 접촉 모델이 이론적으로 미분 가능하다는 것을 보여주었고, 저희는 미래에 미분 가능 시뮬레이션을 사용하는 응용 프로그램들이 이로부터 많은 이점을 얻을 수 있다고 믿습니다.

Projective Dynamics. (투영 동역학.)

PD는 원래 Bouaziz/2014/Projective Dynamics에 의해 암시적 시간 단계 기법으로 비선형 시스템 동역학을 해결하기 위한 뉴턴 방법의 매력적인 대안으로 제안되었습니다. 표준 PD 알고리즘은 강체를 지원하고(Li/2019a/Fast Simulation of Deformable Characters), 운동 에너지를 보존하며(Dinev/2018a/Stabilizing Integrators, 2018b/FEPR), 광범위한 초탄성 재료를 지원하도록(Liu/2017/Quasi-Newton Methods) 확장되었습니다. 더욱이, 이전 논문들은 준-반복 체비쇼프 솔버(Wang/2015/Defending Against Edge-of-your-Seat Attacks, Wang/2016/How to Shop for Free), 무작위 그래프 색칠을 이용한 병렬 가우스-자이델 방법(Fratarcangeli/2016/Vivace), 필요한 제약 투영을 위한 사전 계산된 축소 부분 공간 방법(Brandt/2018/Hyper-Reduced Projective Dynamics), 그리고 멀티그리드 솔버(Xian/2019/Multigrid-based Projective Dynamics)를 포함한 더 진보된 가속 전략들을 제안했습니다. Macklin/2020/Primal/Dual Descent Methods은 페널티 기반 접촉 모델을 사용하여 GPU에서 PD의 사전 조건화된 하강 기반 방법을 소개합니다. DiffPD에서는 그들의 페널티 기반 접촉 모델을 구현하지만 GPU 가속은 향후 과제로 남겨둡니다. 이론적인 측면에서, Narain/2016/ADMM-based AnimationOverby/2017/ADMM ⊇ Projective DynamicsPD를 최적화 관점에서 교대 방향 승수법(ADMM)의 특별한 경우로 해석합니다. 저희 연구는 이전 논문들의 표준 PD 프레임워크를 계승하고 경사도 계산으로 이를 보강합니다.

Contact Handling. (접촉 처리.)

접촉과 마찰을 처리하는 주제는 연체 시뮬레이션에서 광범위하게 연구되어 왔습니다. 물리적 타당성, 시간 비용, 구현 복잡성과 같은 다양한 설계 고려사항을 가진 다양한 충돌 처리 알고리즘이 존재하지만, 그 중 소수만이 미분 가능성을 고려합니다(Chen/2017/Dynamics-Aware Numerical Coarsening, Hu/2019/ChainQueen, Li/2020/Incremental Potential Contact, Macklin/2020/Primal/Dual Descent Methods). 접촉이 있는 PD 시뮬레이션 영역에서 가장 널리 퍼진 전략은 접촉을 소프트 제약으로 취급하는 것입니다. 이는 각 시뮬레이션 단계의 끝에서 충돌하는 정점을 충돌 표면에 직접 투영하거나(Dinev/2018a/Stabilizing Integrators, 2018b/FEPR, Wang/2015/Defending Against Edge-of-your-Seat Attacks, 2016/How to Shop for Free) 가상의 충돌 에너지를 부과함으로써(Bouaziz/2014/Projective Dynamics, Li/2019a/Fast Simulation of Deformable Characters, Liu/2017/Quasi-Newton Methods) 달성됩니다. 이러한 방법들은 인공적인 강성 계수를 도입하는데, 이는 작업에 따라 달라지며 신중한 조정이 필요합니다. 대안으로, Ly/2020/Projective Dynamics with Dry Frictional Contact는 순방향 시뮬레이션에서 더 물리적으로 타당한 Signorini-Coulomb 접촉 모델을 PD와 결합할 것을 제안합니다. 그러나 이러한 모델을 사용하는 것은 역전파 중에 추가적인 어려움을 야기하는데, 이는 접촉력을 해결하는 데 미분 가능성을 유지하지 못하거나 사전 인수분해된 콜레스키 분해를 활용할 수 없는 자명하지 않은 반복 최적화기가 필요하기 때문입니다. 저희 연구에서는 페널티 기반상보성 기반 접촉 모델을 모두 고려합니다. 상보성 기반 접촉의 경우, 비관통 접촉과 정지 마찰을 지원하며 미끄럼 마찰은 향후 과제로 남겨둡니다. 저희 접촉 처리 알고리즘의 핵심은 접촉이 전체 자유도의 작은 부분에서 발생한다는 가정이며, 이는 선형 방정식 시스템에 대한 저계수 갱신으로 이어집니다. 접촉 처리 중 증분적, 저계수 갱신을 활용하는 아이디어는 ArtDefo(James/1999/ArtDefo)로 거슬러 올라갈 수 있는데, 이는 경계 요소법으로 연체를 시뮬레이션하고 새로운 접촉점이 활성화될 때 행렬의 세 열을 재설정합니다. 저희 연구에서는 순방향 시뮬레이션 중에 접촉을 해결하기 위해 유사한 아이디어를 사용하고 이를 역전파 중 경사도를 계산하도록 확장합니다. 저희 연구는 또한 희소 콜레스키 갱신에 대한 최근 연구(Herholz/2020/Sparse cholesky updates)와도 관련이 있는데, 이는 우드버리 행렬 항등식에 기반한 저희의 저계수 갱신 전략에 대한 대안을 제공합니다.

Soft Robot Design And Control. (소프트 로봇 설계 및 제어.)

연체 시뮬레이션이 더 빠르고, 더 견고하며, 경사도 정보 방식으로 더 표현력이 풍부해짐에 따라, 컴퓨테이셔널 소프트 로보틱스 분야가 소프트 로봇 설계 및 제어 문제에 대한 해결책으로 부상하고 있습니다. 컴퓨테이셔널 로보틱스에 적용된 최초의 시뮬레이터 중 하나는 VoxCAD(Hiller/2014/Dynamic Simulation of Soft Multimaterial 3D-Printed Objects)로, 미분 가능하지는 않지만 CPU에서 빠르게 실행됩니다. 이 특징은 유전 알고리즘에 잘 맞춰져 있어, 걷고, 수영하고, 성장할 수 있는 컴퓨터 설계 소프트 로봇으로 이어졌습니다(Bongard/2016/Material Properties Affect Evolution, Cheney/2013/Unshackling Evolution, Corucci/2016/Evolving Swimming Soft-Bodied Creatures). 더 최근에는, Min/2019/SoftCon이 연체를 유체 역학 모델과 결합하여 수영하는 생물의 시뮬레이션 및 훈련을 가능하게 하는 FEM 시뮬레이터를 제시했습니다. VoxCAD와 마찬가지로, 이 시뮬레이터는 경사도 없는 접근 방식이므로, 이러한 컨트롤러를 훈련하는 데 수 시간 또는 수 일이 걸릴 수 있습니다. 이러한 경사도 없는 접근 방식과 경쟁하는 것은 경사도 기반 접근 방식으로, 이는 경사도에 의해 제공되는 추가 정보 덕분에 일반적으로 더 효율적입니다. Sin/2013/Interactive Simulation of Elastic Deformable MaterialsAllard/2007/SOFA정확도를 희생하면서 시뮬레이션을 가속화하기 위해 모달 동역학을 활용하는 빠르고 부분적으로 미분 가능한 FEM 시뮬레이션을 제시했습니다. 그럼에도 불구하고, 이러한 접근 방식은 소프트 캐릭터의 상호작용 시뮬레이션(Barbič/2005/Real-Time Subspace Integration)과 시뮬레이션 및 실제 로봇의 제어(Thieffry/2018/Real-time Control of Soft Robots)를 허용할 만큼 충분히 견고합니다. 더 최근에는, 유사한 유한 요소 기반 시뮬레이션 기술이 실제 폼 사족보행 로봇의 보행 생성에 효과적임이 나타났습니다(Bern/2019/Trajectory Optimization for Cable-Driven Soft Robot). 이들 각 연구에서는 제어만 검토되었습니다. 저희 연구와 유사하게, Lee/2018/Dexterous Manipulation and Control는 인간 근육 시스템에 기반한 작동 모델을 사용하여 PD가 정교한 조작에 어떻게 적용될 수 있는지를 보여줍니다. 그들의 프레임워크는 유연하고 연성-강체 결합을 처리할 수 있지만, 준정적 운동에만 적용될 수 있습니다. 대조적으로, 저희 시뮬레이터는 완전한 동적 시스템을 처리합니다. 경쟁적인 접근 방식인 미분 가능 MPMSpielberg/2019/Co-designing Soft Robots에서 소프트 로보틱스에 적용되어, 폐쇄 및 개방 루프 제어와 재료 분포에 걸쳐 소프트 로봇을 공동 설계합니다.

쪽집게 과외

핵심 콕콕

• 미분 가능 시뮬레이션은 물리 시스템의 그래디언트를 계산하여 로봇 학습, 제어, 설계 등 다양한 역문제(inverse problem) 해결을 돕습니다.
• 연체동역학 시뮬레이션은 크게 명시적(explicit) 방법과 암시적(implicit) 방법으로 나뉩니다. 명시적 방법은 구현이 간단하지만 안정성을 위해 매우 작은 시간 간격(time step)이 필요해 메모리 소모가 큽니다.
• 본 논문이 제안하는 DiffPD는 Projective Dynamics(PD)에 기반한 암시적 방법입니다. PD는 비선형 동역학을 선형적인 '전역(global) 단계'와 병렬화 가능한 '지역(local) 단계'로 분리하여 기존의 뉴턴 방법보다 훨씬 빠르게 계산합니다.
• 접촉(contact) 처리는 미분 가능 시뮬레이션의 주요 난제 중 하나입니다. 본 논문은 간단한 페널티(penalty) 기반 모델과, 더 물리적이지만 복잡한 상보성(complementarity) 기반 모델을 모두 지원합니다.
• 소프트 로봇 제어 분야에서는 그래디언트 정보를 사용하는 접근법이 그래디언트가 없는 유전 알고리즘 등에 비해 훨씬 효율적으로 컨트롤러를 학습시킬 수 있습니다.

함정 주의

미분 가능 시뮬레이션의 '명시적(Explicit)' 방법과 '암시적(Implicit)' 방법을 혼동하지 마세요.
- 명시적 방법(예: MPM 기반의 ChainQueen)은 현재 상태만으로 다음 상태를 바로 계산합니다. 구현은 쉽지만, 아주 작은 시간 간격으로 쪼개야 안정적이라서 역전파 시 모든 중간 단계를 저장해야 하므로 메모리를 엄청나게 많이 사용합니다.
- 암시적 방법(예: FEM 기반의 DiffPD, 뉴턴 방법)은 다음 상태를 포함하는 방정식을 풀어야 합니다. 계산은 더 복잡하지만, 훨씬 큰 시간 간격을 사용할 수 있어 안정적이고 메모리 효율이 좋습니다.

쉬운 비유

Projective Dynamics (PD)의 '전역-지역(Global-Local)' 해결 방식f>을 쉽게 비유해볼게요.

- 거대한 레고 성을 만드는 팀 프로젝트라고 상상해보세요.

- 기존의 뉴턴 방법: 모든 팀원이 다 같이 모여서 성 전체의 설계도를 보며 한 번에 하나의 블록을 어디에 놓을지 계속해서 회의하고 계산하는 방식입니다. 한 블록을 놓을 때마다 전체 구조에 미치는 영향을 계산해야 해서 매우 느립니다.

- PD 방식 (전역-지역 해결): 팀을 나눕니다. 각 팀원(지역 단계)은 성의 작은 부분(예: 탑, 성벽)을 맡아 자기만의 공간에서 빠르게 조립합니다. 이때 약간의 규칙 위반(예: 블록이 살짝 겹침)은 신경 쓰지 않고 일단 모양을 만듭니다. 그 후, 관리자(전역 단계)가 각 팀원이 만든 부분들을 모아 전체 설계도에 맞게 한 번에 '쑥'하고 끼워 맞춥니다. 이 과정은 미리 계산된 '틀'이 있어서 매우 빠릅니다. 이 과정을 몇 번 반복하면 아주 빠르게 거대한 성이 완성됩니다.

- 이처럼 PD는 복잡한 비선형 문제를 '각자 알아서 풀기(지역)'와 '한 번에 모아 맞추기(전역)'로 나누어 계산 속도를 획기적으로 높인 것입니다.

셀프 테스트

[O/X]

정답 보기

명시적(Explicit) 시간 적분 방식의 미분 가능 시뮬레이터는 암시적(Implicit) 방식보다 역전파 시 메모리를 적게 사용한다.
정답: X
해설: 명시적 방식은 안정성을 위해 매우 작은 시간 간격(time step)을 사용해야 하므로, 역전파 시 모든 시간 단계의 상태를 저장해야 해서 메모리 사용량이 훨씬 큽니다.

[빈칸]

정답 보기

Projective Dynamics(PD)는 비선형 동역학을 선형 시스템을 푸는 ___ 단계와 비선형성을 해결하는 ___ 단계로 분리하여 계산 속도를 높인다.
정답: 전역(global), 지역(local)
해설: PD의 핵심 아이디어는 복잡한 문제를 전역적인 선형 문제와 병렬 처리가 가능한 지역적인 비선형 문제로 나누어 푸는 것입니다.

[서술형]

정답 보기

연체 시뮬레이션에서 페널티(penalty) 기반 접촉 모델과 상보성(complementarity) 기반 접촉 모델의 장단점을 비교 설명하세요.
모범답안: 페널티 기반 모델은 구현이 간단하고 기존 PD 프레임워크에 쉽게 통합될 수 있다는 장점이 있지만, 물리적으로 정확하지 않고 인공적인 강성 계수를 사용자가 직접 조절해야 하는 단점이 있습니다. 반면, 상보성 기반 모델(예: Signorini-Coulomb 모델)은 물리적으로 더 정확하고 비관통 조건을 엄격하게 만족시킬 수 있지만, 미분 가능성을 유지하면서 효율적으로 풀기 어려워 역전파 과정이 복잡해지는 단점이 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
3. BACKGROUND (배경)

이 섹션에서는 암시적 시간 스텝 방식(implicit time-stepping scheme)PD(Projective Dynamics)의 기본 개념을 검토합니다. 변형 가능한 물체를 FEM으로 이산화한 후의 3D 노드 수를 $n$이라고 합시다. 시간 이산화 후, $i$번째 시간 스텝에서의 절점 위치와 속도를 나타내기 위해 $x_i \in \mathbb{R}^{3n}$과 $v_i \in \mathbb{R}^{3n}$을 사용합니다.

암시적 시간 통합(Implicit time integration). 본 논문에서는 다음과 같은 암시적 시간 통합에 초점을 맞춥니다:

Eq. 1 & 2: 암시적 시간 통합$$x_{i+1} = x_i + h v_{i+1}$$$$v_{i+1} = v_i + h M^{-1}[f_{\text{int}}(x_{i+1}) + f_{\text{ext}}]$$이 수식들은 각각 위치와 속도에 대한 암시적 오일러(implicit Euler) 업데이트 규칙을 나타냅니다. 다음 시간 스텝의 상태($x_{i+1}$, $v_{i+1}$)가 현재 상태($x_i$, $v_i$)와 다음 스텝의 힘($f_{\text{int}}(x_{i+1})$)에 의해 결정됩니다.

여기서 $h$는 시간 스텝, $M \in \mathbb{R}^{3n \times 3n}$은 집중 질량 행렬(lumped mass matrix), 그리고 $f_{\text{int}}$와 $f_{\text{ext}}$는 각각 내력과 외력의 합입니다.

$x_{i+1}$에 $v_{i+1}$을 대입하면 다음과 같은 비선형 연립방정식을 얻습니다:

Eq. 3: 비선형 시스템$$\frac{1}{h^2} M(x_{i+1} - y_i) - f_{\text{int}}(x_{i+1}) = 0$$이 방정식은 각 시간 스텝에서 풀어야 할 핵심적인 비선형 시스템입니다. 여기서 $y_i = x_i + h v_i + h^2 M^{-1} f_{\text{ext}}$는 이전 스텝의 정보로 계산된 알려진 값입니다. 우리의 목표는 이 방정식을 만족하는 다음 위치 $x_{i+1}$을 찾는 것입니다.

여기서 $y_i = x_i + h v_i + h^2 M^{-1} f_{\text{ext}}$는 각 시간 스텝의 시작에서 평가됩니다. 간단히 하기 위해 $x$와 $y$에서 인덱스를 생략합니다:

Eq. 4: 단순화된 비선형 시스템$$\frac{1}{h^2} M(x - y) - f_{\text{int}}(x) = 0$$이 수식은 수식 3에서 시간 인덱스를 제거하여 표기를 단순화한 것입니다. 이후의 논의는 이 형태를 기반으로 진행됩니다.

각 시간 스텝에서 우리의 목표는 주어진 $y$에 대해 위의 방정식을 만족하는 $x$를 찾는 것입니다.

Stuart/1996/Numerical AnalysisMartin/2011/Example-Based Elastic Materials에서 지적했듯이, 수식 (4)에서 $x$를 푸는 것은 다음 목적 함수 $g$의 임계점(critical point)을 찾는 것과 같습니다:

Eq. 5: 에너지 최소화 목적 함수$$g(x) = \frac{1}{2h^2} (x - y)^\top M(x - y) + E(x)$$이 목적 함수 $g(x)$는 동역학 문제를 에너지 최소화 문제로 재구성합니다. 첫 번째 항은 운동 에너지와 관련이 있고, 두 번째 항 $E(x)$는 시스템의 위치 에너지입니다. 이 함수의 임계점을 찾는 것이 동역학 방정식을 푸는 것과 동일합니다.

여기서 $E$는 내력을 유도하는 위치 에너지입니다: $f_{\text{int}} = -\nabla E$. 수식 (4)의 좌변이 $\nabla g$임을 쉽게 확인할 수 있습니다:

Eq. 6: 목적 함수의 그래디언트$$\nabla g(x) = \frac{1}{h^2} M(x - y) + \nabla E(x) = \frac{1}{h^2} M(x - y) - f_{\text{int}}(x)$$이 수식은 목적 함수 $g(x)$의 그래디언트를 보여줍니다. 이 그래디언트를 0으로 만드는 $x$를 찾는 것이 바로 수식 (4)의 비선형 시스템을 푸는 것입니다.

수식 (4)는 일반적으로 뉴턴 방법(Newton's method)으로 풀리며, 이는 일련의 선형 연립방정식을 반복적으로 풉니다. 뉴턴 방법의 $k$번째 반복에서 현재까지의 $x$에 대한 추측값을 $x_k$라고 합시다. 뉴턴 방법은 다음과 같이 $x$에 대한 다음 추측값을 계산합니다:

Eq. 7 & 8: 뉴턴 방법 업데이트 규칙$$0 = \nabla g(x) = \nabla g(x_k + \Delta x) \approx \nabla g(x_k) + \nabla^2 g(x_k) \Delta x$$$$\nabla^2 g(x_k) \Delta x \approx -\nabla g(x_k)$$이 수식들은 뉴턴-랩슨 방법을 나타냅니다. 그래디언트 함수 $\nabla g(x)$를 현재 추정치 $x_k$에서 1차 테일러 전개(선형 근사)하여, 그래디언트가 0이 되는 업데이트 스텝 $\Delta x$를 찾습니다. 이를 위해 헤시안 행렬 $\nabla^2 g(x_k)$을 포함하는 선형 시스템을 풀어야 합니다.

따라서, $\Delta x = -[\nabla^2 g(x_k)]^{-1} \nabla g(x_k)$로 설정하고 다음 반복에서 $x_{k+1} = x_k + \Delta x$로 $x$에 대한 추측값을 업데이트할 수 있습니다. 실제로는, $\nabla^2 g$가 부정부호(indefinite)일 때 뉴턴 방법은 보통 양정부호 수정(definiteness fixes)이나 선형 탐색(line searches)을 사용합니다 [Nocedal/2006/Numerical Optimization]. 대규모 문제의 경우, 각 $x_k$에서 수식 (8)을 푸는 것은 비용이 많이 드는 선형화와 행렬 분해를 필요로 하며, 이는 시간 병목 현상이 됩니다.

암시적 시간 통합을 사용한 역전파(Backpropagation with implicit time integration). 손실 함수 $L$이 $x$에 대해 정의되었을 때 역전파의 주요 아이디어를 간략히 설명하고, $\frac{\partial L}{\partial x}$로부터 $\frac{\partial L}{\partial y}$를 어떻게 계산할 수 있는지 설명합니다. 여러 시간 스텝에 걸친 역전파는 각 시간 스텝의 모든 단일 쌍 $(x, y)$를 통해 반복적으로 역전파함으로써 수행될 수 있습니다. $x$와 $y$는 $\nabla g(x) = 0$에 의해 암시적으로 제약되므로, 이를 $y$에 대해 미분하여 다음 방정식을 얻을 수 있습니다:

Eq. 9-12: 암시적 함수 미분$$\frac{\partial x}{\partial y} = \frac{1}{h^2} [\nabla^2 g(x)]^{-1} M$$이 수식은 암시적 함수 정리를 이용하여 $\nabla g(x)=0$ 관계로부터 자코비안 $\frac{\partial x}{\partial y}$를 유도합니다. 이 자코비안은 입력 $y$의 변화가 출력 $x$에 미치는 영향을 나타내며, 역전파에서 그래디언트를 전달하는 데 필수적입니다.

이로부터 $\frac{\partial x}{\partial y}$를 풀고 연쇄 법칙을 사용하여 다음을 얻을 수 있습니다 ($ rac{\partial L}{\partial x}$와 $\frac{\partial L}{\partial y}$가 모두 행 벡터라고 가정):

Eq. 13 & 14: 어드조인트 방법을 이용한 역전파$$\frac{\partial L}{\partial y} = \frac{\partial L}{\partial x} \frac{\partial x}{\partial y} = \frac{1}{h^2} \underbrace{\frac{\partial L}{\partial x} [\nabla^2 g(x)]^{-1}}_{z^\top} M$$$$\nabla^2 g(x) z = (\frac{\partial L}{\partial x})^\top$$이 수식들은 어드조인트 방법(adjoint method)을 보여줍니다. 자코비안 행렬 $[\nabla^2 g(x)]^{-1}$을 직접 계산하는 대신, 어드조인트 벡터 $z$에 대한 선형 시스템(수식 14)을 한 번만 풀면 됩니다. 이는 계산적으로 훨씬 효율적이며, 그래디언트 $\frac{\partial L}{\partial y}$를 효과적으로 계산할 수 있게 해줍니다.

$\nabla^2 g(x)$의 역행렬은 비용이 많이 드는 $[\nabla^2 g(x)]^{-1} M$을 피하기 위해 의도적으로 $\frac{\partial L}{\partial x}$와 함께 묶여 있습니다. 어드조인트 벡터(adjoint vector) $z$는 다음 선형 연립방정식으로부터 풀 수 있습니다: $\nabla^2 g(x)$가 대칭이므로 전치를 생략합니다.

이들을 종합하면, 한 시간 스텝 내의 역전파는 수식 (13)과 (14)에 의해 수행될 수 있음을 보였습니다. 이제 $\nabla^2 g(x)$가 순방향 시뮬레이션과 역전파 모두에서 중요한 역할을 한다는 것이 명확해졌으며, 그 정의를 아래에 명시적으로 씁니다:

Eq. 15: 목적 함수의 헤시안$$\nabla^2 g(x) = \frac{1}{h^2} M + \nabla^2 E(x)$$이 수식은 목적 함수 $g(x)$의 헤시안 행렬을 정의합니다. 이는 상수인 질량 행렬 항과, 상태 $x$에 따라 변하는 비선형적인 강성(stiffness) 항($E(x)$의 헤시안)으로 구성됩니다. 이 행렬은 순방향 시뮬레이션(뉴턴 방법)과 역전파(어드조인트 방법) 모두에서 계산 병목의 원인이 됩니다.

순방향 시뮬레이션에서의 뉴턴 방법과 유사하게, 수식 (14)의 직접적인 구현은 $\nabla^2 g(x)$가 매 시간 스텝마다 재구성되고 재분해되어야 하므로 계산 비용이 많이 듭니다. 이는 우리가 4절에서 새로운 PD 기반 역전파 방법을 제안하게 된 동기가 됩니다.

프로젝티브 다이내믹스(Projective Dynamics). PD재료 모델의 비선형성을 분리하는 특정 2차 위치 에너지 군을 고려합니다 [Bouaziz/2014/Projective Dynamics]. 구체적으로, PD는 에너지 $E$가 다음과 같은 형태를 취하는 2차 에너지의 합이라고 가정합니다:

Eq. 16 & 17: PD의 2차 에너지 형태$$E_c(x) = \min_{p_c \in \mathcal{M}_c} \underbrace{\frac{w_c}{2} \|G_c x - p_c\|_2^2}_{\tilde{E}_c(x, p_c)}$$$$E(x) = \sum_c E_c(x)$$이 수식들은 PD의 핵심 가정인 에너지 형태를 정의합니다. 각 요소 $c$의 에너지 $E_c(x)$는 변형된 상태 $G_c x$가 제약 조건 매니폴드 $\mathcal{M}_c$ 상의 가장 가까운 점 $p_c$까지의 제곱 거리로 정의됩니다. 이 공식화는 복잡한 비선형성을 분리하는 열쇠입니다.

여기서 $G_c$는 상수 희소 행렬 형태의 이산 미분 연산자이고, $w_c$는 에너지의 강성을 결정하는 스칼라이며, $\mathcal{M}_c$는 제약 매니폴드입니다. 예를 들어, 부피 보존 탄성 에너지를 공식화하고 싶다면, $\mathcal{M}_c$는 행렬식이 1인 모든 3x3 행렬의 집합이 될 수 있습니다. $E_c$는 $G_c x$에서 $\mathcal{M}_c$까지의 거리로 정의됩니다. 이전 연구들[Bouaziz/2014/Projective Dynamics, Liu/2017/Quasi-Newton Methods, Min/2019/SoftCon]의 일반적인 관행에 따라, 우리는 $E_c$가 각 유한 요소에 대해 정의되며, $G_c$는 $x$를 지역 변형 구배(local deformation gradients) $F$에 매핑한다고 가정합니다 [Sifakis/2012/FEM Simulation].

$E$의 정의를 바탕으로, PD지역 스텝(local step)전역 스텝(global step)을 번갈아 수행하여 $g$의 임계점을 얻으며, 이는 본질적으로 다음의 대리 목적 함수(surrogate objective) $\tilde{g}(x, p)$를 최소화합니다:

Eq. 18: PD의 대리 목적 함수$$\tilde{g}(x, p) = \frac{1}{2h^2} (x - y)^\top M(x - y) + \sum_c \tilde{E}_c(x, p_c)$$PD는 원래의 복잡한 목적 함수 $g(x)$ 대신 이 더 간단한 대리 목적 함수 $\tilde{g}(x, p)$를 최소화합니다. 원래 에너지의 어려운 $\min$ 연산이 고정된 투영점 $p_c$로 대체되어, $p$가 고정되었을 때 $x$에 대한 2차 함수가 됩니다.

여기서 $p$는 각 $E_c$의 모든 $p_c$를 쌓은 것입니다. PD지역 및 전역 스텝은 $\tilde{g}$에 대해 좌표 하강 최적화(coordinate descent optimization)를 실행하는 것으로 해석될 수 있습니다. 지역 스텝은 현재의 $x$를 고정하고 $G_c x$를 $\mathcal{M}_c$에 투영하여 각 $E_c$에서 $p_c$를 얻으며, 이는 모든 $E_c$에 걸쳐 대규모 병렬 처리가 가능합니다. 전역 스텝은 $p$를 고정하고 $x$에 대해 $\tilde{g}$를 최소화하는데, 이는 다음의 선형 연립방정식으로부터 해석적 해를 갖는 2차 함수로 귀결됩니다:

Eq. 19: PD의 전역 스텝 선형 시스템$$ \underbrace{ (\frac{1}{h^2} M + \sum_c w_c G_c^\top G_c) }_{A} x = \frac{1}{h^2} My + \sum_c w_c G_c^\top p_c$$이것이 PD의 전역 스텝에서 푸는 선형 시스템입니다. 좌변의 행렬 $A$는 질량과 재료 강성에만 의존하며, 시뮬레이션 중에 변하지 않는 상수 행렬입니다. 이것이 바로 PD핵심적인 효율성의 원천입니다.

각 지역 및 전역 스텝이 $\tilde{g}$를 비증가적으로 만든다는 것을 쉽게 알 수 있습니다. $\tilde{g}$는 0으로 하한이 정해져 있으므로, PD는 경사도 조건 $\nabla_x \tilde{g} = 0$을 만족하는 $\tilde{g}$의 지역 최소값으로 수렴을 보장합니다. 흥미롭게도, Liu/2017/Quasi-Newton Methods는 수렴 시 $\nabla_x \tilde{g} = \nabla g$임을 입증하여, PD의 해가 실제로 암시적 시간 통합을 푸는 $g$의 임계점임을 확인시켜 줍니다. 우리는 이 지역-전역 솔버를 알고리즘 1에 요약하며, 이는 5.2절에서 설명할 우리의 접촉 처리 알고리즘의 기초가 됩니다.

순방향 PD 시뮬레이션의 효율성의 원천은 전역 스텝의 $A$가 상수이며, 대칭 양정부호 행렬이라는 사실에 있습니다. 따라서, $A$의 콜레스키 분해(Cholesky factorization)를 미리 계산할 수 있으며, 그 후 각 전역 스텝은 후방 대입(back-substitution)만 필요로 합니다. 다음 섹션에서는 역전파에서도 $A$를 사용하여 상당한 속도 향상을 얻을 수 있음을 보여줄 것입니다.

쪽집게 과외

알고리즘

flowchart TD subgraph Newton Method (Standard Implicit Solver) direction LR A1[Start Step] --> B1{Loop until converged} B1 --> C1["`Assemble Hessian` H = ∇²g(xₖ)
(Expensive, state-dependent) "]:::warn C1 --> D1["`Factorize` H
(Expensive, e.g., LU/Cholesky)"]:::warn D1 --> E1["Solve HΔx = -∇g(xₖ) for Δx"] E1 --> F1["Update xₖ₊₁ = xₖ + Δx"] F1 --> B1 end subgraph Projective Dynamics (PD) direction LR A2[Start Sim: Precompute Cholesky of A]:::pros --> B2{Loop until converged} B2 --> C2["Local Step: Project Gc x to get p
(Massively Parallel)"]:::idea C2 --> D2["Global Step: Assemble RHS `b`"] D2 --> E2["Solve Ax = b for x
(Fast back-substitution)"]:::pros E2 --> B2 end classDef warn fill:#FFD3C2 classDef pros fill:#D0F1B9 classDef idea fill:#E8D2E5

핵심 콕콕

• 암시적 시간 통합은 큰 시간 스텝에서도 안정적이지만, 매 스텝마다 비선형 방정식을 풀어야 하는 부담이 있습니다.
• 표준적인 뉴턴 방법은 매 반복마다 상태에 따라 변하는 큰 헤시안 행렬(∇²g)을 새로 계산하고 분해해야 하므로 매우 느립니다.
• 암시적 단계를 통한 역전파(Adjoint Method) 역시 동일한 헤시안 행렬(∇²g)에 대한 선형 시스템을 풀어야 하므로 계산 비용이 높습니다.
• 프로젝티브 다이내믹스(PD)는 에너지 공식을 바꿔서 전역 시스템 행렬(A)이 시뮬레이션 내내 상수로 유지되도록 합니다.
• 이 상수 행렬 A는 미리 한 번만 콜레스키 분해(Cholesky factorization) 해두면, 매 반복마다 매우 빠른 후방 대입만으로 해를 구할 수 있어 엄청난 속도 향상을 가져옵니다.

함정 주의

PD가 최소화하는 '대리 목적 함수' ˜g(x, p)와 원래의 '동역학적 목적 함수' g(x)를 혼동하지 마세요.
- g(x)는 풀어야 할 진짜 문제이지만 비선형성이 강해 직접 풀기 어렵습니다.
- ˜g(x, p)는 p를 고정하면 x에 대한 2차식이 되어 풀기 쉬운 '근사 문제'입니다.
PD는 p를 업데이트(지역 스텝)하고 x를 푸는(전역 스텝) 과정을 반복하여 점진적으로 g(x)의 해를 찾아갑니다.

구현 힌트

Projective Dynamics의 핵심 효율성은 전역 스텝 행렬 A의 콜레스키 분해를 미리 계산해두는 데 있습니다. 시뮬레이션 시작 전에 A = (1/h² M + Σ w_c G_cᵀ G_c)를 한 번만 조립하고 분해해두세요. 그러면 시뮬레이션 루프 내의 전역 스텝은 매번 비싼 행렬 분해 대신 매우 빠른 후방 대입(back-substitution)으로 해결할 수 있습니다. 이 사전 계산 단계가 PD 성능의 핵심입니다.

쉬운 비유

Projective Dynamics의 지역-전역 스텝f>을 쉽게 비유해볼게요.
여러 사람이 고무줄(스프링)로 서로 연결되어 있다고 상상해봅시다. 각자에게 '저기 보이는 의자 근처로 가세요'라는 개별 목표가 주어집니다.
- 지역 스텝 (Local Step): 각 사람은 다른 사람들은 잠시 무시하고, 자기가 가야 할 가장 가까운 의자 위 지점(목표점 p_c)을 스스로 계산합니다. 이 작업은 모든 사람이 동시에 독립적으로 할 수 있죠. (대규모 병렬 처리 가능)
- 전역 스텝 (Global Step): 이제 모든 사람이 자기가 정한 목표점을 향해 한 걸음 움직이려고 합니다. 하지만 모두 고무줄로 연결되어 있어서 서로를 끌어당깁니다. '전역 스텝'은 이 모든 고무줄의 장력을 고려해서 모든 사람이 균형을 이루는 최적의 다음 위치(x)를 한 번에 계산해주는 것입니다. 이 계산은 복잡해 보이지만, PD에서는 고무줄 연결 구조(행렬 A)가 변하지 않기 때문에 미리 '계산 공식'을 만들어두고 빠르게 풀 수 있습니다.

이 두 단계를 반복하면, 모든 사람이 자신의 목표 의자에 가까워지면서도 서로의 연결을 유지하는 안정적인 상태에 도달하게 됩니다.

셀프 테스트

[O/X] 암시적 시간 통합 방식은 양함수적 방식보다 항상 스텝당 계산 속도가 빠르다.

정답 보기

정답: X
해설: 암시적 방식은 더 큰 시간 스텝을 사용할 수 있어 안정적이지만, 각 스텝마다 비선형 방정식을 풀어야 하므로 스텝당 계산 비용은 더 높습니다. 전체 시뮬레이션 시간은 더 짧을 수 있습니다.

[빈칸] Projective Dynamics에서 전역 스텝의 시스템 행렬 A는 시뮬레이션 동안 변하지 않는 ___ 행렬이므로, ___ 분해를 미리 계산하여 속도를 높일 수 있다.

정답 보기

정답: 상수 (constant), 콜레스키 (Cholesky)
해설: PD의 핵심은 시스템 행렬 A가 상태에 무관한 상수가 되도록 문제를 공식화하는 것입니다. 덕분에 대칭 양정부호 행렬에 효율적인 콜레스키 분해를 미리 계산해둘 수 있습니다.

[서술형] 뉴턴 방법과 Projective Dynamics가 암시적 시간 통합 문제를 푸는 방식의 근본적인 차이점과, 이로 인해 발생하는 성능 차이의 원인을 설명하시오.

정답 보기

모범답안: 뉴턴 방법은 매 반복마다 현재 상태 x_k에 따라 변하는 헤시안 행렬 ∇²g(x_k)를 계산하고 분해해야 하므로 비용이 높습니다. 반면, PD는 비선형성을 지역 투영 단계로 분리하고, 전역 단계에서는 상태에 무관한 상수 행렬 A에 대한 선형 시스템을 풉니다. 이 행렬 A는 미리 분해(콜레스키 분해)해둘 수 있어, 반복 계산이 매우 빠르기 때문에 성능상 큰 이점을 가집니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
4 DIFFERENTIABLE PROJECTIVE DYNAMICS (미분 가능한 투영 동역학)

이제 저희의 PD 기반 역전파 방법을 설명합니다. 저희의 핵심 관찰은 역전파의 병목 현상이 식 (14)의 $\nabla^2 g(\mathbf{x})$ 계산에 있다는 것입니다. 순방향 PD 시뮬레이션에서와 동일한 아이디어를 따라, 저희는 $\nabla^2 g(\mathbf{x})$를 전역적인 상수 행렬과 지역적이고 대규모 병렬 처리가 가능한 비선형 구성요소로 분리할 것을 제안합니다. 이 점을 확인하기 위해, 식 (16)과 (17)을 사용하여 $\nabla^2 E$를 계산합니다:

Eq. 20$$\nabla E(\mathbf{x}) = \sum_c w_c \mathbf{G}_c^\top (\mathbf{G}_c \mathbf{x} - \mathbf{p}_c),$$이 수식은 위치 $\mathbf{x}$에서의 위치 에너지 $E$의 그래디언트(기울기)를 나타냅니다. 각 제약 조건 $c$에 대해, 가중치 $w_c$와 선택 행렬 $\mathbf{G}_c$를 사용하여 현재 상태 $\mathbf{G}_c \mathbf{x}$와 목표 투영점 $\mathbf{p}_c$ 사이의 차이로부터 내부 힘을 계산합니다.Eq. 21$$\nabla^2 E(\mathbf{x}) = \sum_c w_c \mathbf{G}_c^\top \mathbf{G}_c - \sum_c w_c \mathbf{G}_c^\top \frac{\partial \mathbf{p}_c}{\partial \mathbf{x}}.$$이 수식은 위치 에너지 $E$의 헤시안(이계도함수 행렬)을 나타냅니다. 첫 번째 항은 상수 부분이며, 두 번째 항은 목표 투영점 $\mathbf{p}_c$가 $\mathbf{x}$에 따라 어떻게 변하는지를 나타내는 비선형적인 부분입니다.

식 (20)에서, $\frac{\partial \mathbf{p}_c}{\partial \mathbf{x}}$는 포락선 정리에 따라 안전하게 무시될 수 있습니다(Liu/2017/Quasi-Newton Methods의 부록 참조). 식 (15)에 따르면, $\nabla^2 g(\mathbf{x})$는 이제 다음과 같이 됩니다:

Eq. 22$$\nabla^2 g(\mathbf{x}) = \underbrace{\frac{1}{h^2} \mathbf{M} + \sum_c w_c \mathbf{G}_c^\top \mathbf{G}_c}_{\mathbf{A}} - \underbrace{\sum_c w_c \mathbf{G}_c^\top \frac{\partial \mathbf{p}_c}{\partial \mathbf{x}}}_{\Delta \mathbf{A}} = \mathbf{A} - \Delta \mathbf{A}.$$이 수식은 전체 목적 함수 $g$의 헤시안 $\nabla^2 g(\mathbf{x})$를 상수 행렬 $\mathbf{A}$와 비선형성을 포함하는 행렬 $\Delta \mathbf{A}$의 차이로 분해하는 핵심 아이디어를 보여줍니다. 이 분해 덕분에 역전파 계산을 가속화할 수 있습니다.

이제 $\Delta \mathbf{A}$가 $\nabla^2 g$에서 비선형성의 원천임이 명확합니다. $\nabla^2 g = \mathbf{A} - \Delta \mathbf{A}$라는 행렬 분해는 식 (14)에 대한 다음과 같은 반복적 솔버를 제안합니다:

Eq. 23$$\mathbf{A} \mathbf{z}_{k+1} = \Delta \mathbf{A} \mathbf{z}_k + (\frac{\partial L}{\partial \mathbf{x}})^\top,$$이 수식은 역전파에서 어드조인트 벡터 $\mathbf{z}$를 찾기 위한 반복적 갱신 규칙입니다. 좌변의 상수 행렬 $\mathbf{A}$는 미리 콜레스키 분해를 계산해 둘 수 있어, 매 반복마다 $\mathbf{z}_{k+1}$을 효율적으로 계산할 수 있습니다.

여기서 $k$는 반복 횟수를 나타냅니다. 따라서, 저희는 식 (14)에 대한 지역-전역 솔버를 제안합니다: $k$번째 반복에서, 지역 단계는 모든 에너지 $E_c$에 대해 $\Delta \mathbf{A} \mathbf{z}_k$를 계산하여 식 (23)의 우변 벡터를 형성합니다. 전역 단계에서는, $\mathbf{A}$를 역대입하여 $\mathbf{z}_{k+1}$을 풉니다. $\mathbf{A}$는 순방향 PD 시뮬레이션과 동일한 상수 행렬이므로, $\mathbf{A}$의 콜레스키 분해를 재사용할 수 있습니다. 이 지역-전역 솔버의 효율성의 원천은 PD가 순방향 시뮬레이션을 가속화하기 위해 제안한 것과 유사합니다. 본질적으로, 이 지역-전역 솔버는 식 (14)에서 $\nabla^2 g$의 비용이 많이 드는 행렬 조립 및 인수분해상수의, 미리 인수분해된 선형 방정식 시스템에 대한 반복으로 대체합니다. 저희의 PD 역전파 알고리즘을 알고리즘 2에 요약합니다.

Convergence Rate (수렴 속도)

어떤 반복 알고리즘 설계에서든, 즉각적으로 따라오는 질문은 해당 알고리즘이 수렴을 보장하는지, 그리고 만약 그렇다면 수렴 속도가 얼마나 빠른지입니다. 이 질문들에 답하기 위해, 저희는 $(\frac{\partial L}{\partial \mathbf{x}})^\top = \mathbf{A}\mathbf{z} - \Delta\mathbf{A}\mathbf{z}$와 식 (23)을 사용하여 다음을 얻습니다:

Eq. 24$$\mathbf{A}(\mathbf{z}_{k+1} - \mathbf{z}) = \Delta \mathbf{A}(\mathbf{z}_k - \mathbf{z}),$$이 수식은 반복 솔버의 오차 전파 관계를 보여줍니다. $k$번째 반복에서의 오차 $(\mathbf{z}_k - \mathbf{z})$가 다음 반복에서의 오차 $(\mathbf{z}_{k+1} - \mathbf{z})$에 어떻게 영향을 미치는지 나타내며, 수렴 분석의 기초가 됩니다.

이로부터 $k$번째 반복에서의 오차는 $\|\mathbf{z}_k - \mathbf{z}\|_2 = \|(\mathbf{A}^{-1}\Delta\mathbf{A})^k(\mathbf{z}_0 - \mathbf{z})\|_2$라고 결론 내릴 수 있습니다. 따라서 식 (23)의 반복은 임의의 초기 추측값 $\mathbf{z}_0$에서 수렴이 보장되는 필요충분조건은 $\rho(\mathbf{A}^{-1}\Delta\mathbf{A}) < 1$이며, 여기서 $\rho(\cdot)$는 행렬의 스펙트럼 반경을 나타냅니다. $\rho(\mathbf{A}^{-1}\Delta\mathbf{A})$에 대한 더 많은 이론적 결과를 제공하는 것은 어려운데, 이는 $E_c$의 특정 형태에 크게 의존하기 때문이며, 이는 향후 연구 과제로 남겨둡니다. 실제로는 저희의 어떤 실험에서도 식 (23)에 대한 수렴 문제를 관찰하지 못했으며, 이는 $\rho(\mathbf{A}^{-1}\Delta\mathbf{A}) < 1$이 만족될 가능성이 높다는 것을 시사합니다.

Further Acceleration With Quasi-newton Methods (준-뉴턴 방법을 이용한 추가 가속)

Liu et al. [2017]이 순방향 PD 시뮬레이션을 가속화하기 위해 준-뉴턴 방법을 적용한 것에서 영감을 받아, 이제 유사한 수치 최적화 관점이 역전파에서 저희가 제안한 지역-전역 솔버를 가속화하는 데에도 적용될 수 있음을 보여줍니다. 식 (14)를 푸는 것은 다음 에너지 $s(\mathbf{z})$의 임계점을 찾는 것과 같습니다:

Eq. 25$$s(\mathbf{z}) = \frac{1}{2}\mathbf{z}^\top \nabla^2 g(\mathbf{x})\mathbf{z} - \frac{\partial L}{\partial \mathbf{x}}\mathbf{z}.$$이 수식은 어드조인트 벡터 $\mathbf{z}$를 찾기 위한 보조 에너지 함수 $s(\mathbf{z})$를 정의합니다. 이 함수의 그래디언트를 0으로 만드는 $\mathbf{z}$를 찾는 것은 원래의 선형 시스템(식 14)을 푸는 것과 동일하며, 최적화 기법을 적용할 수 있는 길을 열어줍니다.

$\nabla s(\mathbf{z}) = 0$이 본질적으로 식 (14)와 같다는 것을 쉽게 확인할 수 있습니다. 역전파에서는 $\nabla^2 g(\mathbf{x})$와 $\frac{\partial L}{\partial \mathbf{x}}$ 모두 순방향 시뮬레이션에서 푼 $\mathbf{x}$에서 계산된 알려진 값임을 강조합니다. 만약 이 임계점 문제에 뉴턴의 방법을 적용한다면, 갱신 규칙은 다음과 같을 것입니다(3절의 식 (7)과 (8) 참조):

Eq. 26$$\mathbf{z}_{k+1} = \mathbf{z}_k - [\nabla^2 s(\mathbf{z}_k)]^{-1} \nabla s(\mathbf{z}_k).$$이 수식은 보조 에너지 함수 $s(\mathbf{z})$를 최소화하기 위한 표준 뉴턴 방법의 갱신 규칙입니다. 현재 추정치 $\mathbf{z}_k$에서 그래디언트 방향으로 이동하되, 헤시안의 역행렬을 곱하여 이동 크기와 방향을 조절합니다.

$s(\mathbf{z})$의 실제 헤시안은 식 (22)로부터 $\nabla^2 g(\mathbf{x}) = \mathbf{A} - \Delta \mathbf{A}$입니다. 만약 이를 $\mathbf{A}$로 근사하면, 다음과 같은 준-뉴턴 갱신 규칙을 얻습니다:

Eq. 27$$\begin{aligned} \mathbf{z}_{k+1} &= \mathbf{z}_k - \mathbf{A}^{-1} \nabla s(\mathbf{z}_k) \\ &= \mathbf{z}_k - \mathbf{A}^{-1}[(\mathbf{A} - \Delta \mathbf{A})\mathbf{z}_k - (\frac{\partial L}{\partial \mathbf{x}})^\top] \\ &= \mathbf{A}^{-1} \Delta \mathbf{A} \mathbf{z}_k + \mathbf{A}^{-1}(\frac{\partial L}{\partial \mathbf{x}})^\top, \end{aligned}$$이 수식은 실제 헤시안 $\nabla^2 g(\mathbf{x})$를 상수 행렬 $\mathbf{A}$로 근사하여 얻은 준-뉴턴 갱신 규칙을 보여줍니다. 놀랍게도 이 결과는 앞서 제안한 반복적 솔버(식 23)와 정확히 일치하며, 제안된 방법이 최적화 관점에서 타당함을 보여줍니다.

이는 식 (23)의 반복과 동일합니다. 결과적으로, 저희가 제안하는 지역-전역 솔버는 상수 헤시안 근사 $\mathbf{A}$를 사용하는 단순화된 준-뉴턴 방법을 실행하는 것으로 재해석될 수 있습니다. 예를 들어 BFGS와 같은 완전한 준-뉴턴 방법을 적용함으로써, 약간의 추가적인 벡터 곱 오버헤드만으로 $\mathbf{A}$의 콜레스키 분해를 재사용하고 초선형 수렴 속도를 달성할 수 있습니다(Nocedal/2006/Numerical Optimization). 더욱이, 이전 연구(Liu/2017/Quasi-Newton Methods)와 유사하게, 실제로는 수렴 문제를 겪지 않았지만 $\rho(\mathbf{A}^{-1}\Delta\mathbf{A}) \ge 1$일 때 수렴을 보장하기 위해 선형 탐색 기법을 적용할 수 있습니다.

쪽집게 과외

알고리즘

flowchart TD classDef core fill:#FFDBE6; classDef sub fill:#CCEFFF; classDef idea fill:#E8D2E5; classDef pros fill:#D0F1B9; classDef warn fill:#FFD3C2; classDef ref fill:#EBEBEC; classDef def fill:#FEEEB5; subgraph DiffPD 역전파 (한 타임스텝) A[입력: ∂L/∂x] --> B{반복 루프 시작} B --> C[지역 단계: b = ΔAz + (∂L/∂x)ᵀ]:::core C --> D[전역 단계: z = A⁻¹b]:::core D --> B B --> E{루프 종료} E --> F[출력: ∂L/∂y 계산]:::pros end subgraph 핵심 아이디어 G[헤시안 행렬 분해]:::idea H["∇²g = A(상수) - ΔA(비선형)"]:::def I[A의 콜레스키 분해 재사용]:::pros G --> H --> I end I --> D

핵심 콕콕

• 역전파의 병목 현상은 헤시안 행렬 `∇²g(x)` 계산에 있습니다.
• DiffPD는 헤시안을 상수 부분 `A`와 비선형 부분 `ΔA`로 분리하여 이 문제를 해결합니다.
• 순방향 시뮬레이션에서 미리 계산된 `A`의 콜레스키 분해를 재사용하여 역전파를 크게 가속화합니다.
• 이 접근법은 지역-전역 단계로 구성된 반복적 솔버로 구현되며, 이는 상수 헤시안을 사용하는 준-뉴턴 방법으로 해석될 수 있습니다.
• BFGS와 같은 완전한 준-뉴턴 방법을 적용하면 초선형 수렴 속도를 달성할 수 있습니다.

함정 주의

제안된 반복적 솔버(식 23)와 준-뉴턴 방법(식 27)을 별개의 방법으로 혼동하지 마세요.

본문에서 설명하듯이, 반복적 솔버는 실제 헤시안 `A - ΔA`를 상수 행렬 `A`로 근사하는 '단순화된' 준-뉴턴 방법을 실행하는 것과 수학적으로 동일합니다. 즉, 하나가 다른 하나를 해석하는 관점의 차이일 뿐입니다.

구현 힌트

구현 시 가장 중요한 최적화는 순방향 시뮬레이션에서 계산된 상수 행렬 `A`의 콜레스키 분해(Cholesky factorization)를 캐싱해두는 것입니다. 그리고 역전파의 전역 단계(global step)에서 이 캐싱된 분해 결과를 재사용하여 `z = A⁻¹b` 선형 시스템을 풀어야 합니다. 매번 `A`를 다시 분해하지 않고 역대입(back-substitution)만 수행하는 것이 이 방법의 핵심적인 속도 향상 요인입니다.

쉬운 비유

DiffPD의 역전파 가속 원리f>를 도시 계획 비유로 설명해볼게요.

- 문제: 도시 전체의 교통 흐름(`z`, 그래디언트)을 최적화해야 합니다.
- 기존 방식 (뉴턴 방법): 도로 하나를 바꿀 때마다 도시 전체의 모든 교차로와 골목길 상호작용(`∇²g`)을 처음부터 다시 계산합니다. 매우 느리고 비효율적입니다.
- DiffPD 방식 (제안 방법): 도시 교통의 90%는 고정된 주요 간선도로망(`A`)을 따라 흐른다는 것을 파악합니다. 그래서 간선도로망의 교통 흐름 패턴을 딱 한 번만 완벽하게 계산해서 지도에 그려놓습니다(콜레스키 분해 미리 계산). 이제 도로 하나를 바꿀 때는, 그 주변 골목길의 작은 변화(`ΔA`)만 계산한 뒤, 그 영향이 미리 계산된 간선도로망 지도에 어떻게 반영되는지만 확인하면 됩니다. 도시 전체를 재계산할 필요가 없어져 훨씬 빨라집니다.

셀프 테스트

[O/X] DiffPD의 역전파 과정은 매 타임스텝마다 전체 헤시안 행렬 `∇²g(x)`를 새로 구성하고 인수분해해야 하므로 계산 비용이 높다.

정답 보기

정답: X
해설: DiffPD는 헤시안을 상수 부분 `A`와 비선형 부분 `ΔA`로 분리하고, 미리 계산된 `A`의 콜레스키 분해를 재사용하므로 매번 새로 인수분해할 필요가 없어 효율적입니다.

[빈칸] 제안된 지역-전역 솔버는 실제 헤시안을 상수 행렬 `A`로 근사하는 단순화된 ___ 방법으로 재해석될 수 있다.

정답 보기

정답: 준-뉴턴 (Quasi-Newton)
해설: 본문에서는 제안된 반복적 솔버가 상수 헤시안 근사를 사용하는 준-뉴턴 방법의 갱신 규칙과 동일함을 보여줍니다.

[서술형] DiffPD의 역전파 과정에서 수렴이 보장되기 위한 수학적 조건은 무엇이며, 이 조건이 실제로 충족되지 않을 경우를 대비한 안전장치는 무엇인가?

정답 보기

모범답안: 수렴 보장 조건은 행렬 `A⁻¹ΔA`의 스펙트럼 반경 `ρ(A⁻¹ΔA)`가 1보다 작은 것입니다. 이 조건이 충족되지 않아 수렴이 불안정해질 경우를 대비하여, 준-뉴턴 방법의 맥락에서 선형 탐색(line search) 기법을 적용하여 수렴을 보장할 수 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00

실제로 수렴 문제를 겪지는 않았지만, 𝜌(A−1ΔA) ≥1일 때 수렴을 보장하기 위해 라인 서치 기법을 적용할 수 있습니다.

5 CONTACT HANDLING (접촉 처리)

섹션 4에서는 DiffPD의 기본 프레임워크를 설명했습니다.

이 섹션에서는 접촉 처리접촉 그래디언트DiffPD에 통합하는 새로운 방법을 제안합니다.

이러한 접촉 처리 알고리즘을 개발하는 데에는 두 가지 어려움이 있습니다: 첫째, 순방향 시뮬레이션역전파 모두에서 우리의 기본 PD 프레임워크와 호환되어야 합니다.

둘째, 미분 가능성을 지원해야 합니다.

이 섹션에서는 DiffPD가 지원하는 두 가지 접촉 옵션을 논의합니다: 정적 및 동적 마찰을 포함하는 명시적인 페널티 기반 접촉 모델과, 비관통 조건과 정적 마찰을 지원하는 암시적인 상보성 기반 접촉 모델입니다.

두 옵션 모두 장단점이 있습니다: 페널티 기반 방법구현이 더 간단하고, 예를 들어 PyTorch의 명시적인 신경망 레이어처럼 기계 학습 프레임워크에 통합하기가 더 쉽습니다.

하지만, 이 방법은 일반적으로 파라미터에 대한 신중한, 장면별 튜닝이 필요하다는 것을 발견했습니다.

반면에, 우리의 상보성 기반 방법장면에 의존적인 파라미터에 의존하지 않지만, 현재는 정적 마찰에만 제한됩니다.

우리의 페널티 기반 방법은 물리적 정확성보다 속도와 단순성을 선호하는 작업에 더 적합하며, 상보성 기반 방법은 비관통 조건을 엄격하게 적용해야 하고 미끄러짐 움직임이 드문 경우(예: 바퀴 달린 로봇 시뮬레이션)에 더 유용합니다.

5.1 Penalty-based Contact (페널티 기반 접촉)

쪽집게 과외

알고리즘

graph TD subgraph ContactHandling[접촉 처리 방법 선택] direction LR A{물리적 정확성이 중요한가?} -->|Yes| B[상보성 기반 모델] A -->|No| C[페널티 기반 모델] B --> B1{미끄러짐이 거의 없는가?} B1 -->|Yes| B2[상보성 모델 사용]:::pros B1 -->|No| B3[정적 마찰만 지원 (한계)]:::warn C --> C1{구현 용이성/속도가 중요한가?} C1 -->|Yes| C2[페널티 모델 사용]:::pros C1 -->|No| C3[장면별 파라미터 튜닝 필요 (한계)]:::warn end classDef pros fill:#D0F1B9 classDef warn fill:#FFD3C2

핵심 콕콕

• DiffPD는 미분 가능한 접촉 처리를 위해 두 가지 모델, 즉 페널티 기반 모델과 상보성 기반 모델을 지원합니다.
• 페널티 기반 모델은 구현이 쉽고 빠르지만, 각 장면에 맞게 파라미터를 수동으로 튜닝해야 하는 단점이 있습니다.
• 상보성 기반 모델은 파라미터 튜닝이 필요 없어 더 물리적으로 일관되지만, 현재 구현에서는 정적 마찰만 지원하는 한계가 있습니다.
• 어떤 모델을 선택할지는 물리적 정확성과 구현 편의성/속도 사이의 트레이드오프에 따라 결정됩니다.

함정 주의

페널티 기반 접촉 모델과 상보성 기반 접촉 모델을 혼동하지 마세요.
- 페널티 기반 모델은 충돌 시 '벌점(penalty)'처럼 가상의 힘을 가해 밀어내는 방식입니다. 구현은 간단하지만, 이 힘의 크기(강성)를 잘 조절해야 해서 튜닝이 필요합니다.
- 상보성 기반 모델은 '접촉하거나 떨어져 있거나 둘 중 하나'라는 물리 법칙(상보성 조건)을 수학적으로 엄밀하게 푸는 방식입니다. 더 정확하지만, 현재 구현에서는 정적 마찰만 다루는 한계가 있습니다.

구현 힌트

페널티 기반 접촉 모델은 구현이 간단하여 PyTorch 같은 딥러닝 프레임워크에 하나의 레이어처럼 쉽게 통합할 수 있습니다. 충돌 감지 후, 침투 깊이에 비례하는 힘을 계산하는 함수를 정의하고 이를 외부 힘(f_ext)에 더해주면 됩니다. 이 과정 전체가 미분 가능하므로 역전파에 문제가 없습니다.

쉬운 비유

두 가지 접촉 처리 방식f>을 쉽게 비유해볼게요.
- 페널티 기반 모델 (벌점 방식): 놀이터에서 아이들이 부딪히지 않게 하려고, 너무 가까이 다가오면 선생님이 "저리가!" 하고 살짝 밀어내는 것과 같아요. 얼마나 세게 밀지는 선생님(개발자)이 상황을 보고 정해야 하죠 (파라미터 튜닝).
- 상보성 기반 모델 (규칙 방식): "두 사람은 절대 같은 공간을 차지할 수 없다"는 절대적인 규칙을 세우고, 컴퓨터가 이 규칙을 만족하는 가장 자연스러운 해법을 수학적으로 찾아내는 것과 같아요. 규칙이 명확해서 선생님이 일일이 개입할 필요는 없지만(파라미터 튜닝 불필요), 규칙이 너무 엄격해서 아직은 '미끄러지는' 복잡한 상황은 다루기 어려워요 (정적 마찰만 지원).

셀프 테스트

[O/X] 페널티 기반 접촉 모델은 물리적으로 가장 정확한 시뮬레이션이 필요할 때 최적의 선택이다.

정답 보기

정답: X
해설: 페널티 기반 모델은 물리적 정확성보다 속도와 구현의 단순성을 우선할 때 더 적합합니다. 물리적 정확성이 더 중요할 때는 상보성 기반 모델이 더 나은 선택일 수 있습니다.

[빈칸] 상보성 기반 모델의 장점은 ___에 의존적인 파라미터를 튜닝할 필요가 없다는 것이지만, 단점은 현재 ___ 마찰만 지원한다는 것이다.

정답 보기

정답: 장면, 정적
해설: 본문에서는 상보성 기반 방법이 장면에 의존적인 파라미터가 필요 없지만(pros), 현재는 정적 마찰에만 제한된다(cons)고 설명합니다.

[서술형] 어떤 상황에서 페널티 기반 모델 대신 상보성 기반 모델을 사용하는 것이 더 유리한지, 그 이유와 함께 설명하시오.

정답 보기

모범답안: 비관통 조건(non-penetration)을 엄격하게 만족시켜야 하고, 물체 간 미끄러짐이 거의 없는 상황에서 상보성 기반 모델이 더 유리합니다. 예를 들어, 바퀴 달린 로봇이 지면과 접촉하는 경우, 바퀴가 지면을 뚫고 들어가지 않아야 하며 주로 구르기 때문에 미끄러짐이 적습니다. 이런 경우, 장면마다 파라미터를 튜닝해야 하는 페널티 기반 모델보다 파라미터 의존성이 없는 상보성 모델이 더 안정적이고 물리적으로 타당한 결과를 제공할 수 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
5.1 Penalty-based Contact (페널티 기반 접촉)

이전의 PD 시뮬레이션 관련 논문들은 일반적으로 페널티 기반 소프트 접촉 모델을 사용하여 접촉력을 처리합니다(Bouaziz/2014/Projective Dynamics, Dinev/2018a/Stabilizing Integrators, Liu/2017/Quasi-Newton Methods, Wang/2015/Chebyshev solvers, Wang/2016/Chebyshev solvers). 접촉력을 모델링하는 한 가지 일반적인 방법은 추가적인 가상 에너지 $E_c$를 더하는 것입니다. 여기서 $M_c$는 접촉 표면과 그 외부이며, $G_c$는 $x$에서 접촉 노드를 선택하는 행렬입니다. 이러한 방식으로, 노드가 접촉 표면을 관통할 때마다 $E_c$는 노드를 다시 접촉 표면으로 밀어내려는 접촉력을 가합니다. 이러한 접촉 모델은 PD 순방향 시뮬레이션에 매끄럽게 통합될 수 있으므로, 4절의 저희 역전파 방법은 이를 자연스럽게 지원합니다.

PD에서 페널티 기반 모델로 정적 및 동적 마찰력을 처리하는 것은 약간 더 까다롭습니다. 마찰은 일반적으로 노드 위치 $x$가 아닌 노드 속도와 관련이 있기 때문에, 이를 특징짓는 $E_c$를 찾는 것은 간단하지 않습니다. 따라서, 추가적인 $E_c$로 마찰을 모델링하는 대신, 저희는 Macklin/2020/Primal/Dual Descent Methods에 기술된 페널티 기반 마찰력을 가져와 $f_{ext}$에 직접 추가합니다. 이러한 마찰력에 대한 그래디언트를 유도하는 것은 이전처럼 연쇄 법칙을 사용하여 $\frac{\partial L}{\partial f_{ext}}$를 쉽게 계산할 수 있으므로 여전히 간단합니다.

5.2 Complementarity-based Contact (상보성 기반 접촉)

페널티 기반 접촉의 대안은 상보성 제약을 사용하여 접촉과 마찰을 모델링하는 것입니다(Ly/2020/Projective Dynamics with Dry Frictional Contact, Macklin/2020/Primal/Dual Descent Methods).

쪽집게 과외

알고리즘

flowchart TD classDef def fill:#FEEEB5; classDef warn fill:#FFD3C2; classDef pros fill:#D0F1B9; classDef core fill:#FFDBE6; subgraph PenaltyBased [페널티 기반 접촉 (Penalty-Based)] A[접촉 감지] --> B["가상 에너지 E_c 추가"]:::def B --> C["페널티 힘 계산"] C --> D["PD 프레임워크에 통합 용이"]:::pros end subgraph Friction [마찰력 처리] E["정적/동적 마찰력"] --> F["에너지 E_c로 모델링 어려움"]:::warn F --> G["외부 힘 f_ext에 직접 추가"]:::core G --> H["그래디언트 계산은 간단"]:::pros end

핵심 콕콕

• 페널티 기반 접촉은 물체가 관통했을 때 '가상 에너지'($E_c$)를 이용해 반발력을 만드는 방식입니다.
• 이 방식은 PD(Projective Dynamics) 시뮬레이션 프레임워크에 자연스럽게 통합되는 장점이 있습니다.
• 마찰력은 위치가 아닌 속도에 의존하기 때문에 에너지로 모델링하기 까다롭습니다.
• 이 문제를 해결하기 위해, 마찰력을 에너지 항이 아닌 외부 힘($f_{ext}$)에 직접 더하는 방식을 사용합니다.
• 마찰력을 외부 힘으로 처리하더라도, 그래디언트 계산은 연쇄 법칙을 통해 간단하게 수행할 수 있습니다.

함정 주의

페널티 기반 모델에서 '접촉력'과 '마찰력'의 처리 방식을 혼동하지 마세요.
- 접촉력: 위치 기반의 '가상 에너지'($E_c$)를 통해 모델링됩니다. 물체가 겹치면 에너지가 발생하여 서로 밀어냅니다.
- 마찰력: 속도에 의존하므로 에너지로 모델링하기 어렵습니다. 대신 계산된 마찰력을 '외부 힘'($f_{ext}$) 벡터에 직접 더하는 방식으로 처리합니다.

구현 힌트

페널티 기반 마찰력을 구현할 때, Macklin et al. (2020)의 모델을 참고하여 마찰력을 계산한 뒤, 이를 각 타임스텝의 외부 힘 벡터 $f_{ext}$에 더해주면 됩니다. 이렇게 하면 기존 PD 프레임워크의 에너지 항($E_c$)을 수정할 필요 없이 마찰을 추가할 수 있어 구현이 비교적 간단해집니다. 역전파 시에는 이 추가된 힘에 대한 그래디언트만 연쇄 법칙에 따라 계산해주면 됩니다.

쉬운 비유

페널티 기반 접촉f>을 쉽게 비유해볼게요.
- 비유: 두 사람이 너무 가까이 다가서면 서로 밀어내는 '개인 공간' 자석을 가지고 있다고 상상해보세요. 이 '개인 공간'이 바로 가상 에너지f>입니다. 평소에는 아무 힘도 없다가, 누군가 내 공간을 침범(관통)하면 자석처럼 강한 반발력이 생겨 상대를 밀어냅니다. 시뮬레이션에서도 물체가 충돌하면 이 가상 에너지가 '벌칙(penalty)'으로 작용해 접촉력을 만들어내는 원리입니다.

셀프 테스트

[O/X] 페널티 기반 모델에서는 마찰력도 접촉력과 동일하게 가상 에너지($E_c$)를 추가하여 모델링한다.

정답 보기

정답: X
해설: 마찰력은 위치가 아닌 속도에 의존하므로 에너지로 모델링하기 까다롭습니다. 본문에서는 마찰력을 외부 힘($f_{ext}$)에 직접 추가하는 방식을 사용합니다.

[빈칸] 페널티 기반 접촉 모델은 PD 순방향 시뮬레이션에 ___ 통합될 수 있어, 역전파 방법도 이를 자연스럽게 지원한다.

정답 보기

정답: 매끄럽게
해설: 페널티 기반 접촉은 가상 에너지 항으로 표현될 수 있어 기존 PD 프레임워크에 쉽게 통합되는 장점이 있습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
6.2 Comparisons With Other Implicit Methods (다른 암시적 방법과의 비교)

이제 저희 시뮬레이터를 다른 암시적 시간 전개 기법과 비교하여 순방향 및 역방향 모드에서의 속도 향상을 평가합니다.

저희는 암시적 시간 적분을 위한 기준 솔버로 사전 조건화된 켤레 기울기법을 사용하는 반복 솔버(Newton-PCG)와 콜레스키 분해를 사용하는 직접 솔버(Newton-Cholesky)라는 두 가지 표준 희소 선형 솔버를 갖춘 뉴턴 방법을 선택합니다.

먼저, 4절의 접촉이 없는 뉴턴 방법과 비교합니다.

그런 다음, 5절의 접촉 처리 알고리즘의 성능을 벤치마킹합니다.

표준 PD 프레임워크에서와 마찬가지로, DiffPD뉴턴 방법에 비해 얻는 모든 속도 향상은 재료 모델이 이차 에너지 함수를 갖는다는 가정 하에 이루어짐을 다시 한번 강조합니다.

일반적인 초탄성 재료에 대한 논의는 논문 말미로 확장하고 향후 연구 과제로 남겨둡니다.

Simulation Without Contact (접촉 없는 시뮬레이션)

저희는 32 × 8 × 8 요소, 8019 자유도(DoF), 그리고 243개의 디리클레 경계 제약 조건을 가진 캔틸레버(Fig. 1의 “Cantilever” 및 Table 3)를 사용하여 저희 방법, Newton-PCG, Newton-Cholesky를 벤치마킹합니다.

이 예제는 10밀리초의 시간 간격으로 25프레임 동안 실행됩니다.

손실 $L$을 최종 노드 위치와 속도의 무작위 가중 합으로 정의합니다.

실행 시간 비교 측면에서, 저희는 세 가지 방법을 모두 2, 4, 8개의 스레드로 실행하고 식 (3)을 푸는 데 사용되는 상대 오차에 대한 다양한 수렴 임계값(1e-1에서 1e-7까지)을 적용한 결과를 Fig. 3에 보고합니다.

병렬 컴퓨팅으로 인한 속도 향상은 뉴턴 방법에서 덜 명확한데, 이는 계산 시간의 대부분이 행렬 재분해에 소요되기 때문이며, 이 과정은 Eigen에서 간단하게 병렬화할 수 없습니다.

저희는 저희 시뮬레이터가 순방향 시뮬레이션과 역전파 모두에서 시간 비용 면에서 뉴턴 방법보다 명백한 이점을 가진다고 결론 내립니다.

순방향 시뮬레이션의 경우, 속도 향상은 이전의 많은 PD 논문들(Bouaziz/2014/Projective Dynamics, Liu/2017/Quasi-Newton Methods)에서 잘 이해되고 논의되었습니다.

적당한 허용 오차(1e-3에서 1e-5)에 대해, 8개의 스레드를 사용한 순방향 시뮬레이션에서 9-16배의 속도 향상을 관찰했으며, 정밀도가 높아질수록 그 효과는 덜 중요해진다는 점에 주목합니다.

이 두 관찰 결과는 순방향 시뮬레이션을 위한 PD에 대한 이전 연구와 일치합니다.

역전파에서, DiffPD 방법은 콜레스키 분해의 재사용준-뉴턴 업데이트 덕분에 적당한 허용 오차에 대해 뉴턴 방법보다 6-13배 더 빠릅니다.

특히, 4절에서 제안된 준-뉴턴 방법을 사용한 가속 기법이 없다면, PD 역전파는 매우 낮은 정밀도에서만 뉴턴 방법보다 빠르다는 점(Fig. 3 오른쪽의 주황색)을 지적하며, 이는 준-뉴턴 업데이트의 필요성을 확인시켜 줍니다.

PD는 결과가 수렴 임계값에 의존하는 반복적인 방법이므로, 어떤 임계값이 가장 적절한지 정당화할 필요가 있습니다.

임계값 선택의 영향을 분석하기 위해, 저희는 Newton-Cholesky의 결과를 기준으로 삼는데, 이는 해가 기계 정밀도로 계산되는 직접 솔버이기 때문입니다.

그런 다음 저희 방법과 Newton-PCG를 모두 기준과 비교하기 위해, 다양한 수렴 임계값을 사용하여 “Cantilever” 예제의 손실과 그래디언트를 계산하고 세 방법의 결과가 언제 일치하기 시작하는지 분석합니다.

이 비교는 수렴 임계값 선택에 대한 정량적 지침을 제공하고, 저희 방법이 최적화 작업에서 뉴턴 방법의 신뢰할 수 있는 대안이 될 수 있는 범위를 보여줍니다.

저희의 연구 결과를 Fig. 3에 보고합니다.

Newton-PCG와 저희 방법은 반복적인 방법이므로, 수렴 임계값이 더 엄격해질수록 정확도가 향상됩니다.

그림에서 볼 수 있듯이, 저희 방법은 1e-4만큼 큰 임계값을 사용할 때 수치적 손실과 그래디언트에서 뉴턴 방법과 일치합니다.

따라서, 저희는 별도로 명시하지 않는 한 아래에서 논의될 모든 응용 프로그램에서 1e-4를 기본 임계값으로 사용합니다.

Fig. 3을 다시 참조하면, 8개의 스레드와 1e-4의 수렴 임계값을 사용할 때, 저희 방법은 Newton-PCGNewton-Cholesky에 비해 상당한 속도 향상(순방향 시뮬레이션에서 12-16배, 역전파에서 6.5-9배 빠름)을 달성합니다.

Simulation With Contact (접촉이 있는 시뮬레이션)

지속적으로 접촉 처리가 필요한 벤치마크 장면을 만들기 위해, 저희는 수평 충돌 평면 위에서 부드러운 구를 5밀리초의 시간 간격으로 100프레임 동안 굴립니다(“Rolling sphere” in Fig. 1 and Table 3).

구는 552개의 요소와 2469개의 자유도로 복셀화되었으며, 저희가 고려하는 최대 가능한 접촉 집합 $C$는 구 표면의 72개 노드(216 자유도)로 구성됩니다.

“Cantilever” 예제와 유사하게, 손실 함수 $L$을 최종 노드 위치와 속도의 무작위 가중 평균으로 정의합니다.

저희는 5.2절의 접촉 처리 알고리즘을 Newton-PCG, Newton-Cholesky, 그리고 저희 방법으로 구현하고, 그 시간 비용과 손실 및 그래디언트를 Fig. 4에 보고합니다.

Fig. 4에서 볼 수 있듯이, 세 방법의 결과는 수렴 임계값이 1e-6에 도달했을 때 수렴하기 시작하며, 이 값에서 저희 방법은 순방향 및 역방향 모드 모두에서 뉴턴 방법보다 10배 더 빠릅니다(Fig. 4).

이러한 속도 향상은 주로 처음부터 값비싼 행렬 분해를 피하는 저계수 갱신 알고리즘(Alg. 4)에서 비롯됩니다.

추가적으로, Fig. 4의 주황색과 녹색 곡선을 비교함으로써, 저희는 $A^{-1}I_{I \times C}$를 캐싱하는 가속 기법이 8개의 스레드와 1e-6의 수렴 임계값으로 측정했을 때 DiffPD를 순방향 모드에서 25%, 역방향 모드에서 44% 더 가속화한다고 결론 내립니다.

쪽집게 과외

핵심 콕콕

• DiffPD는 암시적 시간 적분법을 사용하는 다른 두 기준 방법(Newton-PCG, Newton-Cholesky)과 비교되었습니다.
• 접촉이 없는 '캔틸레버' 예제에서 DiffPD는 순방향 시뮬레이션에서 12-16배, 역전파에서 6.5-9배 더 빨랐습니다. 이는 사전 계산된 콜레스키 분해 재사용과 준-뉴턴 업데이트 덕분입니다.
• 접촉이 있는 '구르기 구' 예제에서 DiffPD는 순방향 및 역방향 모두에서 약 10배 더 빨랐습니다. 이는 접촉 집합 변화를 효율적으로 처리하는 저계수 갱신(low-rank update) 알고리즘 덕분입니다.
• 1e-4 정도의 수렴 임계값으로도 DiffPD는 뉴턴 방법과 거의 동일한 정확도의 결과를 내면서도 훨씬 빠른 계산 속도를 보여주었습니다.

함정 주의

DiffPD가 뉴턴 방법보다 빠른 이유를 단순히 'Projective Dynamics(PD)가 빠르기 때문'이라고만 생각하면 안 됩니다.

핵심은 순방향 시뮬레이션뿐만 아니라 역전파(backpropagation) 과정에서도 PD의 구조적 이점을 활용했다는 점입니다. 뉴턴 방법은 매 타임 스텝마다 시스템 행렬(Hessian)을 새로 계산하고 분해해야 해서 비용이 많이 듭니다. 반면 DiffPD는 순방향 시뮬레이션에서 미리 계산해 둔 상수 행렬 A의 콜레스키 분해를 역전파 과정에서도 재사용합니다. 이 '재사용'이 역전파의 병목 현상을 해결하여 전체적인 속도 향상을 이끌어내는 핵심 원리입니다.

구현 힌트

접촉이 포함된 미분 가능 시뮬레이션을 구현할 때, 접촉 지점이 바뀔 때마다 전체 시스템 행렬을 다시 분해하는 것은 성능 저하의 주된 원인이 됩니다. 본문에서 제안하는 저계수 갱신(low-rank update) 기법은 이러한 상황에서 매우 효과적입니다. 접촉으로 인한 변화를 전체 행렬의 작은 변화로 간주하고, Woodbury 행렬 항등식 등을 이용해 기존의 행렬 분해 결과를 재활용하는 방식으로 구현하면 큰 속도 향상을 얻을 수 있습니다. 특히 접촉점의 수가 전체 자유도에 비해 훨씬 적은 3D 볼류메트릭 시뮬레이션에서 이 기법의 효과가 극대화됩니다.

쉬운 비유

DiffPD와 뉴턴 방법의 효율성 차이f>를 레고 조립에 비유해 볼게요.

- 뉴턴 방법: 아주 크고 복잡한 레고 성을 만들었다고 상상해보세요. 성의 일부분(예: 탑 꼭대기)을 약간 수정하고 싶을 때마다, 성 전체를 부수고 처음부터 다시 조립하는 것과 같아요. 매번 시간과 노력이 엄청나게 들겠죠. 이것이 매 스텝마다 행렬을 새로 만들고 분해하는 뉴턴 방법입니다.

- DiffPD: 이번에는 레고 성을 '모듈' 단위로 만들었어요. 튼튼한 성의 기반(미리 계산된 행렬 A의 분해)은 한 번만 만들어두고, 수정하고 싶은 부분은 미리 만들어둔 다른 작은 부품(local step)으로 '교체'만 하는 방식이에요. 전체를 부술 필요 없이 필요한 부분만 빠르게 바꿀 수 있죠. 이것이 사전 계산된 정보를 재활용하여 속도를 높이는 DiffPD의 원리입니다.

셀프 테스트

[O/X] DiffPD가 뉴턴 방법에 비해 빠른 이유는 순방향 시뮬레이션에서만 Projective Dynamics를 사용하고, 역전파에서는 표준적인 Adjoint 방법을 사용하기 때문이다.

정답 보기

정답: X
해설: DiffPD의 핵심적인 기여는 순방향 시뮬레이션뿐만 아니라 역전파 과정에서도 Projective Dynamics의 구조(사전 계산된 행렬 분해 재사용)를 활용하여 속도를 크게 향상시켰다는 점입니다.

[빈칸] 접촉이 있는 시뮬레이션에서 DiffPD는 접촉 집합의 변화를 ___ 갱신(update)으로 처리하여, 매번 시스템 행렬을 다시 분해하는 비용을 피한다.

정답 보기

정답: 저계수 (low-rank)
해설: 접촉점의 변화는 전체 시스템 행렬에 작은 변화만을 야기하므로, 이를 저계수 갱신으로 모델링하여 기존의 계산 결과를 효율적으로 재사용할 수 있습니다.

[서술형] DiffPD의 역전파 과정에서 '준-뉴턴(quasi-Newton) 업데이트'가 필수적인 이유는 무엇이며, 이것이 없다면 어떤 문제가 발생하는가?

정답 보기

모범답안: DiffPD의 역전파는 $Az_{k+1} = \Delta Az_k + (\partial L / \partial x)^T$ 형태의 반복 솔버를 사용합니다. 만약 단순 반복법만 사용하면(준-뉴턴 업데이트 없이), 수렴 속도가 매우 느려져서 아주 낮은 정밀도에서만 뉴턴 방법보다 빠른 성능을 보입니다. 준-뉴턴 방법을 적용함으로써, 더 나은 업데이트 방향을 찾아내어 초선형 수렴(superlinear convergence) 속도를 달성할 수 있고, 이로 인해 높은 정밀도에서도 뉴턴 방법보다 훨씬 빠른 역전파 계산이 가능해집니다. 본문 Fig. 3의 주황색 그래프가 준-뉴턴 업데이트 없이는 성능이 저하됨을 보여줍니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
6.3 Ablation Study (절삭 연구)

이 섹션은 우리 알고리즘의 여러 구성 요소에 대한 절삭 연구로 마무리합니다.

먼저 역전파 알고리즘(섹션 4)의 반복 솔버와 선형 탐색 알고리즘에 대한 경험적 분석으로 시작하여, 페널티 기반 접촉 모델상보성 기반 접촉 모델에 대한 평가를 이어갑니다.

Spectral Radius And Line Search (스펙트럼 반지름과 선형 탐색)

우리의 역전파 솔버에서 만든 한 가지 핵심 가정은 스펙트럼 반지름 $\rho(A^{-1}\Delta A) < 1$이라는 것입니다. 이는 또한 가정이 성립하지 않을 때를 대비한 안전장치로 선형 탐색 알고리즘을 사용한 주된 이유 중 하나입니다.

여기서는 "캔틸레버" 예제를 사용하여 이 가정이 경험적으로 성립하는지 확인합니다.

우리는 "캔틸레버"에서 경험하는 $\rho(A^{-1}\Delta A)$를 명시적으로 계산했으며, 최대값이 0.996임을 관찰했습니다. 이는 반복 솔버에서 수렴을 기대할 수 있음을 나타내며, 100개의 무작위로 생성된 인공적인 우변 벡터 $\frac{\partial L}{\partial x}$로 반복 솔버를 테스트하여 이를 추가로 확인했습니다.

"구르는 구체" 예제와 섹션 7에서 설명할 응용 프로그램에서도 역전파 솔버의 수렴에 대해 유사한 결과를 관찰했으며, 이는 이론적 보장이 없음에도 불구하고 실제로는 반복 솔버가 수렴할 것으로 기대하는 것이 안전해 보인다는 것을 나타냅니다.

우리 알고리즘에서 선형 탐색을 사용하는 것은 $\rho(A^{-1}\Delta A) > 1$인 경우에 대한 안전장치 역할을 하므로, 스펙트럼 반지름에 대한 관찰로부터 얻는 한 가지 시사점은 실제로는 단계 크기를 줄이기 위해 선형 탐색을 거의 사용하지 않는다는 것입니다.

실제로, 이 "캔틸레버" 예제와 아래의 거의 모든 응용 프로그램에서, 뉴턴 방법준-뉴턴 방법에서의 기본 단계 크기(1)가 거의 항상 선형 탐색 단계를 건너뛸 수 있게 해준다는 것을 발견했습니다.

그럼에도 불구하고, 모든 예제에 대해 예방 차원에서 최대 선형 탐색 반복 횟수를 10으로 설정했습니다.

Penalty-based Contact (페널티 기반 접촉)

우리는 Macklin et al./2020/Primal/Dual Descent페널티 기반 접촉 및 마찰력을 DiffPD에 구현하고, 순방향 시뮬레이션과 역전파 모두에서 이를 분석합니다.

먼저, 순방향 시뮬레이션에서 이 접촉 모델의 표현력을 이해하기 위해 페널티 기반 모델에서 다양한 마찰 계수를 사용한 표준 "경사면" 테스트를 사용합니다.

두 번째로, 역전파에서 이 접촉 모델의 그래디언트를 사용하여 마찰 계수를 최적화하는 "오리" 예제를 사용합니다.

순방향 시뮬레이션에서 페널티 기반 접촉 모델의 성능을 보여주기 위해, 그림 5에 시각화된 "경사면" 테스트를 고려합니다.

우리는 Macklin et al./2020/Primal/Dual Descent의 페널티 형태에서 가져온 다양한 마찰 계수를 가진 네 개의 경사면에 말랑한 고무 오리(16776 자유도 및 24875 사면체)를 놓고 중력 하에서 2초 동안 미끄러지게 합니다.

그림에서 볼 수 있듯이, 왼쪽 경사면에서 오른쪽 경사면으로 미끄럼 마찰이 감소함에 따라, DiffPD에 구현된 Macklin et al./2020/Primal/Dual Descent의 방법은 우리의 질적 기대와 일치하는 다양한 미끄럼 거리를 생성합니다.

페널티 기반 접촉 모델을 역전파하는 것은 간단합니다. 왜냐하면 페널티 에너지를 미분하기 위해 연쇄 법칙을 절차적으로 적용하기만 하면 되기 때문입니다.

페널티 기반 모델DiffPD의 역전파와 완벽하게 호환되며 최적화 문제에 유용할 수 있음을 보여주기 위해, 우리는 동일한 고무 오리를 사용하지만 최적화할 마찰 계수(총 3 자유도)가 있는 곡선 슬라이드 위에서 "오리" 예제(그림 6)를 설계합니다.

오리는 곡면에서 미끄러져 내려와 목표 위치(흰색 원으로 표시)에 착지하는 것을 목표로 합니다.

마찰 계수는 곡면의 점착성에 영향을 미치고 오리가 슬라이드를 떠날 때의 탈출 속도를 제어하며, 이는 이후 중력 하에서의 움직임을 결정합니다.

그림 6의 그래디언트 기반 최적화 전후의 두 모션 시퀀스에서, 우리는 상당한 개선을 관찰했으며 이는 결국 오리를 목표 위치로 이끕니다.

이는 페널티 기반 접촉 방법을 사용하여 DiffPD에서 계산된 그래디언트의 유용성을 확인시켜 줍니다.

Complementarity-based Contact (상보성 기반 접촉)

상보성 형태로 기술된 접촉 모델의 경우, 우리의 역전파 알고리즘은 접촉 집합이 전체 자유도의 작은 부분집합이라고 가정합니다.

구체적으로, 알고리즘 4는 저계수 갱신을 활용하지 않고 수정된 선형 시스템을 직접 푸는 것보다 상당한 속도 향상을 얻기 위해 각 시간 단계에서 상대적으로 작은 크기의 $C$를 요구합니다.

$C$가 표면 정점의 부분집합이고, 그 수가 일반적인 3D 부피 변형체 내부 정점의 수보다 훨씬 적다는 점을 고려할 때, 이러한 가정은 많은 응용 분야에서 쉽게 만족될 수 있습니다.

실제로, 다음 섹션에서는 접촉을 포함하는 다양한 3D 예제를 제시할 것이며, 그 중 어느 것도 시뮬레이션 전체에 걸쳐 6% 이상의 활성 접촉 노드를 갖지 않습니다.

$|C|$가 상대적으로 작다는 가정은 1차원 로프나 3D의 천 조각과 같은 여차원(co-dimensional) 객체를 시뮬레이션할 때 위반될 가능성이 훨씬 더 높습니다. 이 경우 어느 시점에서는 모든 노드가 $C$에 포함될 수 있습니다.

여차원 객체 시뮬레이션은 이 연구의 범위를 벗어나지만, 알고리즘 4의 속도 향상이 감소하기 시작하는 임계 비율을 밝히는 좋은 테스트가 될 수 있습니다.

여차원 객체를 모방하기 위해, 우리는 $|C|$의 크기를 조절하기 위해 조절 가능한 입체각을 가진 구형 장애물 위로 떨어지는 단층 복셀로 구성된 "냅킨" 예제(그림 7)를 설계했습니다.

모든 하단 노드가 구형 장애물과 접촉할 때 $|C|$의 상대적 크기는 50%로 제한됩니다(그림 7 오른쪽 열).

우리는 메쉬 해상도를 25 × 25 × 1 복셀(4056 자유도)에서 100 × 100 × 1 복셀(61206 자유도)까지 변화시키고, 각 해상도와 접촉 집합 크기에 대해 뉴턴 방법DiffPD의 실행 시간을 표 2에 보고합니다.

우리는 표 2를 사용하여 후속 응용 프로그램에서 우리의 저계수 갱신 방법을 사용할지, 아니면 수정된 행렬을 직접 풀지를 결정할 수 있습니다.

예를 들어, 약 15k 자유도의 경우, 표 2는 $C$의 상대적 크기가 약 40%에 도달할 때까지 저계수 갱신 방법이 더 빠르다는 것을 시사합니다.

쪽집게 과외

핵심 콕콕

• DiffPD의 역전파 솔버는 스펙트럼 반지름 `ρ(A⁻¹ΔA)`가 1보다 작아야 수렴하며, 실험적으로 이 조건이 잘 만족됩니다 (최대 0.996).
• 실제로 선형 탐색(line search)은 거의 사용되지 않는데, 이는 기본 단계 크기(step size)만으로도 충분하기 때문입니다.
• 페널티 기반 접촉 모델은 구현이 간단하고 DiffPD의 역전파와 잘 호환되어 최적화 문제에 유용합니다.
• 상보성 기반 접촉 모델의 속도 향상은 접촉 노드 집합 `C`가 작다는 가정에 의존합니다. 이 가정은 3D 부피 객체에는 잘 맞지만, 천과 같은 객체에는 맞지 않을 수 있습니다.
• 약 15,000 자유도를 가진 천과 같은 객체의 경우, 접촉 노드의 비율이 40%를 넘어가면 저계수 갱신(low-rank update)보다 직접 행렬을 푸는 것이 더 빨라집니다.

함정 주의

페널티 기반 접촉 모델과 상보성 기반 접촉 모델을 혼동하지 마세요.

- 페널티 기반 모델: 구현이 더 간단하고 페널티 에너지 항으로 접촉을 처리합니다. 속도가 빠르고 미분이 용이하지만, 물리적 정확도를 위해 파라미터 튜닝이 필요할 수 있습니다.
- 상보성 기반 모델: 물리적으로 더 정확하게 비침투 조건을 강제합니다. DiffPD에서는 접촉 지점이 적을 때 저계수 갱신(low-rank update)을 통해 높은 효율을 보이지만, 접촉 지점이 많아지면(예: 천 시뮬레이션) 성능이 저하될 수 있습니다.

구현 힌트

실제 구현 시 다음을 고려하세요.

- 역전파 솔버의 수렴성은 대부분의 경우 보장되므로, 수렴 실패에 대해 크게 걱정할 필요는 없습니다.
- 시뮬레이션할 객체의 종류에 따라 접촉 모델을 신중하게 선택해야 합니다. 일반적인 3D 연성체에는 상보성 모델이 효율적이지만, 천이나 로프처럼 넓은 면적이 접촉할 가능성이 있는 경우 페널티 기반 모델이 더 안정적인 선택일 수 있습니다.
- 상보성 모델 사용 시, 접촉 노드의 비율이 특정 임계값(예: 40%)을 넘어서면 저계수 갱신 대신 직접 솔버로 전환하는 하이브리드 전략을 구현하여 성능을 최적화할 수 있습니다.

쉬운 비유

스펙트럼 반지름과 수렴성f>을 쉽게 비유해볼게요.
- '소문 퍼뜨리기' 게임과 같습니다. 역전파 솔버의 반복 계산은 한 사람이 다음 사람에게 소문을 전달하는 과정입니다. 스펙트럼 반지름 `ρ(A⁻¹ΔA)`는 소문이 전달될 때마다 얼마나 왜곡되는지를 나타내는 '왜곡률'입니다. 이 왜곡률이 1보다 작으면(예: 0.996) 소문이 점점 희미해져 결국 사라지는 것처럼(오차가 0으로 수렴), 계산이 안정적으로 정답에 도달합니다. 만약 왜곡률이 1보다 크면 소문이 점점 과장되어 걷잡을 수 없게 되는 것처럼(오차 발산), 계산 결과가 터져버립니다.

상보성 접촉의 저계수 갱신(Low-Rank Update)f>을 비유해볼게요.
- 거대한 레고 성의 '설계도'를 가지고 있다고 상상해보세요. 이 설계도가 미리 계산된 행렬 `A`의 분해입니다. 갑자기 성의 작은 부분, 예를 들어 벽 한 칸을 창문으로 바꿔야 하는 상황(새로운 접촉 발생)이 생겼습니다. 이때 성 전체를 부수고 처음부터 다시 만드는 대신(행렬 전체를 다시 계산), '부분 수정 지침서'(저계수 갱신)를 사용해 창문 부분만 바꾸고 주변부와 연결하는 방법을 따릅니다. 이 방법은 수정할 부분이 작을 때 훨씬 빠릅니다. 하지만 성의 절반을 바꾸고 싶다면, 그냥 처음부터 새로 짓는 게 더 빠를 수도 있습니다.

셀프 테스트

[O/X] DiffPD의 역전파 솔버는 스펙트럼 반지름이 항상 1보다 작다는 이론적 보장이 있기 때문에 안정적으로 수렴한다.

정답 보기

정답: X
해설: 이론적 보장은 없으며, 실험을 통해 경험적으로 스펙트럼 반지름이 1보다 작은 값(0.996)을 가짐을 확인했습니다. 따라서 실제 적용 시 수렴을 기대할 수 있는 것입니다.

[빈칸] 상보성 기반 접촉 모델의 저계수 갱신(low-rank update) 기법은 접촉 노드 집합의 크기가 전체 자유도에 비해 ___ 경우에만 속도 향상 효과가 크다.

정답 보기

정답: 작은
해설: 저계수 갱신은 변경되는 행렬의 부분이 작을 때 효율적입니다. 따라서 접촉하는 노드의 수가 적어야 이 기법의 장점을 최대한 활용할 수 있습니다.

[서술형] 3D 시뮬레이션에서 얇은 천이 복잡한 모양의 조각상 위로 떨어지는 상황을 구현해야 합니다. 이 논문에서 제안된 상보성 기반 접촉 모델을 사용할 때 발생할 수 있는 잠재적인 성능 문제는 무엇이며, 그 이유는 무엇인가요?

정답 보기

모범답안: 상보성 기반 접촉 모델 사용 시 성능 저하가 발생할 수 있습니다. 그 이유는 이 모델의 효율성을 높이는 저계수 갱신(low-rank update) 기법이 '접촉 노드 집합 C의 크기가 작다'는 가정에 기반하기 때문입니다. 천과 같이 넓은 면적을 가진 객체는 조각상과 접촉 시 매우 많은 수의 노드가 동시에 접촉 상태가 될 수 있으므로 이 가정이 깨지게 됩니다. 결과적으로 저계수 갱신의 이점이 사라져 행렬을 직접 푸는 것보다 느려질 수 있으며, 이것이 성능 병목 현상의 원인이 됩니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
7 APPLICATIONS (응용)

(61206 DoFs)이며, 각 해상도와 접촉 집합 크기에 대한 뉴턴 방법DiffPD의 실행 시간을 Table 2에 보고합니다.

Table 2를 사용하여 다운스트림 응용 프로그램에서 우리의 저계수 갱신 방법을 사용할지, 아니면 수정된 행렬을 직접 풀지 결정할 수 있습니다.

예를 들어, 약 15k DoF의 경우, Table 2는 C의 상대적 크기가 약 40%에 도달할 때까지 저계수 갱신 방법이 더 빠르다는 것을 시사합니다.

이 섹션에서는 DiffPD를 통해 이점을 얻을 수 있는 다양한 작업을 보여주고, 이를 시스템 식별, 역설계, 궤적 최적화, 폐쇄 루프 제어, 그리고 현실-시뮬레이션(real-to-sim) 응용의 다섯 가지 범주로 분류합니다.

미분 가능한 시뮬레이터에 대한 이전 연구들이 거의 모든 이러한 예제에서 그 능력을 입증했지만, 우리는 DiffPD가 비슷한 결과를 달성하면서도 시간 비용을 거의 10배 가까이 줄일 수 있다는 점을 강조합니다.

각 예제에 대한 요약은 Table 3에 제공합니다.

액추에이터가 있는 예제의 경우, Min 등/2019/SoftCon에서 논의된 수축성 섬유 모델을 구현합니다.

최적화 알고리즘에 관해서는, 별도로 명시되지 않는 한 예제에서 기본적으로 L-BFGS를 사용합니다.

최적화 후의 시간 비용과 최종 손실은 Table 4에 보고합니다.

공정한 비교를 위해, 다른 시뮬레이션 방법으로 L-BFGS를 실행할 때 동일한 초기 추측값과 종료 조건을 사용합니다.

Table 4에서 손실을 보고할 때, 우리는 손실 1이 16개의 무작위로 샘플링된 해의 평균 성능을 나타내고 손실 0이 원하는 해에 매핑되도록 선형적으로 정규화합니다.

유계 손실을 사용하는 예제의 경우, 0 손실을 손실의 하한(일반적으로 0)을 달성하는 오라클 해에 매핑합니다.

걷는 로봇과 수영하는 로봇(Sec. 7.3 및 7.4)에서 사용되는 무계 손실의 경우, 0 손실을 DiffPD로부터 얻은 해의 성능에 매핑합니다.

각 실험에 대한 전체 세부 정보는 보충 자료와 소스 코드에서 찾을 수 있습니다.

쪽집게 과외

알고리즘

flowchart TD subgraph "7. 응용 (Applications)" A[DiffPD]:::core end subgraph "5가지 응용 분야" B1[시스템 식별
(System Identification)]:::def B2[역설계
(Inverse Design)]:::def B3[궤적 최적화
(Trajectory Optimization)]:::def B4[폐쇄 루프 제어
(Closed-Loop Control)]:::def B5[현실-시뮬레이션
(Real-to-Sim)]:::def end A --> B1 A --> B2 A --> B3 A --> B4 A --> B5 classDef core fill:#FFDBE6; classDef def fill:#FEEEB5;

핵심 콕콕

• DiffPD는 시스템 식별, 역설계, 궤적 최적화, 폐쇄 루프 제어, 현실-시뮬레이션(real-to-sim) 등 5가지 주요 분야에 적용됩니다.
• 기존 미분 가능 시뮬레이터와 비교하여, DiffPD는 비슷한 결과를 내면서도 계산 시간을 거의 10배 단축시키는 성능을 보입니다.
• 최적화 알고리즘으로는 주로 L-BFGS를 사용하며, 공정한 비교를 위해 동일한 초기값과 종료 조건으로 실험을 수행합니다.
• 성능 평가는 정규화된 손실(loss) 값을 사용하며, 0은 이상적인 해, 1은 무작위 해의 평균 성능을 의미합니다.

구현 힌트

액추에이터 구현 시, Min et al. (2019)의 수축성 섬유 모델(contractile fiber model)을 참고할 수 있습니다. 대부분의 최적화 문제에는 L-BFGS 알고리즘이 기본적으로 사용되므로, 이를 우선적으로 시도해보는 것이 좋습니다.

셀프 테스트

[O/X] DiffPD는 기존 미분 가능 시뮬레이터보다 결과는 부정확하지만 속도만 빠른 방법이다.

정답 보기

정답: X
해설: DiffPD는 기존 방법들과 '비교 가능한(comparable)' 결과를 달성하면서도 시간 비용을 거의 10배 단축한다고 언급되었습니다.

[빈칸] 본 논문의 응용 예제에서 기본적으로 사용되는 최적화 알고리즘은 ___ 이다.

정답 보기

정답: L-BFGS
해설: 본문에서는 별도의 언급이 없는 한 L-BFGS를 기본 최적화 알고리즘으로 사용한다고 명시했습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
7.1 System Identification (시스템 식별)

이 섹션에서는 연체 동역학적 움직임으로부터 재료 매개변수(영률(Young’s modulus)푸아송 비(Poisson’s ratio))를 추정하는 것을 목표로 하는 두 가지 예제를 논의합니다. "식물" 예제는 진동으로부터 재료 매개변수를 추정하고, "튀는 공" 예제는 지면과의 상호작용으로부터 매개변수를 예측합니다.

저희는 미리 정의된 재료 매개변수 세트를 사용하여 순방향 PD 시뮬레이터로 정답 데이터를 생성합니다.

Plant (식물)

먼저 3863개의 육면체 요소와 29763개의 자유도(DoF)를 가진 탄성 3D 실내 식물 모델을 초기화합니다(그림 8).

식물의 뿌리에 디리클레 경계 조건을 부과하여 지면에 고정되도록 합니다.

시뮬레이션 시작 시 초기 수평 힘을 가하여 식물이 진동하도록 만듭니다.

무작위로 선택된 재료 매개변수를 사용한 초기 추측값에서 시작하여, 정답 데이터와 동일한 방식으로 새로운 식물을 변형시키고, 새로운 식물의 영률과 푸아송 비의 로그값을 최적화하여 정답 식물의 값과 일치시킵니다.

각 타임스텝에서의 손실은 새로운 식물과 참조 식물 간의 위치에 대한 요소별 차이의 제곱 합으로 결정됩니다.

최적화 후, DiffPD, Newton-PCG, Newton-Cholesky는 각각 최종 영률 1.00 MPa, 0.96 MPa, 0.96 MPa인 지역 최솟값으로 수렴합니다.

푸아송 비에 관해서는, DiffPD는 0.4로 수렴한 반면 두 뉴턴 방법은 0.44로 수렴했습니다.

참조 식물은 영률 1 MPa와 푸아송 비 0.4로 초기화되었습니다.

세 방법 모두 정답 데이터와 유사한 해에 도달했지만, 저희 방법을 사용하면 손실 및 그래디언트 평가에 대한 최적화 과정이 9배나 크게 단축됩니다(표 4).

저희는 DiffPD가 정답 데이터에 더 가까운 해로 수렴했지만, DiffPD뉴턴 방법 간의 수치적 차이로 인해 더 많은 함수 평가를 사용했음을 관찰했습니다.

하지만 만약 DiffPD뉴턴 방법과 동일한 횟수의 함수 평가(10회) 후에 종료되었다면, 최적화된 영률과 푸아송 비는 뉴턴 방법의 결과(영률 0.97 MPa, 푸아송 비 0.44)와 거의 동일했을 것이며, 이는 9배의 속도 향상이 실제로 시뮬레이션 측면에서 뉴턴 방법에 대한 DiffPD의 개선에서 비롯되었음을 의미합니다.

Bouncing Ball (튀는 공)

이 예제에서는 1288개의 육면체 요소와 9132개의 자유도(DoF)를 가진 공을 알려진 초기 위치에서 지면으로 던지는 경우를 고려합니다(그림 9).

이 공은 완전히 채워진 공보다 더 복잡한 변형 거동을 만들어내기 위해 면을 관통하는 세 개의 원통형 구멍이 뚫려 있습니다.

이 예제는 5.2절의 상보성 기반 접촉 모델(complementarity-based contact model)을 사용합니다.

튀는 공이 지면과 충돌한 후의 거동을 관찰함으로써 재료 매개변수를 추정할 수 있습니다.

손실 정의는 "식물" 예제의 매개변수 추정에서와 동일합니다.

최적화 과정에 대해, 세 방법 모두 영률 1.78 MPa와 푸아송 비 0.2로 수렴합니다.

영률과 푸아송 비의 정답 값은 각각 2 MPa와 0.4입니다.

최적화된 재료 매개변수가 정답 값과 상당히 다름에도 불구하고, 표 4와 그림 9의 최종 손실에서 볼 수 있듯이 움직임 시퀀스는 매우 유사합니다.

손실 함수는 오직 움직임에 대해서만 정의되므로, 0에 가까운 손실을 내는 많은 재료 매개변수 조합이 존재할 수 있습니다.

"식물" 예제에서와 마찬가지로, 저희 방법은 시뮬레이션에 충돌이 포함된 경우에도 계산 시간에서 상당한 속도 향상(12배)을 보입니다.

쪽집게 과외

핵심 콕콕

• DiffPD를 이용한 시스템 식별은 연체의 움직임을 바탕으로 영률, 푸아송 비 같은 재료 물성을 추정하는 역문제 해결에 효과적입니다.
• '식물' 예제(접촉 없음)에서 9배, '튀는 공' 예제(접촉 있음)에서 12배의 속도 향상을 보여, 기존 뉴턴 방법보다 훨씬 빠르게 최적화를 수행합니다.
• 최적화 결과로 얻은 물성값이 실제값과 다르더라도, 시뮬레이션된 움직임은 실제와 매우 유사할 수 있습니다. 이는 역문제가 여러 해를 가질 수 있음을 시사합니다.

함정 주의

최적화된 물성값이 왜 실제(Ground Truth) 값과 정확히 일치하지 않나요?
시스템 식별의 목표는 '물성값' 자체가 아니라 '움직임'을 똑같이 만드는 것입니다. 손실 함수가 두 시뮬레이션의 '위치 차이'를 기반으로 계산되기 때문에, 다른 물성값 조합이라도 비슷한 움직임을 만들어내면 낮은 손실을 기록할 수 있습니다. 이는 마치 다른 재료로 만들어도 겉보기엔 똑같이 튀는 공을 만드는 것과 같습니다.

쉬운 비유

시스템 식별f>을 쉽게 비유해볼게요.
셰프가 만든 수프를 맛보고 그 레시피(재료의 종류와 양)를 알아맞히는 것과 같아요.
- 관찰(맛보기): 연체의 움직임(튀는 공의 궤적)을 비디오로 관찰합니다.
- 추정(레시피 추측): '소금 1스푼, 후추 0.5스푼'처럼 재료 물성(영률, 푸아송 비)을 추측합니다.
- 시뮬레이션(요리해보기): 추측한 레시피로 직접 수프를 만들어 봅니다. (추측한 물성으로 시뮬레이션을 돌려봅니다.)
- 비교(맛 비교): 내가 만든 수프와 셰프의 수프 맛이 얼마나 비슷한지 비교합니다. (시뮬레이션 결과와 실제 움직임을 비교합니다.)
- 최적화(레시피 수정): 맛이 다르면 소금과 후추 양을 조절해 다시 만들어보며 점점 셰프의 맛에 가깝게 만듭니다. (물성값을 계속 수정하며 실제 움직임과 가장 비슷해지도록 최적화합니다.)

셀프 테스트

[O/X] 시스템 식별의 목표는 연체의 움직임과 상관없이 실제 재료 물성값을 정확히 찾는 것이다.

정답 보기

정답: X
해설: 시스템 식별의 주된 목표는 관찰된 '움직임'을 재현하는 것입니다. 이를 위해 재료 물성값을 추정하지만, 움직임만 같다면 물성값이 실제와 조금 달라도 목표를 달성한 것으로 봅니다.

[빈칸] '튀는 공' 예제에서 DiffPD는 상보성 기반 접촉 모델을 사용했음에도 불구하고 뉴턴 방법 대비 ___배의 속도 향상을 달성했다.

정답 보기

정답: 12
해설: DiffPD는 접촉이 포함된 복잡한 시뮬레이션에서도 기존 방법보다 훨씬 빠른 최적화 성능을 보여줍니다.

[서술형] '식물' 예제에서 DiffPD가 뉴턴 방법보다 더 많은 함수 평가 횟수를 기록했음에도 불구하고 전체 최적화 시간이 훨씬 빨랐던 이유는 무엇인가요?

정답 보기

모범답안: DiffPD는 한 번의 함수 및 그래디언트 평가(순방향 및 역방향 시뮬레이션)에 걸리는 시간이 뉴턴 방법에 비해 9배나 빠르기 때문입니다. 비록 수치적 차이로 인해 수렴까지 더 많은 반복(함수 평가)이 필요했지만, 각 반복의 압도적인 속도 우위 덕분에 전체 최적화 시간은 훨씬 단축되었습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
7.2 Initial State Optimization (초기 상태 최적화)

본 절에서는 경사도 정보를 사용하여 연체 작업의 초기 구성을 최적화하는 강력한 성능을 보여주는 두 가지 예제를 제시합니다.

“버니” 예제에서는 부드러운 스탠포드 버니의 초기 위치와 속도를 최적화하여 튕기는 궤적이 목표 위치에서 끝나도록 합니다.

“라우팅 힘줄” 예제에서는 한쪽 면이 바닥에 고정된 부드러운 직육면체의 각 근육에 적용되는 일정한 작동 신호를 최적화하여, 반대쪽 면의 모서리가 시뮬레이션 종료 시점에 목표 지점에 도달하도록 합니다.

Bunny (버니)

이 예제에서는 스탠포드 버니(요소 1601개, 자유도 7062개)의 초기 자세와 속도를 최적화하여, 시뮬레이션이 끝날 때 질량 중심(그림 10의 빨간 점)이 목표 위치(그림 10의 파란 점)에 도달하도록 합니다.

이 예제는 상보성 기반 접촉 모델을 사용하며, 가능한 접촉 노드 집합에 251개의 표면 정점(자유도 753개)을 추가하는데, 이는 전체 2354개 정점의 약 10.7%에 해당합니다.

그림 10은 최적화 전후의 버니 궤적을 보여줍니다. 초기 추측값은 목표와 거의 반대 방향의 궤적을 생성하지만, 최적화된 궤적은 목표에 훨씬 더 가깝게 끝납니다.

세 가지 방법 모두 이 작업을 완벽하게 해결하지는 못했다는 점에 유의해야 합니다. 최적화 후에도 궤적은 목표에 도달하지 못합니다.

이는 목표가 실제 바운스 궤적을 시뮬레이션하여 생성된 것이 아니라 임의로 선택되었기 때문에 도달 가능성이 보장되지 않기 때문입니다.

표 4는 DiffPD의 최종 손실이 뉴턴 방법보다 더 크다는 것을 보여주지만, 성능 향상이 이를 상쇄합니다.

8개의 스레드를 사용하여, 저희 방법은 잠재적 접촉 지점이 많은 상황에서도 전체적으로 9배의 속도 향상을 달성합니다.

Routing Tendon (라우팅 힘줄)

요소 512개와 자유도 2475개를 가진 부드러운 직육면체를 초기화하고, 바닥면이 지면에 고정되도록 디리클레 경계 조건을 부과합니다.

또한 각 요소에 액추에이터를 추가하고 이를 16개의 근육 그룹으로 묶습니다.

액추에이터 활성화 수준은 0에서 1 사이의 스칼라 값으로, 각각 근육 수축과 팽창을 나타냅니다.

특정 작동 그룹 내의 요소들은 모두 동일한, 시간에 따라 변하지 않는 작동 신호를 공유하며, 이 신호는 연체의 끝점(그림 11의 빨간 점)을 조작하여 목표 지점(그림 11의 파란 점)에 도달하도록 최적화됩니다.

각 방법에 대한 최종 반복에서의 정규화된 손실(표 4)은 모두 0에 가까우며, 이는 작업이 거의 완벽하게 해결되었음을 나타냅니다.

DiffPD를 사용하면 뉴턴 방법에 비해 9배의 속도 향상을 관찰할 수 있습니다.

쪽집게 과외

핵심 콕콕

• DiffPD가 제공하는 경사도 정보를 활용하여 연체(soft-body)의 '초기 상태 최적화' 문제를 해결할 수 있습니다.
• '버니' 예제처럼, 물체의 초기 위치나 속도를 조절하여 원하는 목표 지점에 도달하게 만들 수 있습니다.
• '라우팅 힘줄' 예제처럼, 근육의 작동 신호와 같은 내부 파라미터를 최적화하여 특정 동작을 수행하게 할 수 있습니다.
• 두 예제 모두에서 DiffPD는 기존의 뉴턴 방법에 비해 약 9배 빠른 속도 향상을 보여주어 최적화 과정을 크게 단축시켰습니다.
• 속도 향상에는 트레이드오프가 있을 수 있습니다. '버니' 예제에서는 DiffPD가 더 빨랐지만 최종 손실 값은 뉴턴 방법보다 약간 높았습니다.

셀프 테스트

[O/X]

정답 보기

'버니' 예제에서 DiffPD는 뉴턴 방법보다 더 정확한 결과(더 낮은 최종 손실)를 보여주었다.
정답: X
해설: DiffPD는 뉴턴 방법보다 최종 손실이 더 컸지만, 9배 빠른 속도 향상을 통해 성능을 보완했습니다. 이는 속도와 정확도 사이의 트레이드오프를 보여줍니다.

[빈칸]

정답 보기

'라우팅 힘줄' 예제에서는 연체의 끝점이 목표 지점에 도달하도록 시간에 따라 변하지 않는 ___ ___을 최적화했다.
정답: 작동 신호 (actuation signal)
해설: 이 예제는 16개 근육 그룹에 적용되는 일정한 작동 신호를 최적화하여 원하는 움직임을 만들어냈습니다.

[서술형]

정답 보기

'버니' 예제에서 최적화 후에도 버니가 목표 지점에 완벽하게 도달하지 못한 이유는 무엇이며, 이러한 문제에 대해 DiffPD는 뉴턴 방법과 비교하여 어떤 성능적 특징을 보였나요?
모범답안: 목표 지점이 실제 물리적으로 도달 불가능한 위치에 임의로 설정되었기 때문입니다. 경사도 기반 최적화는 물리 법칙의 제약 안에서 최적해를 찾으므로, 도달 불가능한 목표는 완벽히 달성할 수 없습니다. 이 시나리오에서 DiffPD는 뉴턴 방법보다 최종 손실 값은 약간 높았지만, 최적화에 필요한 계산 시간을 9배 단축시키는 뛰어난 속도 효율성을 보였습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
7.3 Trajectory Optimization (궤적 최적화)

우리 시스템의 미분 가능성이 복잡한 궤적 최적화 문제를 해결하는 데 적용될 수 있음을 보이기 위해, 우리는 시뮬레이터를 "토러스", "사족보행 로봇", "소"라는 세 가지 보행 과제에 적용합니다. 세 로봇 모두 최적화되어야 할 행동 순서를 가진 근섬유를 장착하고 있으며, 세 로봇 모두의 목표는 균형을 잃거나 옆으로 벗어나지 않고 앞으로 걷는 것입니다. 모든 예제는 5.2절의 상보성 기반 접촉 모델을 사용합니다.

Torus (토러스)

첫 번째 궤적 최적화 예제에서, 토러스는 1.6초 동안 가능한 한 멀리 앞으로 구르는 과제를 부여받으며, 이는 4밀리초 길이의 400 스텝으로 시뮬레이션됩니다(그림 12). 이를 달성하기 위해, 우리는 목표를 로봇의 궤적 마지막 스텝에서의 질량 중심의 음수 값으로 설정합니다. 8개의 근육 힘줄이 토러스의 중심을 따라 원주 방향으로 배치되어 결합하여, 8개의 세그먼트 중 어느 곳에서든 작동될 수 있는 원을 만듭니다. 최적화 변수는 20개의 선형적으로 간격을 둔 매듭점에서 각 근육의 작동이며, 실제 행동 순서는 이 매듭점에서의 변수들을 선형 보간하여 생성됩니다. 근육이 8개이므로, 이는 총 160개의 결정 변수를 가집니다. 우리는 6.2절의 평가 실험에서 나타난 바와 같이 1e-6의 수렴 임계값을 사용합니다.

이 구르는 토러스의 행동 순서를 최적화하는 데 있어 주요 난제는 그것이 지면과의 접촉을 지속적으로 끊고 다시 설정한다는 사실에 있습니다. 이 예제에서 L-BFGS를 실행할 때, 우리는 이전 예제들보다 더 많은 지역 최솟값을 발견했으며 L-BFGS가 종종 상당한 진전 없이 조기에 종료되는 것을 확인했습니다. 이 문제를 완화하기 위해, 우리는 무작위로 16개의 초기 해를 샘플링하고 그중 가장 좋은 것을 선택하여 L-BFGS 최적화를 초기화했으며, 이는 결국 앞으로 구르기 시작하고 상당한 전진을 가능하게 하는 연동 수축 패턴을 학습했습니다(그림 12). 더 나아가, DiffPD는 8개의 스레드를 사용하여 뉴턴 방법에 비해 6배의 속도 향상을 제공합니다.

Quadruped (사족보행 로봇)

두 번째 궤적 최적화 예제에서는, 직사각형 사족보행 로봇이 1초 안에 가능한 한 멀리 앞으로 움직이는 과제를 부여받습니다. "토러스" 예제와 동일한 성능 목표가 여기에 적용되지만, 이 예제에서는 더 간단한 제어 방식이 구현됩니다. 이 로봇은 8개의 근육을 가지고 있으며, 각 다리의 앞면과 뒷면을 따라 수직으로 배치되어 다리가 앞뒤로 구부러질 수 있게 합니다. 각 다리에 대해, 앞뒤 근육 그룹은 길항적으로 짝을 이루지만, 최적화할 매개변수인 서로 다른 최대 작동 강도를 가질 수 있습니다. 마지막으로, 전체 사족보행 로봇에는 최적화할 주파수를 가진 단일 사인파 제어 신호가 제공되어 각 다리를 동기적으로 작동시킵니다. 이러한 앞뒤 작동 강도는 입력 신호의 주파수와 결합하여 최적화할 3개의 매개변수를 제공합니다. 최적화 후, 사족보행 로봇은 자신의 몸 길이 몇 배만큼 앞으로 걸을 수 있었습니다(그림 13). 속도 향상 측면에서, DiffPD뉴턴 방법에 비해 손실 및 그래디언트 평가를 4배 가속합니다.

Cow (소)

세 번째이자 마지막 궤적 최적화 예제에서는, Spot(Crane/2020/3D Model Repository)을 기반으로 한 소 사족보행 로봇이 0.6초 안에 가능한 한 멀리 앞으로 걷는 과제를 부여받습니다(그림 14). 이것은 특히 어려운 과제인데, Spot의 큰 머리가 앞쪽을 무겁게 만들어 앞으로 넘어지기 쉽기 때문입니다. 이를 보상하기 위해, 우리는 더 똑바로 선 보행을 촉진하도록 목표 함수를 정규화했으며, 전진 목표를 정규화하기 위해 $z$ 방향 질량 중심의 -0.3배를 추가했습니다. Spot은 "사족보행 로봇" 예제와 동일한 컨트롤러와 근육 배열을 사용하며, 최적화 중에는 1e-6의 수렴 임계값이 사용됩니다. 이전 예제들과 유사하게, 소는 앞으로 걷도록 최적화되며 DiffPD뉴턴 방법에 비해 5배의 속도 향상을 제공합니다.

Discussion (논의)

보행 과제는 일반적으로 상당한 접촉을 포함하며, 이는 접촉이 없는 문제에 비해 DiffPD가 달성할 수 있는 속도 향상(위 예제들에서 4-6배)을 제한합니다. 접촉이 있는 보행 로봇의 동작 계획의 복잡성을 고려할 때(뉴턴 방법으로 위 세 예제를 최적화하는 데 각각 수 시간이 걸렸음), 4-6배의 속도 향상은 여전히 유리합니다. 또한 "사족보행 로봇"과 "소" 예제에서, 뉴턴 방법을 사용한 최적화가 표 4에 보고된 최종 손실에서 알 수 있듯이 DiffPD와는 상당히 다른 해로 이어진 점도 주목할 가치가 있습니다. 우리는 이것이 주로 뉴턴 방법DiffPD 간의 알고리즘적 차이 때문이라고 생각합니다. Liu/2017/Quasi-Newton Methods와 4절에서 논의된 바와 같이, DiffPD는 본질적으로 (뉴턴 방법이 아닌) 준-뉴턴 방법을 실행하여 일반적으로 비볼록인 식 (5)의 목표를 최소화합니다. 따라서 특히 접촉이 포함될 때 다수의 임계점이 존재할 수 있습니다. 이 절의 세 가지 보행 과제에 대해, DiffPD와 두 뉴턴 방법이 각각 개별적으로 다른 임계점을 탐색하여 다른 해로 이어졌을 가능성이 있습니다.

쪽집게 과외

핵심 콕콕

• DiffPD는 토러스, 사족보행 로봇, 소와 같은 복잡한 보행 로봇의 궤적 최적화에 성공적으로 적용되었습니다.
• 접촉이 빈번하게 발생하는 어려운 시나리오에서도 DiffPD는 뉴턴 방법 대비 4배에서 6배의 의미 있는 속도 향상을 보여주었습니다.
• 보행 과제는 잦은 접촉 변화와 지역 최솟값이 많은 비볼록 최적화 환경이라는 어려움이 있습니다.
• DiffPD는 근사적인 헤시안을 사용하는 '준-뉴턴 방법'에 기반하기 때문에, 정확한 헤시안을 사용하는 '뉴턴 방법'과는 다른 최적화 해에 도달할 수 있습니다.

함정 주의

DiffPD와 뉴턴 방법이 왜 다른 최적화 결과를 내는지 혼동하지 마세요.

뉴턴 방법은 매 단계마다 정확한 헤시안 행렬(2차 미분값)을 계산하여 최적의 방향을 찾습니다. 반면, DiffPD는 계산 속도를 높이기 위해 헤시안 행렬을 근사하는 '준-뉴턴 방법'을 사용합니다. 손실 함수가 복잡하고 울퉁불퉁한 비볼록(non-convex) 문제에서는, 이 작은 알고리즘적 차이가 서로 다른 골짜기, 즉 다른 지역 최솟값(local minima)으로 수렴하게 만들 수 있습니다. 어느 한쪽이 항상 더 낫다고 말할 수는 없으며, 문제에 따라 다른 해를 탐색하는 것입니다.

구현 힌트

보행 로봇처럼 복잡한 궤적 최적화 문제를 풀 때는 L-BFGS와 같은 경사 기반 최적화 알고리즘이 효과적입니다. 하지만 손실 함수가 비볼록하여 나쁜 지역 최솟값에 빠지기 쉽습니다. '토러스' 예제처럼, 여러 개의 무작위 초기값으로 최적화를 시작해보고 그 중 가장 좋은 결과를 내는 초기값을 선택하는 전략이 국소해를 탈출하는 데 큰 도움이 될 수 있습니다. 또한, '소' 예제처럼 로봇이 쉽게 넘어지는 경우, 목표 함수에 무게 중심의 높이를 유지하거나 자세를 안정시키는 정규화(regularization) 항을 추가하여 더 안정적인 동작을 학습하도록 유도할 수 있습니다.

쉬운 비유

준-뉴턴 방법과 뉴턴 방법의 차이f>를 쉽게 비유해볼게요.

- 당신이 안개 낀 산에서 가장 낮은 계곡을 찾는 등산가라고 상상해보세요.

- 뉴턴 방법: 당신은 매 걸음을 내디딜 때마다 최첨단 3D 스캐너 드론을 띄웁니다. 이 드론은 주변 지형을 아주 정밀하게 스캔해서 가장 가파른 내리막길을 정확하게 알려줍니다. 매우 정확하지만, 매번 드론을 띄우고 분석하는 데 시간이 오래 걸립니다.

- 준-뉴턴 방법 (DiffPD): 당신은 등산을 시작할 때 딱 한 번만 드론을 띄워 지형의 대략적인 지도를 만듭니다. 그 다음부터는 그 낡은 지도를 보면서 빠르게 걸어 내려갑니다. 지도가 100% 정확하지는 않아서 가끔은 약간 돌아가거나 다른 길로 빠질 수 있지만, 각 걸음이 훨씬 빨라서 전체적으로는 더 빨리 계곡에 도착할 수 있습니다. 이 때문에 최종 도착 지점이 뉴턴 방법과 약간 다를 수 있는 것입니다.

셀프 테스트

[O/X] 보행 로봇과 같이 접촉이 많은 시뮬레이션에서 DiffPD는 뉴턴 방법에 비해 속도 향상 효과가 전혀 없다.

정답 보기

정답: X
해설: 접촉이 없는 문제에 비해 속도 향상 폭이 줄어들기는 하지만, 본문 예제에서 여전히 4배에서 6배의 상당한 속도 향상을 보였습니다.

[빈칸] DiffPD는 본질적으로 뉴턴 방법이 아닌 ___ 방법을 실행하기 때문에, 비볼록 최적화 문제에서 뉴턴 방법과 다른 해에 수렴할 수 있다.

정답 보기

정답: 준-뉴턴 (quasi-Newton)
해설: DiffPD는 계산 속도를 위해 헤시안 행렬을 근사하는 준-뉴턴 방식을 사용하며, 이 알고리즘적 차이가 다른 수렴점으로 이어질 수 있습니다.

[서술형] '토러스' 예제에서 L-BFGS 최적화가 조기에 종료되는 문제를 해결하기 위해 저자들이 사용한 전략은 무엇이며, 왜 그 전략이 효과적이었을지 설명하시오.

정답 보기

모범답안: 저자들은 16개의 무작위 초기 해를 샘플링하고 그 중 가장 좋은 것을 선택하여 L-BFGS 최적화를 시작하는 전략을 사용했습니다. 이 전략은 손실 함수의 복잡하고 비볼록한 지형에서, 단일 초기값이 나쁜 지역 최솟값 근처에 있을 위험을 줄여줍니다. 여러 지점에서 탐색을 시작함으로써 더 좋은 전역적 해에 가까운 시작점을 찾을 확률을 높여, 최적화가 더 의미 있는 진행을 하고 조기 종료를 피할 수 있도록 돕습니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00

이는 주로 뉴턴 방법DiffPD의 알고리즘적 차이 때문입니다. Liu et al. [2017]과 섹션 4에서 논의된 바와 같이, DiffPD는 본질적으로 일반적으로 볼록하지 않은(non-convex) 식 (5)의 목적 함수를 최소화하기 위해 (뉴턴 방법과는 반대로) 준-뉴턴 방법(quasi-Newton method)을 실행합니다. 따라서 특히 접촉이 포함될 때 다수의 임계점(critical points)이 존재할 수 있습니다. 이 섹션의 세 가지 이동(locomotion) 과제에 대해, DiffPD와 두 뉴턴 방법이 각각 개별적으로 다른 임계점을 탐색하여 다른 해답에 도달했을 가능성이 있습니다.

7.4 Closed-loop Control (폐쇄 루프 제어)

Min et al. [2019]에서 영감을 받아, 우리는 두 해양 생물인 “불가사리(Starfish)”와 “상어(Shark)”(그림 15)를 위한 폐쇄 루프 신경망 컨트롤러를 설계하는 것을 고려합니다. 각 예제에 대해, 우리는 Min et al. [2019]에서 논의된 것과 유사하게 불가사리의 팔과 상어의 꼬리지느러미에 내부 작동기(actuator)로서 근섬유를 명시합니다. 우리는 신경망 컨트롤러의 입력으로 사용하기 위해 각 예제의 몸체에 수동으로 속도 센서를 배치합니다. 이 예제들의 목표는 각 물고기가 옆으로 쏠리지 않고 전진할 수 있도록 수영 컨트롤러를 최적화하는 것입니다. 이를 달성하기 위해, 우리는 손실 함수를 각 시간 스텝에서의 전진 속도와 선형 속도의 가중 합으로 정의합니다. 신경망 설계 측면에서, 우리는 각 층에 64개의 뉴런을 가진 3계층 다층 퍼셉트론 네트워크를 선택합니다(“불가사리”에서는 30788개의 파라미터, “상어”에서는 22529개의 파라미터). 우리는 신경망에서 활성화 함수로 쌍곡탄젠트 함수(hyperbolic tangent function)를 사용합니다. 최적화를 위해 L-BFGS가 사용된 이전 예제들과 달리, 우리는 신경망 파라미터를 최적화하기 위해 Adam [Kingma and Ba 2015]을 사용한 경사 하강법(gradient descent)의 일반적인 관행을 따릅니다. 최적화 동안, 우리는 DiffPD와 뉴턴 방법에서 1e-3의 수렴 임계값을 사용합니다. 표 4는 최적화 후의 최종 손실을 제공하며, 두 예제에서 각각 8-19배의 속도 향상을 관찰합니다.

Comparisons With Reinforcement Learning (강화 학습과의 비교)

우리는 우리의 경사도 기반 최적화 방법을 최첨단 강화 학습 알고리즘인 PPO [Schulman et al. 2017]와 비교합니다. 특히, 우리는 DiffPD의 순방향 시뮬레이션을 PPO를 위한 시뮬레이션 환경으로 사용합니다. 공정한 비교를 위해, 우리는 DiffPDPPO 모두에 대해 동일한 랜덤 시드로 네트워크를 구성하고 초기화합니다. 우리는 또한 Engstrom et al. [2019]에서 제안된 코드 수준의 최적화 기법을 구현하고 PPO 하이퍼파라미터를 최상의 성능으로 조정합니다. 더 자세한 구현 내용은 우리의 보충 자료를 참조하십시오.

PPO와 같은 경사도 없는(gradient-free) 알고리즘의 성능을 Adam이나 L-BFGS와 같은 경사도 기반 알고리즘과 비교할 때, 우리는 경사도 기반 최적화가 PPO보다 더 샘플 효율적일 것으로 기대합니다. 왜냐하면 경사도는 PPO가 접근할 수 없는 연체 동역학에 대한 더 많은 정보를 노출하기 때문입니다. 이것이 경사도 기반 방법이 실제 소요 시간(wall-clock time)으로 측정했을 때 항상 PPO보다 빠르다는 것을 보장하지는 않는다는 점에 유의해야 합니다. 왜냐하면 경사도 기반 방법의 각 샘플은 추가적인 경사도 계산 시간을 필요로 하기 때문입니다. 더욱이, PPO의 샘플링 방식은 대규모로 병렬화가 가능합니다. 우리는 그림 16에서 PPO와 우리 방법의 최적화 진행 상황을 보고합니다. 다른 예제들과 달리, 우리는 손실을 최소화하는 대신 보상을 최대화하는 강화 학습의 관례를 따릅니다. 특히, 0의 보상은 무작위로 선택된 최적화되지 않은 신경망의 평균 성능을 나타내고, 단위 보상은 최적화 후 DiffPD의 결과입니다. 우리는 그림 16으로부터 AdamDiffPDPPO와 비슷한 결과를 달성하지만, 샘플 효율성 면에서 한두 자릿수 더 높다는 결론을 내립니다. 실제 소요 시간에 관해서는, DiffPD의 각 샘플이 경사도 계산 때문에 더 비쌈에도 불구하고, 두 예제에서 각각 9-11배의 속도 향상을 관찰합니다.

쪽집게 과외

알고리즘

flowchart TD classDef core fill:#FFDBE6; classDef sub fill:#CCEFFF; classDef idea fill:#E8D2E5; classDef pros fill:#D0F1B9; classDef warn fill:#FFD3C2; classDef ref fill:#EBEBEC; classDef def fill:#FEEEB5; subgraph Closed-Loop Control Cycle A[State (Velocity Sensors)] --> B{Neural Network Controller}:::idea B --> C[Action (Actuators)] C --> D[DiffPD Simulator]:::core D --> A end subgraph Optimization Loop D -- Loss --> E{Adam Optimizer}:::sub E -- Gradients --> B end

핵심 콕콕

• DiffPD는 연체 로봇을 위한 폐쇄 루프 신경망 컨트롤러를 훈련시키는 데 효과적으로 사용될 수 있습니다.
• 경사도 기반 최적화(Adam + DiffPD)는 PPO와 같은 최첨단 강화학습(RL) 방법과 비교되었습니다.
• DiffPD를 사용한 방법은 RL보다 샘플 효율성이 10~100배 더 높으며, 이는 더 적은 시뮬레이션 스텝으로 비슷한 성능에 도달함을 의미합니다.
• 높은 샘플 효율성 덕분에, 경사도 계산의 추가 비용에도 불구하고 전체적인 실제 훈련 시간(wall-clock time)이 9~11배 더 빨라졌습니다.

함정 주의

샘플 효율성(Sample Efficiency)과 실제 소요 시간(Wall-Clock Time)을 혼동하지 마세요.

- 샘플 효율성: 목표 성능에 도달하기까지 필요한 데이터 샘플(시뮬레이션 스텝)의 수입니다. 경사도 기반 방법은 적은 샘플로도 학습 방향을 잘 찾기 때문에 샘플 효율성이 높습니다.
- 실제 소요 시간: 실제 시계로 측정한 훈련 시간입니다. 경사도 기반 방법은 샘플 하나를 처리하는 데 시간이 더 걸릴 수 있지만(경사도 계산 때문에), 훨씬 적은 수의 샘플만 필요로 하므로 전체 시간은 오히려 단축될 수 있습니다. 이 논문에서는 실제로 9-11배 빨라졌습니다.

구현 힌트

신경망 컨트롤러를 최적화할 때는 L-BFGS보다 Adam과 같은 확률적 경사 하강법(SGD) 기반 옵티마이저가 더 널리 쓰이고 효과적입니다. 이 논문에서도 이전 예제들과 달리 Adam을 사용했습니다.

또한, 강화학습 알고리즘(PPO)을 벤치마킹할 때, DiffPD와 같은 미분 가능한 시뮬레이터의 순방향 시뮬레이션(forward pass) 부분을 PPO의 '환경(environment)'으로 그대로 사용할 수 있습니다. 이를 통해 동일한 물리 엔진 하에서 공정한 비교가 가능해집니다.

쉬운 비유

경사도 기반 최적화 vs. 경사도 없는 최적화(강화학습)f>을 쉽게 비유해볼게요.

어두운 산속에서 가장 낮은 계곡을 찾는다고 상상해보세요.

- 경사도 없는 방법 (PPO): 당신은 눈을 가리고 있습니다. 계곡을 찾기 위해 무작위로 여러 방향으로 몇 걸음 가보고, 각 지점의 높이를 기억합니다. 이 과정을 수없이 반복하며 가장 낮았던 지점을 향해 조금씩 나아갑니다. 매우 많은 시도(샘플)가 필요합니다.

- 경사도 기반 방법 (DiffPD + Adam): 당신은 발바닥으로 땅의 기울기(경사도)를 느낄 수 있는 특수 신발을 신고 있습니다. 어느 방향이 내리막길인지 즉시 알 수 있죠. 그래서 당신은 항상 가장 가파른 내리막길을 따라 효율적으로 계곡을 향해 걸어갈 수 있습니다. 훨씬 적은 걸음(샘플)으로 목적지에 도착할 수 있습니다.

셀프 테스트

[O/X 퀴즈]

DiffPD를 사용한 경사도 기반 최적화는 경사도 계산 비용 때문에 PPO와 같은 강화학습보다 항상 실제 훈련 시간이 더 오래 걸린다.

정답: X

해설: 경사도 계산에 추가 비용이 들지만, 샘플 효율성이 훨씬 높기 때문에 전체 훈련 시간은 오히려 9-11배 단축되었습니다.

[빈칸 채우기]

이 논문에서는 경사도 기반 최적화 방법을 최첨단 강화학습 알고리즘인 (____)와 비교하여 성능을 입증했다.

정답: PPO

해설: PPO(Proximal Policy Optimization)는 널리 사용되는 강화학습 알고리즘으로, 본 연구의 벤치마크 대상으로 사용되었습니다.

[서술형 퀴즈]

경사도 기반 방법이 PPO보다 '샘플 효율성'이 높은 근본적인 이유는 무엇이며, 이것이 왜 중요한가요?

모범답안: 경사도 기반 방법은 각 파라미터가 손실 함수에 미치는 영향을 직접적으로 계산(미분)하여, 손실을 줄이는 가장 효율적인 방향으로 파라미터를 업데이트합니다. 반면 PPO와 같은 경사도 없는 방법은 여러 번의 시도(샘플링)를 통해 간접적으로 좋은 방향을 탐색하는 '시행착오' 방식에 가깝습니다. 따라서 경사도 기반 방법이 훨씬 적은 샘플로 학습할 수 있습니다. 이는 복잡한 시뮬레이션에서 한 번의 시뮬레이션 비용이 매우 비쌀 때, 전체 학습 시간을 줄이는 데 결정적인 역할을 합니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00

강화 학습에서는 손실을 최소화하는 대신 보상을 최대화하는 관례를 따릅니다. 특히, 0의 보상은 무작위로 선택된 최적화되지 않은 신경망의 평균 성능을 나타내고, 단위 보상은 DiffPD로 최적화한 후의 결과입니다. Fig. 16을 통해 우리는 Adam과 DiffPDPPO와 비슷한 결과를 달성하지만, 샘플링 효율성 측면에서 1~2 자릿수 더 높다는 결론을 내립니다. 실제 소요 시간(wall-clock time)에 관해서는, DiffPD의 각 샘플이 그래디언트 계산으로 인해 더 비싸지만, 두 예제에서 각각 9-11배의 속도 향상을 관찰했습니다.

7.5 A Real-to-sim Experiment (현실-시뮬레이션(real-to-sim) 실험)

이 섹션을 "테니스공"이라는 현실-시뮬레이션(real-to-sim) 실험으로 마무리합니다. 이 예제에서는 평평한 지형에서 두 개의 테니스공이 충돌하는 비디오 클립을 촬영하고, 이를 통해 카메라 정보, 각 공의 초기 위치와 속도, 그리고 접촉 모델의 파라미터를 추정하는 것을 목표로 합니다. 시뮬레이션에서 각 공은 320개의 사면체와 489개의 자유도(DoF)를 가진 구체 메시를 사용하여 모델링합니다(Table 3 참조). 공과 지면 간의 접촉은 상보성 기반 방법(complementarity-based method)으로 모델링하고, 공과 공 사이의 접촉을 계산하기 위해 다음과 같은 페널티 기반 모델(penalty-based model)을 사용합니다: 두 공이 접촉할 때, 최적화할 강성 파라미터와 공의 지름과 두 공 중심 사이의 실제 거리 간의 차이를 곱하여 계산된 복원력을 추가합니다. 본질적으로, 이 복원력은 공의 지름과 동일한 나머지 길이를 가진 스프링 모델로 간주할 수 있습니다. 추가적으로, 마찰력을 더합니다.

쪽집게 과외

핵심 콕콕

• 이 실험의 목표는 실제 비디오(테니스공 충돌)를 기반으로 시뮬레이션 파라미터를 자동으로 추정하여 현실을 재현하는 것입니다.
• 추정 대상 파라미터는 카메라 정보, 공의 초기 상태(위치, 속도), 그리고 접촉 모델의 특성(강성 등)을 포함합니다.
• 공-지면 접촉과 공-공 접촉에 서로 다른 모델을 적용하는 하이브리드 방식을 사용했습니다. (각각 상보성 기반, 페널티 기반)

함정 주의

두 가지 접촉 모델을 혼동하지 마세요.
- 공-지면 접촉: 상보성 기반(Complementarity-based) 모델을 사용합니다. 이는 관통을 엄격하게 막아야 하는 경우에 적합합니다.
- 공-공 접촉: 페널티 기반(Penalty-based) 모델을 사용합니다. 이는 두 공 사이의 반발력을 간단한 스프링 힘처럼 모델링하여 구현이 쉽고 미분 가능성을 확보하는 데 유리합니다.

구현 힌트

공-공 사이의 페널티 기반 복원력은 간단한 스프링 공식으로 구현할 수 있습니다. 즉, F = k * (d_rest - d_current) 입니다. 여기서 k는 최적화할 강성 계수, d_rest는 공의 지름(스프링의 원래 길이), d_current는 두 공 중심 사이의 현재 거리입니다. 이 힘은 두 공의 중심을 잇는 방향으로 서로에게 작용합니다.

셀프 테스트

[O/X] '테니스공' 실험에서는 공-지면 접촉과 공-공 접촉 모두에 동일한 페널티 기반 모델을 적용했다.

정답 보기

정답: X
해설: 공-지면에는 상보성 기반 모델을, 공-공에는 페널티 기반 모델을 사용하여 서로 다른 두 가지 모델을 적용했습니다.

[빈칸] 공과 공 사이의 접촉 시 발생하는 복원력은 나머지 길이가 공의 지름과 같은 ___ 모델로 간주할 수 있다.

정답 보기

정답: 스프링
해설: 본문에서는 복원력을 최적화할 강성 파라미터와 거리 차의 곱으로 계산하며, 이는 본질적으로 스프링 모델과 동일하다고 설명합니다.

[서술형] Real-to-Sim 실험에서 비디오 클립으로부터 구체적으로 어떤 종류의 정보들을 추정하고자 했나요?

정답 보기

모범답안: 세 가지 종류의 정보를 추정했습니다. 첫째, 카메라 정보(위치, 각도 등). 둘째, 각 공의 초기 동역학 상태(초기 위치 및 속도). 셋째, 물리적 상호작용을 결정하는 접촉 모델의 파라미터(예: 충돌 시 강성)입니다.

ENG
0:00 / 0:00
KOR
0:00 / 0:00
Figures And Tables

Table 1: 미분 가능한 시뮬레이션. 최근 미분 가능한 물리학의 많은 발전은 로봇 공학 학습, 제어 및 설계 작업에서 경사도 기반 방법의 적용을 용이하게 합니다. 강체 동역학, 연체 동역학, 천, 유체 동역학을 위한 여러 미분 가능한 시뮬레이터가 개발되었습니다. 여기서는 우리 연구의 초점인 연체 동역학 방법에 대해 주로 논의합니다. ChainQueen과 그 후속 연구인 DiffTaichi는 물질점법(MPM)을 사용하여 미분 가능한 물리 기반 연체 시뮬레이터를 소개합니다. 이 방법은 입자를 사용하여 동적 시스템의 전체 상태를 추적하고 배경 오일러리안 격자에서 운동량 방정식과 충돌을 해결합니다. 그러나 그들의 방법에서 명시적 시간 적분은 수치적 안정성을 유지하기 위해 작은 시간 단계가 필요하며, 이는 역전파 중 많은 메모리 소비로 이어집니다. 이 문제를 해결하기 위해 ChainQueen은 체크포인트 단계를 메모리에 캐시하고 역전파 중에 순방향 시뮬레이션을 다시 실행하여 상태를 재구성할 것을 제안하는데, 이는 구현 복잡성을 증가시키고 추가 시간 비용을 발생시킵니다. 또한, 오일러리안 격자에서 충돌을 해결하는 것은 격자의 해상도에 따라 인공물을 유발할 수 있습니다. 또 다른 입자 기반 전략은 그래프 신경망으로 연체 동역학을 근사하는 것인데, 이는 자연스럽게 미분 가능성을 갖추고 있지만 물리적으로 타당하지 않은 동작을 초래할 수 있습니다. 우리 연구는 미분 가능한 암시적 FEM 시뮬레이터를 사용하는 Hahn 등의 연구와 가장 유사합니다. 경사도를 도출하기 위해 인접 방법과 민감도 분석의 조합을 체계적으로 적용하는 다른 미분 가능한 변형체 시뮬레이터와 비교할 때, DiffPD는 Projective Dynamics의 고유한 구조를 활용하여 경험적으로 더 빠른 경사도 계산을 이끌어내는 보다 전략적인 역전파 방식에 특별히 초점을 맞춥니다. 마지막으로, DiffPD는 연체 시뮬레이션을 위해 미분 가능한 장벽 함수로 접촉을 강력하게 처리하고 접촉을 인식하는 Newton 유형 솔버를 소개한 Li 등의 연구와도 관련이 있습니다. Li 등은 경사도 계산에 대해 논의하거나 이러한 경사도로부터 이점을 얻는 응용 프로그램을 제시하지는 않았지만, 전체 접촉 모델이 이론적으로 미분 가능하다는 것을 보여주었으며, 이를 통해 향후 미분 가능한 시뮬레이션을 사용하는 응용 프로그램이 많은 이점을 얻을 수 있을 것이라고 믿습니다. Projective Dynamics. PD는 원래 Bouaziz 등에 의해 암시적 시간 단계 방식으로 비선형 시스템 동역학을 해결하기 위한 Newton 방법의 매력적인 대안으로 제안되었습니다. 표준 PD 알고리즘은 강체를 지원하고, 운동 에너지를 보존하며, 광범위한 초탄성 재료를 지원하도록 확장되었습니다. 또한, 이전 논문들은 반-반복 체비쇼프 솔버, 무작위 그래프 색칠을 이용한 병렬 가우스-자이델 방법, 필요한 제약 투영을 위한 사전 계산된 축소 부분 공간 방법, 다중 격자 솔버를 포함한 더 진보된 가속 전략을 제안했습니다. Macklin 등은 페널티 기반 접촉 모델을 사용하여 GPU에서 PD의 사전 조건화된 하강 기반 방법을 소개합니다. DiffPD에서는 그들의 페널티 기반 접촉 모델을 구현하지만 GPU 가속은 향후 연구 과제로 남겨둡니다. 이론적인 측면에서, Narain 등과 Overby 등은 PD를 최적화 관점에서 교대 방향 승수법(ADMM)의 특별한 경우로 해석합니다. 우리 연구는 이전 논문들의 표준 PD 프레임워크를 계승하고 경사도 계산으로 이를 보강합니다. 접촉 처리. 접촉 및 마찰 처리 주제는 연체 시뮬레이션에서 광범위하게 연구되었습니다. 물리적 타당성, 시간 비용, 구현 복잡성 등 다양한 설계 고려 사항을 가진 다양한 충돌 처리 알고리즘이 존재하지만, 그 중 소수만이 미분 가능성을 고려합니다. 접촉이 있는 PD 시뮬레이션 영역에서 가장 널리 퍼진 전략은 접촉을 부드러운 제약 조건으로 취급하는 것입니다. 이는 각 시뮬레이션 단계가 끝날 때 충돌하는 정점을 충돌 표면에 직접 투영하거나 가상의 충돌 에너지를 부과함으로써 달성됩니다. 이러한 방법은 인공적인 강성 계수를 도입하는데, 이는 작업에 따라 다르며 신중한 조정이 필요합니다. 대안으로, Ly 등은 순방향 시뮬레이션에서 더 물리적으로 타당한 Signorini-Coulomb 접촉 모델을 PD와 결합할 것을 제안합니다. 그러나 이러한 모델을 사용하면 접촉력을 해결하는 데 미분 가능성을 유지하지 못하거나 사전 인수분해된 콜레스키 분해를 활용할 수 없는 사소하지 않은 반복 최적화 프로그램이 필요하기 때문에 역전파 중에 추가적인 어려움이 발생합니다. 우리 연구에서는 페널티 기반 및 상보성 기반 접촉 모델을 모두 고려합니다. 상보성 기반 접촉의 경우, 비침투 접촉과 정지 마찰을 지원하고 미끄럼 마찰은 향후 연구 과제로 남겨둡니다. 우리 접촉 처리 알고리즘의 핵심은 접촉이 전체 자유도의 작은 부분에서 발생하여 선형 방정식 시스템에 대한 저계수 업데이트로 이어진다는 가정입니다. 접촉 처리 중 증분적, 저계수 업데이트를 활용하는 아이디어는 경계 요소법으로 연체를 시뮬레이션하고 새로운 접촉점이 활성화될 때 행렬의 세 열을 재설정하는 ArtDefo로 거슬러 올라갈 수 있습니다. 우리 연구에서는 순방향 시뮬레이션 중에 접촉을 해결하기 위해 유사한 아이디어를 사용하고 역전파 중에 경사도를 계산하도록 확장합니다. 우리 연구는 또한 Woodbury 행렬 항등식에 기반한 저계수 업데이트 전략에 대한 대안을 제공하는 희소 콜레스키 업데이트에 대한 최근 연구와도 관련이 있습니다. 소프트 로봇 설계 및 제어. 연체 시뮬레이션이 더 빠르고, 더 강력하며, 경사도 정보 방식에서 더 표현력이 풍부해짐에 따라, 계산 소프트 로봇 공학 분야가 소프트 로봇 설계 및 제어 문제에 대한 해결책으로 부상하고 있습니다. 계산 로봇 공학에 적용된 최초의 시뮬레이터 중 하나는 VoxCAD로, 미분 가능하지는 않지만 CPU에서 빠르게 실행됩니다. 이 기능은 유전 알고리즘에 잘 부합하여 걷고, 수영하고, 성장할 수 있는 컴퓨터 설계 소프트 로봇으로 이어집니다. 더 최근에, Min 등은 수영하는 생물의 시뮬레이션 및 훈련을 가능하게 하기 위해 연체를 유체 역학 모델과 결합하는 FEM 시뮬레이터를 제시했습니다. VoxCAD와 마찬가지로, 이 시뮬레이터는 경사도가 없는 접근 방식으로, 이러한 컨트롤러를 훈련하는 데 몇 시간 또는 며칠이 걸릴 수 있음을 의미합니다. 이러한 경사도 없는 접근 방식과 경쟁하는 것은 경사도 기반 접근 방식으로, 일반적으로 경사도가 제공하는 추가 정보로 인해 더 효율적입니다. Sin 등과 Allard 등은 정확도를 희생하면서 시뮬레이션을 가속화하기 위해 모달 동역학을 활용하는 빠르고 부분적으로 미분 가능한 FEM 시뮬레이션을 제시했습니다. 그럼에도 불구하고, 이러한 접근 방식은 부드러운 캐릭터의 대화형 시뮬레이션과 시뮬레이션 및 실제 로봇의 제어를 허용할 만큼 충분히 강력합니다. 더 최근에는 유사한 유한 요소 기반 시뮬레이션 기술이 실제 폼 사족보행 로봇의 보행을 생성하는 데 효과적인 것으로 나타났습니다. 이러한 각 연구에서는 제어만 검토됩니다. 우리 연구와 유사하게, Lee 등은 인간 근육 시스템을 기반으로 한 작동 모델을 사용하여 PD를 능숙한 조작에 적용할 수 있는 방법을 보여줍니다. 그들의 프레임워크는 유연하고 연성-강성 결합을 처리할 수 있지만, 준정적 운동에만 적용할 수 있습니다. 대조적으로, 우리 시뮬레이터는 완전한 동적 시스템을 처리합니다. 경쟁적인 접근 방식인 미분 가능한 MPM은 Spielberg 등의 연구에서 소프트 로봇 공학에 적용되어 폐쇄 및 개방 루프 제어 및 재료 분포에 걸쳐 소프트 로봇을 공동 설계합니다. 3 배경 이 섹션에서는 암시적 시간 단계 방식과 PD의 기본 개념을 검토합니다. FEM 이산화 후 변형 가능한 물체의 3D 노드 수를 n이라고 합시다. 시간 이산화 후.

Table 1: 관련 연구 요약. 'Diff.' 열은 각 방법의 미분 가능성을 나타냅니다. 각 열에서 녹색은 선호되는 속성을, 빨간색은 해당 속성이 없음을, 노란색은 일부만 있음을 의미합니다. 방법, 영역, 적분, 물리 기반, 속도, 메모리, 미분 가능성, 접촉 처리. Hu 등 [2019] 연체(MPM) 명시적 예 빠름 높음 예 오일러리안 격자에서 해결. Li 등 [2019b] 연체(입자) 네트워크 아니요 빠름 중간 예 훈련된 신경망 함수. Liang 등 [2019] 천 암시적 예 느림 낮음 예 비침투 + 충격량 기반 마찰. Hahn 등 [2019] 연체(FEM) 암시적 예 느림 낮음 예 소프트 접촉 + 페널티 에너지. Geilinger 등 [2020] 다물체 암시적 예 느림 낮음 예 페널티 기반 마찰 접촉 모델. Ly 등 [2020] 천 암시적 예 빠름 낮음 아니요 Signorini-Coulomb 접촉 모델. DiffPD(우리) 연체(FEM) 암시적 예 빠름 낮음 예 비침투 접촉 + 정지 마찰.

Fig 1: DiffPDNewton 방법을 비교하기 위해 6절에서 설계된 '캔틸레버'와 '구르는 구' 예제. '캔틸레버' 예제는 왼쪽의 뒤틀린 캔틸레버로 시작하여 진동하다가 중력 때문에 결국 아래로 구부러집니다. '구르는 구' 예제에서는 오른쪽 그림과 같이 부드러운 구를 바닥에서 굴리며, 이 구는 지속적으로 접촉이 끊어지고 다시 형성됩니다.

Fig 2: 초기 절점 위치 x0 근방의 16개 무작위 방향 중 5개에 대해, 명시적 방법(청록색)과 우리 방법(녹색)의 손실(왼쪽 위) 및 그래디언트 크기(왼쪽 아래)의 상대적 변화. 또한 16개 모든 무작위 방향에 대한 손실(오른쪽 위) 및 그래디언트 크기(오른쪽 아래)의 백분율 변화의 평균(실선)과 표준편차(음영)를 보여줍니다.

Fig 3: 위: 6.2절의 '캔틸레버' 예제에서 테스트된 다양한 수렴 임계값에 대한 순수 실행 시간(왼쪽), 순방향 시간(중간), 역전파 시간(오른쪽). 결과는 Newton-PCG(PCG), Newton-Cholesky(Cholesky), DiffPD(Ours) 세 가지 방법을 사용하여 이 예제를 시뮬레이션하여 얻었습니다. 방법 이름 뒤의 숫자는 사용된 스레드 수를 나타냅니다. 또한 준-Newton 방법을 적용하지 않고 우리 방법을 실행한 결과도 보여줍니다(오른쪽, 주황색). 아래: Newton 방법우리 시뮬레이터에서 반복을 종료하는 데 사용된 다양한 수렴 임계값에 대한 손실(왼쪽)과 손실 그래디언트의 크기(오른쪽).

Fig 4: 위: 접촉 처리를 위한 '구르는 구' 예제에서 테스트된 다양한 수렴 임계값에 대한 순수 실행 시간(왼쪽), 순방향 시간(중간), 역전파 시간(오른쪽). 결과는 Newton-PCG(PCG), Newton-Cholesky(Cholesky), DiffPD(Ours) 세 가지 방법에서 얻었습니다. 방법 이름 뒤의 숫자는 사용된 스레드 수를 나타냅니다. 또한 5.2절의 알고리즘 4에 있는 추가 가속 기법을 적용하지 않고 우리 방법을 실행한 결과도 보여줍니다(주황색). 아래: Newton 방법우리 시뮬레이터에서 반복을 종료하는 데 사용된 다양한 수렴 임계값에 대한 손실(왼쪽)과 손실 그래디언트의 크기(오른쪽).

Fig 5: 16776 자유도와 24875개의 사면체를 가진 말랑한 고무 오리를 Macklin 등의 2020년 연구에서 제안된 페널티 형태의 다양한 마찰 계수를 가진 네 개의 경사면에 놓고 중력 하에서 2초 동안 미끄러지게 합니다. 그림에서 볼 수 있듯이, 왼쪽 경사면에서 오른쪽 경사면으로 갈수록 미끄럼 마찰이 감소함에 따라, DiffPD에 구현된 Macklin 등의 2020년 모델은 우리의 정성적 기대와 일치하는 다양한 미끄럼 거리를 생성합니다.

Fig 5: 경사면. 16776 자유도와 24875개의 사면체를 가진 고무 오리가 Macklin 등의 2020년 연구의 페널티 기반 접촉 및 마찰 모델을 사용하여 DiffPD에 구현된 다양한 마찰 계수를 가진 경사면에서 미끄러집니다. 왼쪽: 오리의 초기 위치. 중간 왼쪽에서 오른쪽으로: 마찰 계수가 감소함에 따른 2초 후 오리의 최종 위치.

Fig 6: 오리. 그림 5의 동일한 고무 오리가 이제 훈련 가능한 마찰 계수를 가진 곡면 위에서 미끄러집니다. 이 테스트의 목표는 시뮬레이션 1초 후 오리의 최종 위치가 흰색 원의 중심에 최대한 가깝게 도달하도록 마찰 계수를 최적화하는 것입니다. 최적화 전 마찰 계수의 초기 추측값(왼쪽)과 경사도 기반 최적화 후의 최종 계수(오른쪽)를 사용하여 시뮬레이션에서 0, 0.25, 0.5, 0.75, 1초에서의 고무 오리 중간 위치를 겹쳐서 보여줍니다.

Table 2: 냅킨 예제에서 다양한 메시 해상도('Res.')와 6%에서 50%까지의 상대적 접촉 집합 크기(그림 7 상단 행)에 대한 단계별 평균 실행 시간. 보고된 시간은 냅킨이 장애물과 접촉하는 모든 단계에 대해 평균을 낸 것입니다. 모든 시간은 초 단위입니다. 각 메시 해상도와 각 상대적 접촉 집합에 대해 Newton 방법DiffPD의 실행 시간을 보고하며, 더 짧은 시간은 굵게 표시됩니다.

Fig 7: 활성 접촉 집합 |C|의 상대적 크기와 그것이 DiffPD의 속도에 미치는 영향에 대한 절제 연구. 우리는 25 × 25 × 1 복셀(중간 행)에서 100 × 100 × 1 복셀(하단 행)까지의 해상도를 가진 단층 '냅킨'이 다양한 입체각을 가진 구형 장애물(상단 행, 파란색) 위로 떨어지는 것을 시뮬레이션합니다. 우리는 |C|의 상대적 크기와 냅킨의 자유도를 보고합니다. 자세한 실행 시간은 표 2를, 떨어지는 냅킨의 전체 움직임은 비디오를 참조하십시오.

Fig 8: 시스템 식별. '식물' 예제의 동작 시퀀스를 1번째, 100번째, 150번째, 그리고 마지막인 200번째 프레임에서 샘플링하여 왼쪽에서 오른쪽으로 보여줍니다. 우리는 세 가지 동작 시퀀스를 생성했습니다: 재료 매개변수의 무작위 초기 추측(상단 행), 최적화된 재료 매개변수(중간 행), 그리고 실제값(하단 행). 색상 상자는 최적화 전후의 동작 차이를 강조합니다. 목표는 식물의 움직임이 실제값과 일치하도록 재료 매개변수를 최적화하는 것입니다.

Table 3: 논문의 모든 예제 설정. 오른쪽 다섯 개 열은 예제가 외부 힘으로 중력을 가지는지, 절점 위치에 디리클레 경계 조건을 부과하는지, 접촉을 처리하는지, 유체 역학적 힘이 필요한지, 그리고 액추에이터가 있는지를 보고합니다.

Table 4: 모든 예제에 대한 DiffPD의 성능. 각 방법과 각 예제에 대해, 손실 함수를 한 번 평가하는 시간 비용(Fwd.)과 그 그래디언트를 한 번 평가하는 시간 비용(Back.)을 초 단위로 보고합니다. 또한 BFGS 최적화에서 손실과 그 그래디언트의 평가 횟수(Eval.)도 보여줍니다. 'Loss' 열은 최적화 후 정규화된 최종 손실을 보고하며(낮을수록 좋음), 가장 좋은 값은 굵게 표시됩니다. 마지막으로, Newton 방법의 순방향 및 역방향 시간 합과 DiffPD의 시간 합 사이의 비율, 즉 'Fwd.'와 'Back.' 열의 합 사이의 비율로 계산된 속도 향상을 보고합니다. 표 3에서 볼 수 있듯이, 실제-시뮬레이션 예제인 '테니스 공'에서는 자유도(DoF) 수가 너무 작아 DiffPD로부터 속도 향상을 얻지 못했습니다.

Fig 9: 시스템 식별. '튀는 공' 예제의 동작 시퀀스를 1번째 프레임(왼쪽), 충돌이 발생하는 19번째 프레임(중간), 그리고 마지막인 125번째 프레임(오른쪽)에서 샘플링했습니다. 우리는 세 가지 동작 시퀀스를 생성했습니다: 재료 매개변수의 무작위 초기 추측(상단 행), 최적화된 재료 매개변수(중간 행), 그리고 실제값(하단 행). 목표는 공의 움직임이 실제값과 일치하도록 재료 매개변수를 최적화하는 것입니다.

Fig 10: 역설계. '토끼' 예제의 초기(왼쪽) 및 최적화된(오른쪽) 궤적. 빨간 점은 토끼의 질량 중심 위치를 나타내고, 파란 점은 목표 위치입니다. 목표는 토끼의 초기 위치, 속도, 방향을 조정하여 최종 질량 중심이 목표 위치에 도달하도록 하는 것입니다.

Fig 11: 역설계. '힘줄 라우팅' 예제의 최적화 전후 초기 및 최종 상태. 목표는 시뮬레이션 종료 시점에 엔드 이펙터(빨간 점)가 목표 위치(파란 점)에 도달하게 하는 것입니다. 왼쪽: 무작위로 생성된 작동 신호를 가진 힘줄의 초기 구성. 빨간색(근육 팽창)과 청록색(근육 수축)은 작용의 크기를 나타냅니다. 중간 왼쪽: 무작위 작동 시 힘줄의 최종 상태. 중간 오른쪽: 최적화된 작동을 가진 힘줄의 초기 구성. 오른쪽: 최적화된 작동 시 최종 상태.

Fig 12: 궤적 최적화. '토러스' 예제의 동작 시퀀스로, 위쪽은 무작위 행동, 아래쪽은 DiffPD로 행동 시퀀스(160개 매개변수 최적화)를 최적화한 후의 모습입니다. 목표는 토러스의 균형을 유지하면서 구르는 거리를 최대화하는 것입니다. 빨간색과 청록색은 행동 신호의 크기를 나타냅니다. 특히, 팽창 및 수축 패턴(중간 왼쪽 및 중간 오른쪽)을 통해 토러스가 앞으로 구를 수 있습니다.

Fig 13: 궤적 최적화. 3개의 매개변수를 최적화해야 하는 사인파 제어 신호를 사용하는 '사족보행 로봇' 예제의 동작 시퀀스. 목표는 사족보행 로봇의 보행 거리를 최대화하는 것입니다. 위: 무작위 사인파 행동에 따른 동작 시퀀스. 아래: DiffPD로 최적화한 후의 동작 시퀀스.

Fig 14: 궤적 최적화. 3개의 매개변수를 최적화해야 하는 사인파 제어 신호를 사용하는 '소' 예제의 동작 시퀀스. 목표는 소의 보행 거리를 최대화하는 것입니다. 위: 무작위 사인파 행동에 따른 동작 시퀀스. 아래: DiffPD로 최적화한 후의 동작 시퀀스.

Fig 15: 제어 최적화. '불가사리'(첫 번째 행)와 '상어'(세 번째 행)의 최적화된 폐쇄 루프 신경망 컨트롤러로부터의 동작 시퀀스, 그리고 해당 근섬유가 두 번째와 네 번째 행에 그려져 있습니다. 목표는 해양 생물이 솟아오르거나('불가사리') 앞으로 헤엄칠 수 있도록('상어') 컨트롤러를 최적화하는 것입니다. 근섬유 표면의 회색과 청록색은 작동의 크기를 나타내며, 회색은 작동 없음, 파란색은 최대 수축을 의미합니다.

Fig 16: '불가사리'(왼쪽)와 '상어'(오른쪽)에 대한 Adam과 DiffPD의 조합(녹색) 및 PPO(주황색)의 최적화 진행 과정. 훈련 또는 최적화 중 소요된 시간 단계 축은 로그 스케일로 표시됩니다.

Fig 17: 우리는 여러 매개변수 세트를 무작위로 샘플링하고 가장 작은 손실을 가진 것을 최적화의 초기 추측으로 선택합니다(그림 17 왼쪽). 이는 비디오 클립의 동작 시퀀스와 유사하지만 여전히 상당한 시각적 차이를 보입니다. 최적화 과정은 매개변수 추정을 개선하고 손실을 더욱 억제하며 비디오의 움직임을 더 가깝게 모방합니다(그림 17 중간). 카메라 렌즈 왜곡을 고려하거나 두 공 사이의 페널티 기반 충돌 모델을 더 정확한 것으로 교체하면 결과를 더욱 개선할 수 있으며, 이는 향후 연구 과제로 남겨둡니다.

Fig 17: 실제-시뮬레이션 실험. '테니스 공' 예제의 최적화 전(왼쪽)과 후(중간)의 동작 시퀀스. 해당 비디오 클립은 오른쪽에 표시됩니다. 투명한 공은 공의 중간 위치를 나타냅니다. 시뮬레이션과 실제의 동작 시퀀스 간의 차이를 시각화하기 위해, 렌더링된 이미지(왼쪽 및 중간)에서 노란색 사각형을 사용하여 비디오 클립에서 가져온 공 중심의 해당 픽셀 위치를 나타냅니다.

Fig 18: 44337 자유도의 사면체 메시인 '뒤틀리는 아르마딜로'를 네오-후크 재료 모델로 초당 30프레임으로 1초 동안 시뮬레이션. 우리는 순방향 시뮬레이션과 역전파를 계산하기 위해 위쪽에는 DiffPD를, 아래쪽에는 Newton 방법을 사용합니다. 왼쪽에서 오른쪽으로: 0, 10, 20, 30 프레임에서의 아르마딜로 중간 상태. 위쪽과 아래쪽 행의 시각적으로 동일한 움직임은 DiffPD의 네오-후크 재료 모델 구현의 정확성을 확인시켜 줍니다. 이미지의 오른쪽 하단에 DiffPDNewton 방법의 시간 비용을 보고하며, 역전파에서 DiffPD가 Newton 방법의 직접 솔버보다 더 빠른 속도 향상을 보이지 않음을 알 수 있습니다.

Fig 1: '식물' 예제를 해결하기 위해 L-BFGS 최적화를 실행하는 과정. 가로축은 사용된 함수 평가 횟수를 보여주고, 세 개의 세로축은 중간 영률(왼쪽), 푸아송 비(중간), 손실(오른쪽)을 나타냅니다.

Fig 2: '튀는 공' 예제를 해결하기 위해 L-BFGS 최적화를 실행하는 과정. 가로축은 사용된 함수 평가 횟수를 보여주고, 세 개의 세로축은 중간 영률(왼쪽), 푸아송 비(중간), 손실(오른쪽)을 나타냅니다.

Fig 3: '토끼' 예제를 해결하기 위해 L-BFGS 최적화를 실행하는 과정. 가로축은 사용된 함수 평가 횟수를 보여주고, 세로축은 초기 위치의 크기(왼쪽 위), 초기 오일러 각의 크기(오른쪽 위), 초기 속도의 크기(왼쪽 아래), 그리고 손실(오른쪽 아래)을 나타냅니다.

Fig 4: 이것은 세 가지 방법 모두 만족스러운 해결책을 제공하는 쉬운 과제입니다. 특히, 세 가지 방법 모두 매우 유사한 크기의 근육 작동 신호로 수렴합니다.

Fig 4: '힘줄 라우팅' 예제를 해결하기 위해 L-BFGS 최적화를 실행하는 과정. 가로축은 사용된 함수 평가 횟수를 보여주고, 세로축은 작동의 크기(왼쪽)와 손실(오른쪽)을 나타냅니다.

Fig 5: '토러스' 예제를 해결하기 위해 L-BFGS 최적화를 실행하는 과정. 가로축은 사용된 함수 평가 횟수를 보여주고, 세로축은 작동의 크기(왼쪽)와 손실(오른쪽)을 나타냅니다.

Fig 6: '사족보행 로봇' 예제를 해결하기 위해 L-BFGS 최적화를 실행하는 과정. 가로축은 사용된 함수 평가 횟수를 보여주고, 세로축은 작동의 크기(왼쪽)와 손실(오른쪽)을 나타냅니다.

Fig 7: '소' 예제를 해결하기 위해 L-BFGS 최적화를 실행하는 과정. 가로축은 사용된 함수 평가 횟수를 보여주고, 세로축은 작동의 크기(왼쪽)와 손실(오른쪽)을 나타냅니다.

Fig 8: 이 다이어그램은 신경망(NN) 컨트롤러와 DiffPD가 순방향 시뮬레이션(빨간색)과 역전파(파란색)에서 어떻게 결합되는지를 보여주기 위해 제시되었습니다. s와 a는 각각 상태 및 행동 벡터를 나타내며, 아래 첨자는 시간 단계를 나타냅니다.

Comments