29.38 선형 변환의 수치적 안정성과 조건수(Condition Number) 분석
1. 수치적 안정성의 문제
컴퓨터에서 실수는 유한 정밀도의 부동 소수점(floating point)으로 표현되므로, 모든 산술 연산에 반올림 오차(rounding error)가 수반된다. **수치적 안정성(numerical stability)**이란 이러한 오차가 최종 결과에 미치는 영향이 제한적인지의 여부를 나타낸다.
선형 계(linear system) Ax = b의 풀이에서, 입력 데이터(A 또는 b)의 작은 섭동이 해 x에 얼마나 큰 변화를 유발하는가가 수치적 안정성의 핵심 질문이다.
2. 조건수의 정의
n \times n 가역 행렬 A의 **조건수(condition number)**는 다음과 같이 정의된다.
\kappa(A) = \|A\| \cdot \|A^{-1}\|
여기서 \|\cdot\|은 행렬 노름이다. 가장 널리 사용되는 것은 스펙트럼 노름(2-노름)에 기반한 조건수이다.
\kappa_2(A) = \|A\|_2 \cdot \|A^{-1}\|_2 = \frac{\sigma_{\max}(A)}{\sigma_{\min}(A)}
여기서 \sigma_{\max}와 \sigma_{\min}은 A의 최대/최소 특이값이다.
조건수는 항상 \kappa(A) \geq 1을 만족한다. \kappa(A) = 1은 직교 행렬에서만 달성된다.
3. 조건수의 물리적 의미
3.1 상대 오차의 증폭
Ax = b에서 b에 섭동 \delta b가 가해져 A(x + \delta x) = b + \delta b가 되면
\frac{\|\delta x\|}{\|x\|} \leq \kappa(A) \frac{\|\delta b\|}{\|b\|}
이 부등식은 입력의 상대 오차가 조건수만큼 증폭되어 출력의 상대 오차가 될 수 있음을 의미한다.
증명. \delta x = A^{-1} \delta b이므로 \|\delta x\| \leq \|A^{-1}\| \|\delta b\|. 또한 \|b\| = \|Ax\| \leq \|A\| \|x\|이므로 \|x\| \geq \|b\|/\|A\|. 따라서
\frac{\|\delta x\|}{\|x\|} \leq \frac{\|A^{-1}\| \|\delta b\|}{\|b\|/\|A\|} = \|A\| \|A^{-1}\| \frac{\|\delta b\|}{\|b\|} = \kappa(A) \frac{\|\delta b\|}{\|b\|}
\blacksquare
3.2 A의 섭동에 대한 민감도
A에 섭동 \delta A가 가해진 경우에도 유사한 부등식이 성립한다.
\frac{\|\delta x\|}{\|x + \delta x\|} \leq \kappa(A) \frac{\|\delta A\|}{\|A\|}
4. 조건수에 따른 분류
| 조건수 범위 | 분류 | 수치적 의미 |
|---|---|---|
| \kappa \approx 1 | 잘 조건화(well-conditioned) | 오차 증폭 거의 없음 |
| \kappa \sim 10^1 \text{--} 10^3 | 양호 | 안정적 계산 가능 |
| \kappa \sim 10^6 \text{--} 10^{10} | 악조건(ill-conditioned) | 유효 자릿수 손실 심각 |
| \kappa \to \infty | 특이(singular) | 해의 유일성 상실 |
부동 소수점 단정도(single precision, 약 7자리)에서 \kappa \approx 10^7이면 해의 유효 자릿수가 거의 없다. 배정도(double precision, 약 16자리)에서는 \kappa \approx 10^{16}이 한계이다.
5. 기하학적 해석
조건수 \kappa_2(A) = \sigma_{\max}/\sigma_{\min}은 A에 의해 단위 구면이 변환된 타원체의 **편심률(eccentricity)**을 측정한다.
- \kappa = 1: 타원체가 구면(모든 반축 동일). 완벽히 등방적(isotropic).
- \kappa \gg 1: 타원체가 매우 납작(장반축과 단반축의 비율이 큼). 강한 이방성(anisotropy).
납작한 타원체에서는 미소한 방향 변화가 매우 다른 점으로 투영될 수 있으므로 수치적으로 불안정하다.
6. 조건수의 성질
(1) \kappa(A) \geq 1 (등호는 직교 행렬)
(2) \kappa(\alpha A) = \kappa(A) (\alpha \neq 0, 스케일링 불변)
(3) \kappa(A^T) = \kappa(A)
(4) \kappa(AB) \leq \kappa(A) \kappa(B)
(5) 대칭 양의 정부호 행렬의 경우 \kappa_2(A) = \lambda_{\max}/\lambda_{\min}
7. 조건수 개선 방법
7.1 전처리(Preconditioning)
악조건 행렬 A에 대하여 Ax = b를 직접 풀지 않고, 전처리 행렬(preconditioner) M \approx A^{-1}을 사용하여 MAx = Mb를 풀면 \kappa(MA) \ll \kappa(A)가 되어 수렴이 크게 개선된다.
7.2 정칙화(Regularization)
악조건 또는 비정칙 행렬 A에 \epsilon I를 더하면
\kappa(A + \epsilon I) = \frac{\sigma_{\max} + \epsilon}{\sigma_{\min} + \epsilon}
\epsilon > 0이면 최소 특이값이 \epsilon 이상이 되어 조건수가 개선된다. 이것이 릿지 회귀(ridge regression)에서 \lambda I를 추가하는 수학적 근거이다.
7.3 직교 변환의 활용
직교 행렬 Q의 조건수는 \kappa(Q) = 1이다. 따라서 QA의 조건수는 A의 조건수와 같거나 같은 범위에 있으며, 직교 변환은 조건수를 악화시키지 않는다. 이것이 QR 분해, 하우스홀더 변환 등 직교 변환 기반 알고리즘이 수치적으로 안정적인 근본적 이유이다.
8. 딥러닝에서의 조건수
8.1 가중치 행렬의 조건수
신경망 가중치 행렬 W의 조건수가 클수록:
- 순전파에서 특정 방향의 신호가 과도하게 증폭/감쇠된다.
- 역전파에서 기울기가 특정 방향으로 편향되어 학습이 비효율적이다.
- 수치적 불안정성으로 인해 학습 과정이 발산할 수 있다.
8.2 손실 함수의 헤시안 조건수
헤시안 H = \nabla^2 L의 조건수 \kappa(H)는 손실 함수의 곡률 구조를 특성화한다. \kappa(H) \gg 1이면 손실 함수의 등고면이 매우 길쭉한 타원이 되어 경사 하강법(gradient descent)의 수렴이 느려진다(지그재그 현상).
아담(Adam), RMSProp 등의 적응적 학습률 방법은 각 매개변수 방향에 독립적 학습률을 적용하여 효과적 조건수를 줄이는 역할을 한다. 이는 대각 전처리와 수학적으로 유사한 원리이다.
8.3 배치 정규화와 조건수
배치 정규화는 각 층의 활성화 분포를 정규화하여 야코비안 행렬의 조건수를 개선한다. 이로써 기울기 전파의 안정성이 향상되고 학습 속도가 개선된다.