1. 개요
자코비안 행렬(Jacobian matrix)은 여러 입력과 여러 출력을 갖는 다변수 벡터함수의 1차 편도함수를 전부 모아 놓은 행렬로, 그 함수의 국소적인 최선의 선형근사를 나타낸다. 함수 이 성분별로 이라면 자코비안은
로 정의되는 행렬이다. 행 열 성분은 다. 스칼라 함수의 도함수가 다변수로 확장된 것이라고 보면 되며, 실제로 테일러 급수의 1차 근사 에서 곱해지는 행렬이 바로 자코비안이다.1
이 하나의 행렬이 뉴턴-랩슨법의 심장이자, 좌표변환의 부피 척도이자, 비선형 해석에서 수렴을 좌우하는 열쇠다. CAE 하는 사람에게 자코비안은 “매 반복마다 만들고 부수는 그것”이다.
2. 뉴턴-랩슨법의 심장
비선형 연립방정식 을 풀 때, 스칼라 뉴턴-랩슨법의 미분 자리에 들어가는 것이 정확히 자코비안이다. 갱신식은 다음과 같다.
즉 매 반복마다 (1) 현재 점에서 자코비안을 만들고, (2) 그 자코비안을 계수행렬로 하는 선형계를 풀어 스텝을 구한다. 뉴턴법이 근 근처에서 2차 수렴하는 아름다움은 여기서 나오지만, 그 대가로 매 반복 자코비안을 새로 조립하고 선형계를 풀어야 하는 비용을 치른다. 큰 문제에서는 이 선형계를 LU 분해로 직접 풀거나, 희소행렬이면 크리로프 부분공간법에 전처리기를 얹어 반복적으로 푼다.
자코비안이 특이(singular)에 가까우면, 즉 조건수가 폭발하면 스텝 가 엉뚱하게 커지거나 방향이 무너져 뉴턴 반복이 발산한다. 그래서 실무에서는 자코비안 조건수를 은근히 예의주시한다. 뉴턴법의 2차 수렴 정리 자체가 「근에서 자코비안이 정칙이고 그 근방에서 립시츠 연속」을 전제로 한다. 근에서 자코비안이 특이하면(중근 같은 경우) 수렴이 1차로 떨어진다. 비선형 나비에-스토크스 방정식의 완전 음해법(fully implicit) 솔버, 비선형 구조해석의 접선강성행렬이 모두 이 자코비안이다. 선형 탄성이면 이것이 그대로 강성행렬이 된다.
3. 자코비안을 어떻게 만드나
문제는 자코비안을 실제로 얻는 일이 만만치 않다는 것이다. 세 가지 길이 있다.
- 해석적 미분. 손으로(혹은 심볼릭 도구로) 를 다 구해 코드에 박아 넣는다. 가장 정확하고 빠르지만, 방정식이 복잡하면 유도가 지옥이고 오타 한 번에 수렴이 통째로 날아간다.
- 수치 미분. 수치미분의 유한차분으로 를 근사한다. 구현은 쉽지만 스텝 선택이 까다롭고(부동소수점 연산의 자리수 손실 주의 — 전방차분의 최적 는 대략 배이고 그때도 유효숫자는 절반인 8자리 남짓만 남는다), 개 변수마다 함수를 재평가해야 해서 비싸다. 자코비안이 희소행렬이면 서로 같은 행에 겹치지 않는 열들을 한꺼번에 섭동할 수 있어, 평가 횟수가 이 아니라 열 묶음 수로 준다(커티스-파월-리드, 1974). 묶음 나누기가 정확히 그래프 색칠 문제라서 격자 문제에서는 백만 번이 예닐곱 번이 된다.
- 자동 미분(AD). 연쇄법칙을 코드 수준에서 기계적으로 적용해 절단오차 없이 미분을 얻는다(반올림 오차는 함수값 계산과 같은 수준으로만 남는다). 순방향 모드는 한 번에 자코비안의 열 하나()를, 역방향 모드는 한 번에 행 하나()를 뽑으므로, 자코비안 전체를 얻는 비용은 대략 함수 평가의 배 수준이다. 요즘 최적화·머신러닝에서 사실상 표준이 된 방법.2
자코비안을 매번 새로 만들기 싫을 때 쓰는 꼼수도 있다. 자코비안을 처음 한 번만 만들고 여러 반복에서 재사용하는 것을 수정 뉴턴법(modified Newton), 자코비안 자체를 직접 안 구하고 근사로 갱신해 나가는 것을 준뉴턴법(quasi-Newton, 예: 브로이던 방법·BFGS)이라 한다. 정확도를 조금 포기하는 대신 비싼 자코비안 조립을 아끼는, 전형적인 공학적 타협이다. 극단은 자코비안을 아예 만들지 않는 것이다. 크리로프 반복법은 행렬 자체가 아니라 곱 만 요구하므로, 이를 한 번의 함수 평가로 대신하면 행렬을 저장하지 않는 자코비안 없는 뉴턴-크리로프법(JFNK)이 된다. 대규모 다물리 음해법의 단골이다(단 전처리기용 근사 자코비안은 여전히 따로 필요하다).
4. 검산 — 2차 수렴이 실제로 보이나
을 에서 출발해 풀었다(근 ). 반복마다 근까지의 오차는 다음과 같다.
| 자코비안 | 3회 | 4회 | 5회 | 6회 | 7회 |
|---|---|---|---|---|---|
| 해석적 | 0 | ||||
| 전방차분 | |||||
| 전방차분 |
해석적 자코비안은 오차의 지수가 매번 대략 두 배가 되는 전형적인 2차 수렴이다(). 유한차분은 반올림 수준까지 그것과 구분이 안 된다 — 자코비안의 8자리 정확도면 뉴턴 스텝에는 충분하다는 뜻이다. 반면 처럼 거친 차분은 자코비안 오차가 로 남아 끝물에 매 반복 약 배씩 줄어드는 선형 수렴으로 주저앉는다. 같은 문제에서 출발점의 자코비안을 끝까지 재사용하는 수정 뉴턴법은 에서 출발하면 둘째 반복부터 오차가 으로 발산하고, 근에 가까운 에서 출발해야 매 반복 약 1/70씩 줄어드는 선형 수렴을 보인다. 재사용은 근 근처에서만 공짜다.
전방차분 미분 하나만 떼어 보면(의 에서 미분) 상대오차가 에서 , 에서 로 에 비례해 줄다가 에서 최소 을 찍고, 에서 , 에서 로 다시 나빠진다. 절단오차와 반올림 오차의 V자다(수치미분 참고).
5. 좌표변환과 야코비안 행렬식
자코비안이 정사각행렬()일 때 그 행렬식 를 야코비안(Jacobian, 야코비 행렬식)이라 부른다. 이 스칼라값은 변환이 국소적으로 부피(넓이)를 얼마나 늘리거나 줄이는지를 나타내는 배율이다. 다중적분의 변수변환 공식이 바로 이 값을 쓴다.
극좌표 변환의 그 유명한 에서 튀어나오는 이 바로 야코비안이다. 유한요소법에서는 이 개념이 특히 중요하다. 실제 형상의 뒤틀린 요소를 반듯한 기준요소(reference element)로 사상(mapping)한 뒤 적분하는 등매개변수 요소 기법이 야코비안에 전적으로 의존하기 때문이다.3
여기서 실무 격언 하나. 야코비안 행렬식은 부호를 유지해야 한다. 가 요소 내부 어디선가 0이 되거나 음수로 뒤집히면 그 요소는 “뒤집힌(inverted)” 것이고, 사상이 일대일이 아니게 되어 적분이 무의미해진다. 격자 생성기가 뱉는 “negative Jacobian” 경고에 CAE 엔지니어들이 치를 떠는 이유가 이것. 격자가 다 했다는 말은 여기서도 유효하다.
단위 정사각형 4절점 사각형 요소의 기준좌표 사상에서 는 네 꼭짓점 모두 0.25(=넓이 1 / 기준 넓이 4)다. 세 번째 꼭짓점 을 대각선을 따라 안쪽 로 끌어당기면 그 꼭짓점의 가 에서 0.05, 에서 정확히 0, 에서 가 된다. 요소가 오목해지는 순간(, 그 꼭짓점의 내각이 180°를 넘는 순간) 행렬식의 부호가 뒤집히는 것이고, 구적점이 아니라 꼭짓점에서 먼저 터지므로 격자 품질 검사는 꼭짓점 를 본다.
6. 응용의 지형도
자코비안은 수치해석 곳곳에 얼굴을 내민다.
- 동역학과 안정성. 비선형 동역학계 의 평형점 안정성은 그 점에서의 자코비안 고유값 실수부 부호로 판별한다. 모두 음이면 안정, 하나라도 양이면 불안정이다. 실수부가 0인 고유값이 있으면 선형화만으로는 판정할 수 없다(하트만-그로브만 정리가 쌍곡 평형점에서만 성립하는 이유다). 매개변수를 바꾸다 고유값이 허축을 건너는 지점이 분기 이론의 분기점이다. 룽게-쿠타법 같은 시간적분기의 강성(stiffness) 판단도 자코비안 고유값 스펙트럼으로 한다.
- 로보틱스. 로봇 팔의 관절 속도를 말단(end-effector) 속도로 잇는 것이 기구학적 자코비안이며, 이것이 특이해지는 자세가 그 유명한 “특이점(singularity)“이다. 역운동학을 반복법으로 풀 때 특이점 근처에서 관절 속도가 폭주하는 것이 위의 뉴턴 스텝 폭주와 같은 현상이다.
- 민감도 해석·최적설계. 설계 변수에 대한 응답의 자코비안이 곧 민감도이며, 이것이 경사하강법 같은 경사기반 최적화 알고리즘의 연료가 된다. 설계 변수는 많고 응답이 몇 개뿐이면 역방향 모드와 같은 원리인 수반법이 싸다.
7. 관련 문서
- 뉴턴-랩슨법 · 테일러 급수
- 수치미분 · 부동소수점 연산
- 조건수 · 고유값 문제
- LU 분해 · 크리로프 부분공간법 · 전처리기
- 등매개변수 요소 · 수치적분
- 희소행렬 · 그래프 색칠 · 나비에-스토크스 방정식
- 자동 미분 · 준-뉴턴법 · 강성행렬 · 비선형 구조해석
- 하트만-그로브만 정리 · 분기 이론 · 강성 방정식 · 경사하강법
- 전산과학 · 검증 및 확인
8. Footnotes
-
이름은 19세기 수학자 카를 구스타프 야코프 야코비(Carl Gustav Jacob Jacobi)에서 왔다. 그래서 한국어로는 “자코비안”, “야코비안”, “야코비 행렬”이 뒤섞여 쓰이는데, 다 같은 사람 이름이다. 발음 표기 국룰은 아직도 합의가 안 됐다. 함수 행렬식을 본격적으로 다룬 것은 1841년 논문 「De determinantibus functionalibus」다. ↩
-
자동미분은 수치미분(근사·오차 있음)과도, 심볼릭미분(수식 폭발)과도 다른 제3의 길이다. 순방향 모드와 역방향 모드가 있으며, 역방향 모드가 곧 딥러닝의 역전파(backpropagation)다. 출력이 하나뿐인 스칼라 목적함수의 그래디언트를 싸게 뽑는 데 최적화되어 있다. ↩
-
등매개변수 요소에서는 형상함수(shape function)로 좌표를 보간하고, 그 보간의 미분에서 자코비안이 나온다. 가우스 구적점마다 자코비안을 계산해 수치적분에 곱하는데, 요소가 심하게 찌그러지면 이 값이 요동쳐 적분 정확도가 무너진다. “요소 품질”이라는 말의 절반은 사실 자코비안 이야기다. ↩
이 문서의 주요 출처
- Jacobi (1841), De determinantibus functionalibus, J. reine angew. Math. 22, 319-359 (함수 행렬식)
- Dennis & Schnabel (1996), Numerical Methods for Unconstrained Optimization and Nonlinear Equations, SIAM Classics 16 (뉴턴법 국소 2차 수렴, 유한차분 자코비안, 브로이던 갱신)
- Broyden (1965), A class of methods for solving nonlinear simultaneous equations, Math. Comp. 19(92), 577-593
- Curtis, Powell & Reid (1974), On the estimation of sparse Jacobian matrices, IMA J. Appl. Math. 13(1), 117-119
- Griewank & Walther (2008), Evaluating Derivatives, 2nd ed., SIAM (순방향·역방향 모드 비용)
- Knoll & Keyes (2004), Jacobian-free Newton-Krylov methods: a survey of approaches and applications, J. Comput. Phys. 193(2), 357-397
의견을 반영할게요. 감사합니다.