수치적 안정성 (Numerical Stability)

수학
한 줄 정의: 계산 과정에서 발생하는 작은 반올림 오차가 최종 결과에 지나치게 크게 증폭되지 않는 성질을 말한다.

쉽게 풀면

컴퓨터는 실수를 유한한 자릿수로만 표현할 수 있어 계산할 때마다 아주 작은 오차가 생긴다. 수치적으로 안정적인 방법은 이런 작은 오차가 계산을 거듭해도 눈덩이처럼 불어나지 않고 통제 가능한 수준으로 유지되는 방법이다. 반대로 불안정한 방법은 아주 작은 오차가 반복 계산 과정에서 걷잡을 수 없이 커져 최종 결과를 완전히 틀리게 만들 수 있다.

왜 중요한가

수치적 안정성은 알고리즘이 이론적으로 정확하더라도 실제 컴퓨터 환경에서 신뢰할 수 있는 결과를 내는지를 결정하기 때문에 수치해석, 과학계산, 딥러닝 등 계산을 다루는 거의 모든 공학·과학 논문에서 다뤄집니다. 특히 대규모 행렬 연산이나 반복 계산이 많은 딥러닝 학습에서는 그래디언트 소실이나 발산 같은 문제가 수치적 불안정성과 밀접하게 연관되어 있어, 새로운 알고리즘이나 최적화 기법을 제안하는 논문에서는 안정성 검증이 중요한 실험 항목으로 포함됩니다.

논문에서는 이렇게 쓰입니다

"제안한 알고리즘이 조건수가 큰 행렬에서도 수치적으로 안정적임을 실험적으로 확인하였다."

수치해석 분야에서는 알고리즘의 정확도뿐 아니라 오차 증폭을 억제하는 수치적 안정성도 중요한 평가 기준이다.

"소프트맥스 계산 과정에서 오버플로를 방지하기 위해 로그-섬-지수(log-sum-exp) 트릭을 적용하여 수치적 안정성을 확보하였다."

딥러닝 구현에서 수치적 안정성을 확보하기 위한 대표적인 기법을 보여주는 예시이다.

"편미분방정식을 명시적 방법으로 이산화할 경우 시간 간격이 특정 조건을 넘으면 수치적으로 불안정해짐을 확인하였다."

전산유체역학 등 편미분방정식을 다루는 시뮬레이션 연구에서 안정성 조건이 언급되는 사례이다.

조금 더 깊게 보면

수치적 안정성은 문제 자체의 민감도를 나타내는 조건수와는 구분되는 개념으로, 조건수가 큰 "나쁜 조건"의 문제라도 안정적인 알고리즘을 쓰면 오차 증폭을 어느 정도 억제할 수 있습니다. 편미분방정식의 수치해법에서는 시간 간격과 공간 간격 사이의 관계를 규정하는 CFL 조건 같은 안정성 기준이 자주 언급되며, 딥러닝에서는 그래디언트 클리핑이나 정규화 기법이 학습 과정의 수치적 안정성을 유지하는 실무적 수단으로 쓰입니다.

주의할 점

수학적으로 동등한 두 계산식이라도 계산 순서나 방식에 따라 수치적 안정성이 크게 다를 수 있다.

관련 용어