1. 개요[편집]
| 후진 오차 해석 Backward error analysis | |
|---|---|
| 정립 | James H. Wilkinson (1960년대) — 튜링·기븐스의 선행 작업 위에 |
| 한 줄 요약 | 계산된 해는 살짝 다른 문제의 정확한 해다 |
| 경험칙 | 전진오차 $\lesssim$ 조건수 $\times$ 후진오차 |
| 구분 필요 | ODE의 modified equation / 섀도 해밀토니안 해석과는 다른 개념 |
“이 답이 원래 문제의 답과 얼마나 다른가”를 묻지 마라. 답할 수 없다. 대신 “이 답이 정확한 답이 되는 문제는 원래 문제와 얼마나 다른가”를 물어라.
후진 오차 해석(backward error analysis)은 반올림 오차를 가진 계산 결과 를 “원래 문제의 부정확한 해”가 아니라 “살짝 섭동된 문제의 정확한 해”로 해석해 알고리즘의 품질을 평가하는 관점이다. 1960년대에 제임스 윌킨슨이 체계화했고,1 이후 수치해석 전체가 알고리즘의 좋고 나쁨을 논하는 공통 언어가 됐다.
발상의 전환이 이 관점의 전부다. 를 풀어 를 얻었을 때, 오차 를 직접 추적하려면 소거 과정에서 생긴 수만 개의 반올림이 어떻게 얽혀 전파되는지를 따라가야 한다 — 사실상 불가능하다. 그런데 방향을 뒤집어 **“를 만족하는 가장 작은 는 얼마인가”**를 물으면 답이 깔끔하게 나온다. 그리고 이 질문이 공학적으로 더 정직하기까지 하다. 애초에 의 원소들은 실험이나 이산화에서 온 근사값이라 이미 수준의 불확실성을 달고 있기 때문이다. 후진오차가 데이터의 불확실성보다 작다면, 그 이상을 요구하는 것 자체가 무의미하다.
주의할 것이 하나 있다. 상미분방정식·심플렉틱 적분기 문헌에서도 “backward error analysis”라는 말을 쓰는데, 그건 수치 궤적이 정확히 만족하는 수정된 미분방정식(섀도 해밀토니안)을 찾는 작업으로 여기서 다루는 반올림 오차 이야기와 대상이 다르다. 철학은 같고 적용 대상이 다른 것이며, 이 위키에서는 수정 방정식 문서가 그쪽을 다룬다. 아래 “같은 이름 다른 동네” 절에서 다시 정리한다.
2. 후진오차는 정확히 잴 수 있다[편집]
전진오차 는 참해 를 모르므로 잴 수 없다. 반면 후진오차는 계산 가능한 닫힌 식이 있다. 노름 기준 상대 후진오차를
로 정의하면, 리갈-가셰 정리에 의해 잔차 만으로 정확히
이 된다. 최소화 문제인데 답이 한 줄로 떨어진다는 게 이 정리의 매력이다. 원소별(componentwise) 기준으로 가면 외틀리-프라거 정리가 대응하는 식을 준다. 요점은 후진오차는 잔차의 다른 이름이라는 것 — 그러니 잔차를 보는 습관 자체는 옳다. 다만 그게 무엇을 보증하는지가 문제다.
여기서 유명한 경험칙이 나온다.
전진오차 조건수 후진오차. 이 부등식이 역할 분담을 명확히 한다. 후진오차는 알고리즘의 책임이고, 조건수는 문제의 책임이다. 악조건 문제에서 답이 부정확한 것은 알고리즘 잘못이 아니며, 반대로 좋은 조건수에서도 답이 틀렸다면 그건 순전히 알고리즘 잘못이다.
3. 후진안정과 전진안정[편집]
- 후진안정(backward stable): 모든 입력에 대해 — 계산 결과가 반올림 단위 정도만 흔든 문제의 정확한 해다. 여기서 는 부동소수점 연산의 단위 반올림.
- 전진안정(forward stable): 전진오차가 정도로, 후진안정한 알고리즘이 냈을 법한 수준의 정확도를 낸다. 다만 작은 후진오차를 거쳐서 그렇게 된 것은 아니다.
후진안정이면 위 경험칙에 의해 전진안정이지만, 역은 성립하지 않는다. 교과서적 반례가 가우스-요르단 소거다. 선형계 풀이에서 전진오차는 가우스 소거법과 비슷한 수준으로 나오는데 잔차는 그렇지 않다 — 즉 답은 그럭저럭 맞지만 그 답이 정확해가 되는 “가까운 문제”가 없다. 잔차 기반 판정이나 반복 개선을 쓰는 순간 이 차이가 드러난다.
현실의 많은 알고리즘은 둘 사이의 혼합 후진-전진 안정만 만족한다. 즉 꼴로, 입력과 출력을 조금씩 흔들어야 등식이 맞는다. 그리고 후진안정이 불가능한 문제도 있다. 대표적으로 자체(행렬-벡터 곱)나 외적 계산은 결과가 특정 구조를 가져야 하는데 반올림이 그 구조를 깨뜨린다. 그래서 “후진안정하지 않다”가 곧 “나쁜 알고리즘”은 아니고, 무엇이 보장되고 무엇이 보장되지 않는지를 정확히 아는 것이 실무의 핵심이다.
4. 가우스 소거와 성장인자[편집]
부분 피벗팅을 쓴 가우스 소거법에 대해 윌킨슨이 준 원소별 결과가 이 분야의 상징이다. 계산된 인수 에 대해
여기서 의 크기를 지배하는 것이 성장인자다.
즉 소거 도중 원소가 원래보다 얼마나 커졌는가. 부분 피벗팅에서 승수의 절댓값이 1 이하이므로 매 단계 원소는 최대 2배가 되고, 따라서
이다. 이면 — 이 상계만 보면 가우스 소거는 쓰면 안 되는 알고리즘이다. 그리고 이 상계는 헛것이 아니라 실제로 달성된다. 대각이 1, 아래삼각이 , 마지막 열이 전부 1인 윌킨슨 행렬이 정확히 을 찍는다.
그런데 실무에서는 아무도 이 때문에 고생하지 않는다. 무작위 행렬 실험에서 부분 피벗팅의 평균 성장은 정도로 관측되며, 수십 년간의 실제 계산에서 큰 성장이 보고된 사례는 손에 꼽는다. 왜 부분 피벗팅이 실전에서 안정한가는 아직 완전히 설명되지 않은 문제로, 수치해석의 대표적인 미해결 수수께끼로 불린다.2 다만 “실전에서는 절대 안 터진다”고 말하면 그건 거짓이다 — 볼테라 적분방정식을 구적으로 이산화한 계(포스터, 1994)나 다중 사격법으로 푼 2점 경계값 문제(라이트, 1993)처럼, 인위적이지 않은 실제 응용에서 지수적 성장이 나온 사례가 문서화되어 있다. 두 경우 모두 특유의 구조가 성장을 유도했다.
완전 피벗팅을 쓰면 성장인자 상계가 수준으로 극적으로 좋아지지만 비교 연산이 들어 실용성이 떨어진다. 윌킨슨은 완전 피벗팅에서 을 추측했는데 굴드(1991)가 반례로 반증했다. 타협안이 룩 피벗팅이다. 그리고 토머스 알고리즘처럼 대각우세가 보장된 구조에서는 성장인자가 2 이하로 묶이므로 피벗 없이도 후진안정하다 — 피벗팅을 생략하는 코드가 정당화되는 근거가 바로 이 성장인자 논증이다.
5. 잔차가 작은 것과 해가 정확한 것[편집]
이 관점이 실무에 주는 가장 중요한 교훈은 다음 한 줄이다. 잔차가 작다는 것은 후진오차가 작다는 뜻이지, 해가 정확하다는 뜻이 아니다. 리갈-가셰 정리가 이걸 정확히 말해 준다. 가 이어도 가 면 유효숫자는 네 자리뿐이다. 반복법이나 크리로프 부분공간법에서 상대잔차로 수렴 판정을 하는 관행은 후진오차 기준으로는 완벽히 정당하지만, 전진 정확도에 대해서는 아무것도 약속하지 않는다.3
같은 논리가 고유값 문제에도 그대로 적용된다. QR 알고리즘으로 계산한 고유값들은 인 의 정확한 고유값이다(후진안정). 그러나 개별 고유값이 얼마나 정확한지는 그 고유값의 조건수 가 결정한다. 대칭 행렬처럼 정규행렬이면 조건수가 1이라 후진안정이 곧 높은 정확도지만, 강한 비정규 행렬에서는 짜리 섭동에도 고유값이 육안으로 보일 만큼 이동한다. 크릴로프-슈어 방법이 재시작을 직교변환과 절단만으로 구성하는 이유도, 직교변환이 후진오차를 로 묶어 주기 때문이다.
전진 정확도를 실제로 되찾고 싶다면 반복 개선(iterative refinement)을 쓴다. 잔차를 계산해 보정계를 풀고 더하는 절차인데, 스킬(Skeel)의 결과에 따르면 (지나치게 악조건이 아닌 한) 작업 정밀도만으로 한 번 돌려도 원소별 후진안정성이 회복된다. 최근에는 인수분해를 반정밀도·단정밀도로 하고 보정만 고정밀도로 하는 혼합정밀도 연산 기반 반복 개선이 GPU 컴퓨팅 하드웨어와 맞물려 다시 주목받고 있다. 값싼 후진안정 인수분해 + 몇 번의 보정 = 배정밀도 수준의 해라는 구도로, 후진 오차 해석이 없었다면 정당화할 수 없는 설계다.
실무 감각으로 정리하면 이렇다.
- LAPACK의
xxxSVX계열 드라이버는 조건수 추정치와 전진·후진 오차 한계를 함께 돌려준다. 쓰라고 만들어 둔 것이다. - 잔차만 보고 “수렴했다”고 선언하기 전에 조건수를 한 번은 추정해 본다.
- 결과가 이상하면 먼저 후진오차를 재라. 작다면 알고리즘은 무죄이고, 문제 설정이나 데이터를 의심할 차례다. 이 순서가 검증 및 확인의 기본기이기도 하다.4
6. 같은 이름, 다른 동네[편집]
기하 수치적분·심플렉틱 적분기 쪽에서 말하는 “backward error analysis”는 수치 해가 정확히 만족하는 수정된 미분방정식을 형식급수로 구성하는 작업이다. 심플렉틱 적분기의 경우 그 수정 방정식이 다시 해밀토니안계이고, 그 수정 해밀토니안을 섀도 해밀토니안이라 부른다. 에너지가 장시간 표류하지 않고 진짜 값 주위에서 유계 진동하는 현상이 여기서 설명된다.
두 해석은 “계산된 것은 살짝 다른 문제의 정확한 해다”라는 철학을 공유하지만, 섭동의 대상이 다르다. 이쪽은 행렬·우변 같은 데이터를 흔들어 반올림 오차를 설명하고, 저쪽은 미분방정식 자체를 흔들어 절단오차와 구조 보존을 설명한다. 유한차분에서 이산화된 방정식이 실제로 무슨 PDE를 푸는지 따지는 수정 방정식 분석도 후자 계열이다. 세미나에서 “backward error”라는 말이 나오면 어느 쪽 이야기인지 먼저 확인하는 게 안전하다.
7. 관련 문서[편집]
- 조건수 · 부동소수점 연산 · 절단오차 · 수치해석
- 가우스 소거법 · LU 분해 · 촐레스키 분해 · QR 분해
- 토머스 알고리즘 · 희소행렬 · 반복법 · 크리로프 부분공간법
- 고유값 문제 · 크릴로프-슈어 방법 · LOBPCG · 특이값 분해
- 수정 방정식 · 심플렉틱 적분기 · 룽게-쿠타법
- LAPACK · GPU 컴퓨팅 · 검증 및 확인 · 최소자승법
- 반복 개선 · 혼합정밀도 연산 · 구간 연산
8. Footnotes[편집]
-
윌킨슨 본인은 후진 오차 해석의 아이디어를 튜링과 기븐스에게 상당 부분 돌렸다. 그럼에도 이 관점이 “윌킨슨의 것”으로 불리는 이유는, 그가 이걸 하나의 우아한 통찰이 아니라 수백 페이지짜리 노가다로 실제 알고리즘 전부에 적용해 보였기 때문이다. 1965년 저서 The Algebraic Eigenvalue Problem은 지금 봐도 무섭다. ↩
-
이라는 상계와 실제 관측 사이의 이 격차는 트레페선과 바우가 “수치해석의 위대한 미스터리 중 하나”라고 부른 문제다. 무작위 행렬에 대한 확률적 설명은 상당히 진전됐지만, “실무 행렬은 무작위가 아니다”라는 반론이 남아 있어 완전한 답은 아직 없다. ↩
-
그래서 “잔차가 까지 떨어졌으니 수렴했습니다”라는 발표 슬라이드는 절반만 맞는 말이다. 정확히는 “우리가 푼 것은 원래 문제와 이내로 가까운 어떤 문제입니다”다. 그 둘이 같은 말이 되려면 조건수가 얌전해야 하는데, 그건 대개 아무도 확인하지 않는다. ↩
-
반올림 오차를 상계로 엄밀히 감싸는 구간 연산 같은 접근도 있지만, 순진하게 쓰면 구간이 지수적으로 벌어져 “답은 입니다” 같은 결론에 도달한다. 후진 오차 해석이 살아남은 것은 엄밀함과 쓸모 사이에서 가장 좋은 타협점이었기 때문이다. ↩