조건수 (Condition Number)
쉽게 풀면
조건수는 어떤 계산이 '얼마나 예민한지'를 알려주는 숫자다. 조건수가 크면 입력값에 아주 작은 오차만 있어도 결과가 크게 흔들릴 수 있어 계산이 불안정하다. 반대로 조건수가 작으면 약간의 오차가 있어도 결과가 크게 변하지 않아 안정적이다. 저울이 예민할수록 바람 한 점에도 크게 흔들리는 것과 비슷하다.
왜 중요한가
조건수는 수치해석, 최적화, 통계 모델링 전반에서 계산 결과를 얼마나 신뢰할 수 있는지를 가늠하는 기준이 된다. 특히 최소제곱법이나 역행렬 계산처럼 행렬 연산에 의존하는 방법론에서는 조건수가 크면 결과값이 반올림 오차나 데이터의 미세한 잡음에도 크게 흔들릴 수 있어, 알고리즘의 신뢰성과 재현성을 평가할 때 자주 언급된다. 이 때문에 정규화, 전처리, 알고리즘 선택 등 실무적인 의사결정과도 직결된다.
논문에서는 이렇게 쓰입니다
조건수가 큰 문제는 정규화(regularization) 기법을 통해 안정화하는 경우가 많다.
대규모 선형시스템을 반복적으로 푸는 수치계산 분야에서는 조건수를 낮추는 전처리 자체가 중요한 연구 주제로 다뤄진다.
통계학 및 머신러닝 분야에서는 다중공선성과 연결지어 조건수를 언급하며, 모델 계수의 불안정성을 진단하는 지표로 활용한다.
조금 더 깊게 보면
조건수는 흔히 행렬의 최대 특이값과 최소 특이값의 비율로 정의되며, 이 값이 1에 가까울수록 잘 조건화(well-conditioned)된 문제, 값이 매우 크면 나쁘게 조건화(ill-conditioned)된 문제로 부른다. 어떤 노름(norm) 기준으로 계산하느냐에 따라 값이 달라질 수 있고, 실무에서는 L2 노름 기준의 조건수가 자주 쓰인다. 나쁜 조건수를 완화하기 위해 리지 회귀와 같은 정규화나 전처리(preconditioning) 기법이 함께 논의되는 경우가 많으며, 다중공선성 진단 지표인 분산팽창계수(VIF)와도 개념적으로 맞닿아 있다.
주의할 점
조건수는 사용하는 노름의 종류에 따라 값이 달라질 수 있으므로 단순 비교 시 주의해야 한다.