조건수 (Condition Number)

수학
한 줄 정의: 입력의 작은 변화가 행렬 연산 결과에 얼마나 크게 증폭되어 나타나는지를 측정하는 값이다.

쉽게 풀면

조건수는 어떤 계산이 '얼마나 예민한지'를 알려주는 숫자다. 조건수가 크면 입력값에 아주 작은 오차만 있어도 결과가 크게 흔들릴 수 있어 계산이 불안정하다. 반대로 조건수가 작으면 약간의 오차가 있어도 결과가 크게 변하지 않아 안정적이다. 저울이 예민할수록 바람 한 점에도 크게 흔들리는 것과 비슷하다.

왜 중요한가

조건수는 수치해석, 최적화, 통계 모델링 전반에서 계산 결과를 얼마나 신뢰할 수 있는지를 가늠하는 기준이 된다. 특히 최소제곱법이나 역행렬 계산처럼 행렬 연산에 의존하는 방법론에서는 조건수가 크면 결과값이 반올림 오차나 데이터의 미세한 잡음에도 크게 흔들릴 수 있어, 알고리즘의 신뢰성과 재현성을 평가할 때 자주 언급된다. 이 때문에 정규화, 전처리, 알고리즘 선택 등 실무적인 의사결정과도 직결된다.

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

"설계 행렬의 조건수가 매우 커서 최소제곱 추정치가 수치적으로 불안정하였다."

조건수가 큰 문제는 정규화(regularization) 기법을 통해 안정화하는 경우가 많다.

"제안한 전처리(preconditioning) 기법을 적용한 결과 시스템 행렬의 조건수가 크게 감소하여 반복법의 수렴 속도가 개선되었다."

대규모 선형시스템을 반복적으로 푸는 수치계산 분야에서는 조건수를 낮추는 전처리 자체가 중요한 연구 주제로 다뤄진다.

"입력 특성 간 상관관계가 높아 회귀 모델의 설계 행렬이 큰 조건수를 가지며, 이는 계수 추정의 분산을 크게 증가시켰다."

통계학 및 머신러닝 분야에서는 다중공선성과 연결지어 조건수를 언급하며, 모델 계수의 불안정성을 진단하는 지표로 활용한다.

조금 더 깊게 보면

조건수는 흔히 행렬의 최대 특이값과 최소 특이값의 비율로 정의되며, 이 값이 1에 가까울수록 잘 조건화(well-conditioned)된 문제, 값이 매우 크면 나쁘게 조건화(ill-conditioned)된 문제로 부른다. 어떤 노름(norm) 기준으로 계산하느냐에 따라 값이 달라질 수 있고, 실무에서는 L2 노름 기준의 조건수가 자주 쓰인다. 나쁜 조건수를 완화하기 위해 리지 회귀와 같은 정규화나 전처리(preconditioning) 기법이 함께 논의되는 경우가 많으며, 다중공선성 진단 지표인 분산팽창계수(VIF)와도 개념적으로 맞닿아 있다.

주의할 점

조건수는 사용하는 노름의 종류에 따라 값이 달라질 수 있으므로 단순 비교 시 주의해야 한다.

관련 용어