선형머수학
13. 큰 행렬의 계산
hwijin97
2022. 5. 2. 14:36
$Ax =b$ 의 해를 구할때, 소거법의 경우 대부분 정확한 해를 계산할 수 있었다.
하지만, 방정식이 너무많거나 ( $m > n$ ), 정사각행렬이 특이행렬이거나, 행렬 $A$ 의 조건이 매우 좋지 않거나, 너무 크면 해를 구하지 못할 수 있다.
딥러닝에서는 해가 너무많은데, 실험데이터를 일반화할 수 있는 하나의 해를 정한다.
- 모든 행렬 $A = U\Sigma V^T$ 에는 유사역행렬 pseudo inverse $A^+ = V \Sigma^+ U^T$ 가 존재한다. 유사역행렬은 $Ax = b$ 의 해를 구하는 하나의 방법이다.
- 행렬 $A$ 가 적당한 크기의 정사각 가역행렬이고, 행렬의 조건수 condition number $simga_1 / simga_n$ 이 너무 크지않다면, 행교환을 포함한 소거법을 수행할 수 있다. $PA = LU$, 역슬래시 backslash 명령 $A$\$b$ 는 가능하다면 $A$ 의 블록대각을 만드는 것을 의미한다.
- $m > n = r$ 인경우, $Ax = b$ 의 해를 기대하기에 너무 많은 방정식이 있다. ($n$ 개의 변수에 대한 $m$ 개의 방정식) 만약 $A$ 의 열이 서로 독립이고, 조건이 너무 나쁘지 않으면, 최소제곱해 $\hat{x}$ 을 구하기 위해 정규방정식 normal equation $A^TA\hat{x} = A^Tb$ 를 풀면된다.
여기서 $A\hat{x}$ 은 열공간 위로의 $b$ 의 사영 이다. - $m < n$ 일때, $Ax =b$ 의 해는 무수히 많은 해가 존재한다. $A$ 는 0이 아닌 영공간을 가지고, 해 $x$ 는 결정되지 않는다. 따라서 목적에 맞는 최선의 해 $x$ 를 선택한다.
- $x = x^+ = A^+b$ : 유사역행렬 $A^+$ 는 영공간의 성분이 0 인 $l^2$ 노름을 최소로하는 해를 준다.
- $x = x_1 = ($l^1$ 노름이 최소인 해) : 이 해는 매우 바람직하지만, 나오 가능성이 희박하다. ( sparse 함 ) - 행렬 $A$ 의 열이 나쁜 조건일 수 있다. 조건수 condition number $\sigma_1 / \sigma_r$ 이 매우 클때 이다. 이때 $x$ 는 잘 결정되지 않는다. 일반적인 해결책은 그람-슈미트, 하우스 홀더 알고리즘을 통해 열을 직교화한다.
- $A$가 5에서 처럼 특이행렬에 가까운 행렬일 수 있다. $A^TA$ 의 역행렬은 매우 크고, 그람-슈미트 방법도 실패할때, 페널티 항을 추가하는 방법이 있다.
- $||Ax - b||^2 + \delta^2 ||x||^2$ 을 최소화하는 $(A^TA + \delta^TI)x_{\delta} = A^Tb$ 의 해를 구하라.
$\delta^2$ 가 0 에 근접할수록, $(A^TA + \delta^2I)^{-1}A^T$ 는 유사역행렬 $A^+$ 에 근접한다.
$A^TA$ 의 성분을 더 양수로 만들기 위해 $\delta^2 I$ 를 더함으로 행렬의 가역성을 만들고, 이는 통계학의 리지 회귀와 연결된다. - $A$ 가 매우 크다고할때, 메모리가 빠르게 낭비될 것이다. 몇개의 열은 볼수있겠지만, 소거법을 할수 없다. 가장 좋은 해결책은 열을 랜덤 샘플링 하는 것이다. 만약 $A$가 과하게 크지만 합리적으로 일관적이라면, 각 $Ax$는 열공간에서 유용한 표본이된다. 임의의 수치선형대수학은 안전한 통계적기반을 가지는 알고리즘으로 연결된다.