1. 개요[편집]
| 수반법 Adjoint Method | |
|---|---|
| 한 줄 요약 | 기울기 한 벌의 값이 설계변수 개수와 무관하다 |
| 기반 | 라그랑주 승수법 |
| 핵심 방정식 | 전치 야코비안 선형계 한 번 |
| 비용 | 목적·제약 함수 개수에 비례(설계변수에는 무관) |
| 쌍대 개념 | 자동 미분의 역방향 모드 · 역전파 |
| 천적 | 비정상 문제의 메모리 · 비매끄러운 코드 · 카오스 |
설계변수가 100만 개다. 기울기를 구해야 한다. 해석은 한 번만 더 돌린다.
수반법(adjoint method)은 제약(지배 방정식)을 만족하는 상태 아래에서 목적함수의 기울기를, 설계변수 개수와 무관하게 「전치된 선형계 한 번」의 비용으로 얻는 기법이다. 유한차분이나 직접 미분법이 설계변수 하나마다 해석을 한 번씩 더 요구하는 반면, 수반법은 목적함수 하나마다 해석을 한 번 더 요구한다. 입력이 많고 출력이 적은 문제에서 이 비대칭은 그대로 자릿수 차이가 된다.
이 문서는 그 구조 자체를 다룬다.1 여러 민감도 계산법의 비교표와 유한차분·복소수 스텝의 함정은 민감도 해석에, 공력 형상 설계에서의 실제 적용은 형상 최적화에 있으니 중복은 그쪽으로 넘긴다.
2. 라그랑주 승수로 유도하기[편집]
상태변수 , 설계변수 , 지배 방정식의 잔차 , 목적함수 를 놓는다. 우리가 원하는 것은 제약이 항상 만족된다는 조건 아래의 전미분 다. 연쇄법칙을 그대로 쓰면
여기서 는 상태변수 개수 × 설계변수 개수 크기의 거대한 행렬이고, 잔차를 미분한 를 열마다 한 번씩 풀어야 얻어진다. 설계변수가 개면 선형계를 번 푸는 것이고, 이것이 직접 미분법(direct/tangent method)이다.
수반법은 이 행렬을 계산하지 않고 소거한다. 라그랑지안을 세우고
이므로 이고, 승수 는 아직 아무 값이나 가능하다. 미분해서 가 곱해진 항끼리 묶으면
괄호를 0으로 만드는 를 고르면 된다. 그것이 수반 방정식(adjoint equation)이다.
풀고 나면 기울기는 남은 값싼 항뿐이다.
이 세 줄에서 읽어야 할 것이 넷이다.
- 에 가 없다. 수반해는 설계변수를 모른다. 그래서 한 번 풀면 모든 설계변수의 기울기에 재사용된다.
- 수반 방정식은 선형이다. 원 문제가 비선형이어도, 수반계의 행렬은 수렴한 에서 평가한 야코비안 행렬의 전치일 뿐이다. 따라서 순방향 솔버가 쓰던 크리로프 부분공간법과 전처리기를 전치해서 그대로 재활용할 수 있다.
- 비용의 축이 바뀐다. 수반 해석은 목적·제약 함수당 한 번이다. 목적함수 1개 + 제약 5개면 수반 6번, 설계변수는 100만 개여도 6번. 그래서 응력 제약처럼 요소마다 하나씩 생기는 제약은 KS 함수나 -노름으로 하나로 뭉쳐서(constraint aggregation) 수반 횟수를 줄이는 것이 실무 국룰이다.
- 자체가 물리적 정보다. 수반장은 “이 지점의 잔차가 목적함수에 얼마나 영향을 주는가”를 나타내는 장이므로, 목적함수 기준의 영향권 지도가 된다. 그래서 최적화를 돌리지 않고 수반장만 그려도 설계 통찰이 나오고, 목표지향 격자 적응(goal-oriented adaptation)에서는 이 값을 잔차에 곱해 오차 지시자로 쓴다.2
컴플라이언스 최소화처럼 이고 가 대칭인 경우에는 가 되어 수반 해석이 아예 공짜다. 이것이 위상 최적화에서 말하는 자기수반(self-adjoint) 문제이며, 반대로 컴플라이언트 메커니즘처럼 출력점 변위를 목적으로 삼는 순간 자기수반성이 깨져 별도의 수반 해석(더미 하중 문제)이 필요해진다.
3. 이산 수반 대 연속 수반 — 「이산화와 미분의 순서」[편집]
같은 수반법에 구현 경로가 둘 있고, 둘의 차이는 이산화와 미분을 어느 순서로 하느냐로 요약된다.
| 연속 수반 | 이산 수반 | |
|---|---|---|
| 순서 | 미분 후 이산화 | 이산화 후 미분 |
| 유도 대상 | 연속 PDE 수준의 수반 PDE | 이산 잔차 벡터 |
| 기울기의 정체 | 연속 문제의 정확한 기울기 | 이산 목적함수의 정확한 기울기 |
| 유한차분 검증 | 격자 오차만큼 어긋남 | 기계 정밀도로 일치 |
| 코드 의존성 | 낮음(수반을 따로 이산화 가능) | 높음(솔버를 고치면 같이 고쳐야) |
연속 수반은 수반 PDE와 그 경계조건을 손으로 유도한 뒤 독립적으로 이산화한다. 수반 연산자가 물리적으로 해석되고, 격자·차분 스킴을 순방향과 다르게(예: 더 거칠게) 잡을 자유가 있으며 메모리도 가볍다. 대가는 기울기 불일치다. 최적화기가 실제로 최소화하는 것은 이산 목적함수인데 받아든 기울기는 연속 문제의 것이므로, 격자가 거칠면 둘이 만큼 어긋난다. 초반에는 문제없이 내려가다 수렴 후반에 최적화기가 삐걱거리는 전형적 증상이 여기서 나온다.
이산 수반은 이산 잔차 을 그대로 전치한다. 정의상 이산 목적함수의 정확한 기울기이므로 유한차분 검증이 기계 정밀도로 맞고, 준-뉴턴법이 마지막 자릿수까지 얌전히 수렴한다. 대가는 노동이다. 난류 모델·벽함수·리미터·상태 방정식까지 코드에 있는 모든 것을 미분해야 하고, 솔버를 고칠 때마다 수반도 따라가야 한다. 이 노동을 자동 미분 도구가 상당 부분 자동화하면서 산업계의 저울은 이산 수반 쪽으로 확실히 기울었다.
여기에 헷갈리기 쉬운 세 번째 축이 하나 더 있다. 쌍대 일관성(adjoint/dual consistency) — 이산 수반해가 격자를 조밀하게 할 때 연속 수반해로 수렴하는가 — 는 기울기의 정확성과 별개 문제다. 출력 함수와 경계항을 부주의하게 이산화하면, 기울기는 이산 문제에 대해 정확한데도 수반해에 물리적으로 존재하지 않는 경계층이나 진동이 낀다. 쌍대 일관되게 설계된 이산화(일부 DG 정식화가 대표적)에서는 이 병증이 사라지고 목표지향 오차 추정의 정확도도 함께 올라간다.
충격파가 있으면 이야기가 더 사나워진다. 리미터는 미분 가능하지 않아 이산 수반이 잡음을 뱉고, 연속 수반은 충격파 위에서 내부 경계조건을 따로 만족해야 한다.3 그래서 초음속 형상 최적화에서는 리미터를 매끄러운 것으로 바꾸거나 충격파 근처에서 기울기를 완화하는 편법이 여전히 통용된다.
4. 비정상 문제 — 시간을 거꾸로 흐르게 하기[편집]
비정상(unsteady) 문제로 넘어가면 수반법의 구조가 눈에 보이는 형태로 드러난다. 시간 이산화를 , 목적함수를 시간 적분 로 쓰면 수반 방정식은 이렇게 갈린다.
이 에 의존한다. 즉 수반은 마지막 시간에서 출발해 시간을 거꾸로 적분한다. 정보가 원인에서 결과로 흐르는 순방향과, 결과의 책임을 원인에게 되돌리는 역방향이 시간축에서 정확히 반대인 것이다. 이류-확산 문제의 수반이 상류로 이류하는 방정식이 되는 것도 같은 이유다.
문제는 메모리다. 번째 수반 스텝을 계산하려면 그 시각의 순방향 상태 이 야코비안 평가에 필요하고, 이는 순방향 궤적 전체를 갖고 있어야 한다는 뜻이다. 3차원 유동 10만 스텝이면 저장량이 테라바이트 단위로 올라간다. 처방은 셋이다.
- 전량 저장: 스텝이 적으면 그냥 다 쌓는다. 디스크로 스트리밍하면 I/O가 곧 병목이 된다.
- 체크포인팅(checkpointing): 일부 시각만 저장하고, 수반이 그 구간에 도달할 때 가장 가까운 체크포인트에서 순방향을 다시 돌려 중간 상태를 복원한다. 그리반크와 발터의 이항 체크포인팅(revolve)은 체크포인트 개와 재계산 라운드 회로 최대 스텝을 감당할 수 있음을 보였고, 이것이 고정 체크포인트 개수에서 최적임을 증명했다. 조합수가 폭발적으로 커지므로 와 을 모두 으로 잡을 수 있다 — 메모리도 재계산도 로그로 억제된다는 것이 이 알고리즘이 표준이 된 이유다. 실무에서는 메모리·디스크 2단 체크포인팅으로 구현한다.
- 역방향 재구성: 지배 방정식이 시간 가역이면 최종 상태와 경계 이력만 저장해 순방향 장을 거꾸로 풀어 되살린다. 감쇠 없는 파동방정식에서 특히 잘 먹혀서 완전파형역산의 표준 기법이 됐다. 감쇠나 수치 소산이 있으면 되돌리는 과정이 불안정해지므로 혼합 전략을 쓴다.
여기서 한 가지 근본적 한계도 드러난다. 카오스 계에서는 수반해가 시간을 거슬러 올라갈수록 지수적으로 커진다. 리아푸노프 지수가 양수인 계(난류 DNS/LES, 기후 모형)에서 적분 구간을 길게 잡으면 기울기가 발산해 쓸 수 없다. 짧은 구간 앙상블 평균, 최소제곱 섀도잉(least-squares shadowing) 같은 대안이 연구되고 있지만, “장시간 평균 항력의 수반 기울기”는 아직 편하게 뽑을 수 있는 물건이 아니다.4
5. 역방향 자동미분과 같은 물건이다[편집]
수반법과 자동 미분의 역방향 모드는 다른 분야에서 각자 발견된 같은 구조다.
| 수반법 | 역방향 AD / 역전파 |
|---|---|
| 상태 | 중간 활성값 |
| 잔차 | 계산 그래프의 각 노드 |
| 수반변수 | 수반값(adjoint, .grad) |
| 시간 역방향 적분 | 순전파 기록 후 역방향 스윕 |
| 체크포인팅 | 그래디언트 체크포인팅 |
| 자기수반 문제 | 그래디언트가 순전파 값으로 표현되는 경우 |
차이는 추상화 수준뿐이다. AD는 프로그램의 모든 기본 연산에 무차별로 연쇄법칙을 적용하고, 수반법은 “수렴한 해에서 음함수 정리로 미분한다”는 수학적 지름길을 쓴다. 실제로 반복 솔버 내부를 통째로 AD에 넘기면 수렴 전 반복까지 미분해 테이프가 터지므로, 성숙한 구현은 바깥 루프는 수반법의 음함수 미분, 잔차 평가 하나는 AD 라는 하이브리드를 택한다. SU2·ADflow·OpenFOAM 계열 수반 솔버가 모두 이 구조다.
이 동형성을 알면 미분 가능 시뮬레이션이 왜 갑자기 흔해졌는지도 설명된다. 딥러닝 프레임워크가 역방향 AD 인프라를 공짜로 깔아 놓았으므로, 물리 솔버를 그 위에 얹는 순간 수반 코드를 손으로 쓸 필요가 없어진 것이다. 물리 정보 신경망이나 학습형 서브그리드 모델의 훈련이 성립하는 것도 결국 솔버의 수반을 자동으로 얻을 수 있기 때문이다.
6. 어디에 쓰이나[편집]
- 공력·구조 형상 설계: 1988년 지아메슨(Antony Jameson)이 유동 설계를 제어이론 문제로 정식화하며 도입한 이래, 현대 공력 형상 최적화는 사실상 전부 수반법이다. 그 전에 피로노(O. Pironneau)와 리옹(J.-L. Lions)이 타원형 PDE 최적 제어의 수학적 골격을 세워 두었다.
- 위상 최적화: 요소 수십만 개가 곧 설계변수 수십만 개다. 수반 없이는 성립하지 않는 분야.
- 데이터 동화: 4차원 변분 동화(4D-Var)는 관측과 예보의 불일치를 초기조건에 대해 최소화하는 문제이고, 그 기울기가 예보 모형의 수반이다. 르 디메와 탈라그랑(1986) 이후 현업 수치예보의 핵심 부품이 됐다. 수반 모형을 유지·검증하는 부담 때문에 앙상블 칼만 필터 계열과 오래 경쟁했고, 오늘날 주요 센터는 둘을 섞은 하이브리드를 쓴다.
- 역문제: 완전파형역산이 대표적이다. 지하 격자점 수백만 개가 미지수인데 기울기는 순전파 1회 + 역전파 1회로 끝난다.
- 오차 추정과 격자 적응: 목표지향 적응은 수반해로 가중한 잔차를 오차 지시자로 삼는다. “양력 계수 하나를 정확히 맞추는 데 필요한 격자”를 알고리즘이 스스로 찾는다.
7. 현업에서의 현실[편집]
- 수반 코드를 새로 짜면 반드시 유한차분 또는 복소수 스텝과 비교한다. 그리고 첫 시도는 거의 예외 없이 안 맞는다. 범인 1순위는 경계조건 항, 2순위는 목적함수의 명시 항 빠뜨림, 3순위는 전치 부호다.
- 순방향이 제대로 수렴하지 않았는데 수반을 돌리면, 수반은 존재하지도 않는 해에 대한 기울기를 성실하게 계산해 준다. 잔차부터 떨어뜨려야 한다.
- 수반 솔버는 순방향보다 수렴이 나쁠 때가 흔하다. 전치 야코비안의 스펙트럼이 다르기 때문이고, 순방향에서 잘 듣던 전처리기를 그대로 전치해 쓰면 성능이 안 나오는 경우가 많다.
- 난류 모델을 미분하지 않고 고정하는 “동결 난류” 편법은 기울기 부호는 대개 맞추지만 크기가 틀린다. 세부 논의는 민감도 해석 참고.
- 그래도 수반법을 한 번 붙여 놓으면 그 뒤로 설계변수를 얼마든지 늘려도 비용이 그대로다. 초기 구현비를 갈아 넣을 가치가 있는 몇 안 되는 투자다.
8. 관련 문서[편집]
- 민감도 해석 · 라그랑주 승수법 · 자코비안 행렬
- 자동 미분 · 역전파 · 물리 정보 신경망
- 형상 최적화 · 위상 최적화 · 컴플라이언트 메커니즘
- 완전파형역산 · 지진 토모그래피 · 역문제
- 크리로프 부분공간법 · 전처리기 · 준-뉴턴법
- 칼만 필터 · 앙상블 칼만 필터 · 데이터 동화
- 체크포인팅 · 미분 가능 시뮬레이션 · 헤세 행렬
9. Footnotes[편집]
-
수반법의 발견 계보는 분야마다 따로 있다. 최적 제어(폰트랴긴의 최대 원리에 등장하는 수반 변수), 원자로 물리의 섭동론(1940년대부터 중성자 수송 방정식의 수반을 썼다), 기상학의 수반 모형, 그리고 계산 그래프의 역방향 미분이 전부 독립적으로 같은 곳에 도착했다. 같은 수학이 네 번 발명되면 그건 대개 진짜다. ↩
-
이 용법에는 이름이 따로 붙어 있다 — 쌍대 가중 잔차(dual-weighted residual). 베커와 란나허가 1990년대에 정식화했고, “격자를 어디에 붙일지”를 목적함수가 직접 결정한다는 점에서 잔차 크기만 보는 고전적 적응과 철학이 다르다. 압력 계수를 잘 맞히는 격자와 항력을 잘 맞히는 격자가 다르다는 것을 알고리즘이 알아서 아는 셈. ↩
-
자일스와 피어스가 준1차원 오일러 방정식의 해석적 수반해를 구해 보인 결과가 유명하다. 수반해는 충격파를 가로질러 연속이지만 그 위치에서 특정한 내부 경계조건을 만족해야 하고, 이를 모른 채 그냥 이산화하면 충격파 근처 기울기가 조용히 틀린다. 조용히 틀리는 게 제일 무섭다는 말은 여기서도 유효하다. ↩
-
“그럼 난류 최적화는 어떻게 하고 있냐”는 질문의 답은 좀 허탈하다. 대부분 RANS로 푼다. RANS는 정상해를 갖는 척하는 모형이라 카오스 문제가 발생하지 않고, 그 덕에 수반이 얌전히 돌아간다. 물리적 정직성과 수반의 안정성 중에 후자를 고른 것인데, 아무도 이걸 자랑스럽게 말하지는 않는다. ↩