H4 · 양의 연산자에서 SVD까지: 얼마나 늘리고 어디로 보내는가#
H3에서는 공분산을 직교하는 고유방향으로 나누었습니다. 이번에는 각 방향의 분산이 음수가 아니라는 성질에서 출발해, 양의 제곱근과 삼각 인자의 차이를 계산합니다.
이어서 입력과 출력의 차원이 다른 행렬도 길이 변화와 방향 변화로 나누어 봅니다. 이 분해가 SVD와 최소노름 최소제곱해로 이어집니다.
1. 공분산에서 양의 연산자로#
중심화한 두 관측의 공분산을
라 하겠습니다. 계수 \(u\)로 만든 관측 \(u^\top X\)의 분산은
입니다. 이차형식이 음수가 되지 않는다는 성질이 공분산의 양성입니다.
실수 회전 \(R=\begin{pmatrix}0&-1\\1&0\end{pmatrix}\)은 \(x^\top Rx=0\)이지만 \(R\ne R^\top\)입니다. 그러므로 실수에서 양반정치라는 말에는 자기수반을 포함하겠습니다. 자기수반이고 영벡터가 아닌 모든 \(x\)에서 \(x^\top Tx>0\)이면 양정치라 합니다.
2. 제곱근과 Cholesky 인자#
\(\Sigma\)의 두 단위 고유벡터는 \(q_+=(1,1)^\top/\sqrt2\), \(q_-=(1,-1)^\top/\sqrt2\)이고 고윳값은 \(3,1\)입니다. \(P_\pm=q_\pm q_\pm^\top\)라 두면
\(a=\sqrt3+1,b=\sqrt3-1\)라 하면 \(a^2+b^2=8,2ab=4\)이므로
한편 하삼각 Cholesky 인자는
입니다. 제곱근은 대칭이고 고유방향을 보존하지만, Cholesky 인자는 좌표 순서에 의존합니다. \(I_2\)에는 반사 \(uu^\top-vv^\top\)처럼 양이 아닌 자기수반 제곱근이 무수히 많으므로 ‘양의’ 조건이 유일성을 고릅니다.
그림 70 왼쪽은 고유축별 확대를, 오른쪽은 좌표 순서가 들어간 삼각 인자를 나타냅니다.#
2.1 같은 공분산을 세 좌표로 확인하기#
\(u=(1,0)^\top\)이면 \(u^\top\Sigma u=2\)이고, \(u=(0,1)^\top\)도 2입니다. 합 방향 \(q_+\)에서는 \( q_+^\top\Sigma q_+ =\frac12(1,1)\begin{pmatrix}3\\3\end{pmatrix}=3, \) 차 방향 \(q_-\)에서는 같은 방식으로 1입니다. 따라서 임의의 단위벡터 \(u=aq_++bq_-\)에 대해 \( u^\top\Sigma u =(aq_++bq_-)^\top(3aq_++bq_-) =3a^2+b^2 \) 가 됩니다. \(a^2+b^2=1\)이므로 이차형식의 범위가 정확히 \([1,3]\)임을 계산으로 확인할 수 있습니다.
2.2 양의 제곱근의 유일성을 한 줄씩 확인하기#
\(R\succeq0\)이고 \(R^2=\Sigma\)라고 합시다. \(R\)의 스펙트럼 정리를 사용해 \(Rw=\mu w\)인 단위 고유벡터를 잡으면 \(\mu\ge0\)입니다. 그러면 \( \Sigma w=R^2w=R(\mu w)=\mu Rw=\mu^2w. \) 즉 \(w\)는 \(\Sigma\)의 고유벡터이고 \(\mu^2\)는 그 고윳값입니다. \(\Sigma\)의 고윳값은 3과 1뿐이며 \(\mu\ge0\)이므로 각각 \(\sqrt3,1\)로 강제됩니다. 두 고유공간이 일차원이므로 \(R\)의 작용이 모든 기저벡터에서 정해지고, 따라서 \(R=\Sigma^{1/2}\)입니다. 고윳값이 중복되면 같은 논리를 고유공간 전체에 적용해야 하며, 양의 조건이 그 공간 안의 임의 회전을 허용하지 않는다는 점이 핵심입니다.
2.3 무상관 충격에서 상관된 관측 만들기#
경제 모형에서 두 원자료 충격 \(z=(z_1,z_2)^\top\)를 평균 0, 공분산 \(I\)인 표준 충격으로 두고 관측 충격을 \(x=Lz\)로 만들 수 있습니다. 이번에는 각 관측의 분산을 1로 맞춘 공분산 \(C=\left(\begin{smallmatrix}1&1/2\\1/2&1\end{smallmatrix}\right)\)를 사용합니다. 그 Cholesky 인자는 \( L=\begin{pmatrix}1&0\\1/2&\sqrt3/2\end{pmatrix},\qquad LL^\top=\begin{pmatrix}1&1/2\\1/2&1\end{pmatrix}. \) 성분을 직접 쓰면 \(x_1=z_1\), \(x_2=\tfrac12z_1+\tfrac{\sqrt3}{2}z_2\)입니다.
따라서 \( E[x_1x_2] =E[z_1(\tfrac12z_1+\tfrac{\sqrt3}{2}z_2)] =\tfrac12E[z_1^2]+\tfrac{\sqrt3}{2}E[z_1z_2] =\tfrac12. \) 대칭 제곱근 \(S=C^{1/2}\)를 사용해도 \(SS^\top=C\)이므로 같은 공분산을 만듭니다. 다만 공분산이 같다는 사실만으로 분포 전체가 같지는 않습니다. 표준 정규벡터를 입력으로 사용할 때에는 두 결과 모두 같은 정규분포를 갖습니다.
하삼각 \(L\)에서는 \(x_1=z_1\)이므로 두 번째 구조 충격 \(z_2\)가 첫째 변수에 즉시 영향을 주지 않습니다. 반면 첫 번째 충격 \(z_1\)은 둘째 변수에도 계수 \(1/2\)로 전달됩니다. 이러한 방향 해석은 삼각 인자의 선택에 들어간 추가 조건입니다. 양의 행렬의 대수적 성질과 경제적 식별 가정을 분리해야 하는 이유입니다.
3. 절댓값과 극분해#
직사각형 행렬 \(A\in\mathbb R^{m\times n}\)에 대해
로 둡니다. \(x^\top A^\top Ax=\|Ax\|^2\ge0\)이므로 이 제곱근은 존재합니다. 또
입니다. 실제로 \(\||A|x\|^2=x^\top|A|^2x=x^\top A^\top Ax=\|Ax\|^2\)입니다. 양쪽 노름 중 하나가 0일 때 다른 쪽도 0이므로 두 핵이 같습니다.
\(A^\top A\)의 양의 고윳값 \(\sigma_i^2\)에 대응하는 정규직교 고유벡터를 \(v_i\)라 하고 \(u_i=Av_i/\sigma_i\)라 두면
따라서 \(U v_i=u_i\), \(\ker A\)에서는 \(U=0\)으로 정의하면 \(A=U|A|\)입니다. \(U\)는 \((\ker A)^\perp\)에서 등거리입니다. \(A\)가 가역이면 이 공간이 전체이므로 \(U\)는 유일한 직교행렬입니다. 가역이 아닌 경우에도 핵에서 0으로 정한 부분등거리 사상은 유일합니다. 다만 \(A=U|A|\)라는 식만 요구하면 핵에서의 작용은 그 식으로 정해지지 않습니다. 정사각행렬에서는 이를 직교행렬로 확장할 수 있지만, 그 확장은 핵이 있을 때 유일하지 않을 수 있습니다.
3.1 극분해의 정의역과 공역을 섞지 않기#
\(A\)가 \(m\times n\)이면 \(|A|\)는 입력공간 \(\mathbb R^n\)에서 자신으로 가고, \(U\)는 입력공간의 부분공간에서 출력공간 \(\mathbb R^m\)으로 갑니다. \(v_i\)와 \(u_i\)를 같은 공간의 벡터라고 쓰면 안 됩니다. 성분별로 \( |A|v_i=\sigma_i v_i,\qquad U|A|v_i=U(\sigma_i v_i)=\sigma_i u_i=Av_i \) 입니다. 영공간 성분 \(v_0\in\ker A\)에 대해서는 \(|A|v_0=0\)이고 \(Av_0=0\)이므로 \(U|A|v_0=Av_0\)도 자동으로 맞습니다. 이 두 경우를 합쳐야 \(A=U|A|\)가 모든 입력에서 성립합니다.
3.2 직사각형 자료에서 늘림과 방향을 따로 기록하기#
세 센서가 두 개의 입력 신호를 측정한다고 하여 \( A=\begin{pmatrix}1&0\\0&2\\1&1\end{pmatrix} \) 을 생각합시다. \(A\)는 입력 평면을 출력 공간의 평면으로 보내며, 입력의 길이만으로는 어느 방향이 가장 크게 측정되는지 알기 어렵습니다. \( A^\top A=\begin{pmatrix}2&1\\1&5\end{pmatrix} \) 의 고유방향을 먼저 찾으면 그 방향에서의 제곱 길이 배율이 고윳값입니다.
고윳값 방정식은 \( (2-\lambda)(5-\lambda)-1=\lambda^2-7\lambda+9=0 \) 이고 두 근은 \((7\pm\sqrt{13})/2\)입니다. 특이값은 그 제곱근이며, 극분해의 \(|A|\)가 바로 이 입력 방향별 길이를 기록합니다. 출력 방향은 \(u_i=Av_i/\sigma_i\)로 별도로 계산합니다. 입력 차원과 출력 차원을 구분하면 SVD의 두 종류 벡터가 왜 필요한지 자연스럽게 보입니다.
4. Procrustes 정렬#
같은 차원의 중심화한 두 점군 \(X,Y\)를 직교변환 \(Q\)로 맞추는 문제를
로 씁니다. \(C=YX^\top\)라 하면 성분별 제곱을 합친 결과
입니다. \(C=U\operatorname{diag}(\sigma_i)V^\top\)의 완전 SVD를 사용합니다. \(U,V,Q\)는 같은 크기의 직교행렬이고 \(R=U^\top QV\)도 직교행렬입니다. 따라서
각 \(R_{ii}\)는 단위벡터 둘의 내적이므로 1 이하입니다. \(Q_*=UV^\top\)를 고르면 \(R=I\)여서 상한을 달성합니다. 이 구성은 \(C\)가 특이해도 성립합니다. 0 특이값 방향의 내적은 목적함수에 기여하지 않으므로 최적변환이 여러 개일 수 있습니다.
직교변환에는 반사도 포함됩니다. 방향을 보존하는 회전만 허용하려면 \(\det Q=1\)이라는 제약이 추가되므로, 여기의 해를 그대로 사용하기 전에 그 제약을 확인해야 합니다.
4.1 Procrustes 식의 성분 전개#
\(X,Y\)의 열을 \(x_j,y_j\)라 하면 \( \|Y-QX\|_F^2=\sum_j\|y_j-Qx_j\|^2. \) 각 항은 \( \|y_j\|^2+\|Qx_j\|^2-2y_j^\top Qx_j =\|y_j\|^2+\|x_j\|^2-2y_j^\top Qx_j \) 입니다. 마지막 합을 자취로 바꾸면 \( \sum_jy_j^\top Qx_j =\sum_j\sum_i y_{ij}(Qx_j)_i =\operatorname{tr}(Q^\top YX^\top). \) 따라서 최적화가 자취 하나의 최댓값으로 정확히 줄어듭니다. 자료를 중심화하지 않았다면 회전뿐 아니라 평행이동까지 함께 추정해야 하므로, 이 절의 \(X,Y\)는 중심화되어 있다는 가정을 지킵니다.
5. 특이값과 SVD#
특이값은 \(|A|\)의 고윳값을 내림차순으로 나열한 \(\sigma_1\ge\cdots\ge\sigma_n\ge0\)입니다. 예를 들어
이므로 \(\sigma_1=3\sqrt5,\sigma_2=\sqrt5\), \(v_1=(1,1)^\top/\sqrt2,v_2=(1,-1)^\top/\sqrt2\)입니다. 계산하면
이고
비정규 \(J=\begin{pmatrix}1&1\\0&1\end{pmatrix}\)은 고윳값이 \(1,1\)이지만 \(J^\top J\)의 고윳값이 \((3\pm\sqrt5)/2\)라서 특이값과 고윳값은 다릅니다.
그림 71 두 입력축의 길이가 특이값만큼 바뀌어 출력축이 됩니다.#
5.1 SVD 외적합을 실제 성분으로 복원하기#
앞의 \(A\)에 대해 \( 3\sqrt5\,u_1v_1^\top =\frac32\begin{pmatrix}1&1\\3&3\end{pmatrix},\qquad \sqrt5\,u_2v_2^\top =\frac12\begin{pmatrix}3&-3\\-1&1\end{pmatrix}. \) 두 행렬을 더하면 첫째 행은 \((3,0)\), 둘째 행은 \((4,5)\)가 되어 원래 \(A\)가 복원됩니다. 이 계산은 \(\sigma_i\)가 단순한 숫자 목록이 아니라 입력 방향 \(v_i\)와 출력 방향 \(u_i\)를 연결하는 계수임을 보여 줍니다.
6. SVD의 첫 번째 증명#
극분해 \(A=U|A|\)와 H3의 스펙트럼 정리를 합칩니다.
에 \(U\)를 적용하면
\(u_i\)의 직교성은 앞 절의 계산으로 이미 증명했습니다. 따라서 SVD는 정의가 아니라 극분해와 스펙트럼 정리의 합성으로 존재합니다.
7. SVD의 두 번째 증명#
유한차원 단위구에서 \(\|Av\|\)의 최댓값 \(\sigma_1\)을 달성하는 단위벡터 \(v_1\)을 고릅니다. \(\|w\|=1\), \(w\perp v_1\)이면 모든 실수 \(t\)에 대해
좌변을 전개하면
\(t>0,t<0\)에서 각각 나누고 \(t\to0\)을 보내면 \(\langle Av_1,Aw\rangle=0\)입니다. 복소수에서는 \(w\)와 \(iw\)를 사용해 실수부와 허수부를 각각 없앱니다. 따라서 \(A(v_1^\perp)\subseteq(Av_1)^\perp\). 이 두 공간의 차원이 하나 줄었으므로 귀납을 적용합니다. \(\sigma_1=0\)이면 \(A=0\)이고 종료합니다.
7.1 변분 증명의 귀납 단계#
최대 방향 \(v_1\)을 찾은 뒤 공역에서 \(u_1=Av_1/\sigma_1\)을 정합니다. 이미 \( \langle Av_1,Aw\rangle=0 \) 를 보였으므로 \(Aw\)는 \(u_1^\perp\)에 있습니다. 그러므로 제한사상 \( A_1:v_1^\perp\longrightarrow u_1^\perp,\qquad A_1w=Aw \) 가 정의됩니다. 정의역과 공역의 차원이 각각 하나씩 줄었고, 같은 유한차원 조건이 유지되므로 귀납가정을 적용할 수 있습니다. 이 부분을 생략하면 “최대 하나를 찾았다”에서 “모든 특이쌍을 찾았다”로 건너뛰게 됩니다.
8. 유사역행렬과 조건수#
축소 SVD \(A=U_r\Sigma_rV_r^\top\)에 대해
로 둡니다. 그러면 네 조건
을 대각 사영의 곱으로 직접 확인할 수 있습니다. 유일성도 확인하겠습니다. 네 조건을 만족하는 후보 \(X\)에 대해 \(AX\)는 대칭 멱등행렬이고, \(AXA=A\)이므로 그 상은 정확히 \(\operatorname{ran}A\)입니다. 따라서 \(AX\)는 그 공간의 직교사영입니다.
마찬가지로 \(XA\)는 대칭 멱등행렬입니다. \(Av=0\)이면 \(XAv=0\)이고, \(XAv=0\)이면 \(Av=AXAv=0\)이므로 \(\ker(XA)=\ker A\)입니다. 따라서 \(XA\)는 \((\ker A)^\perp\)로의 직교사영입니다. 다른 후보 \(Y\)에도 같은 결론이 적용되어 \(AX=AY\), \(XA=YA\)입니다. 이제
이므로 후보는 유일합니다. 여기서는 사영의 상과 핵을 먼저 확인한 뒤 곱을 바꾸었습니다.
\(z=A^+b\)는 \(b\)의 열공간 사영을 만드는 최소제곱해이고, 모든 다른 최소제곱해 \(z+k\) (\(k\in\ker A\))는
이므로 \(z\)가 최소노름입니다.
\(A\)가 가역이면 \(\kappa(A)=\sigma_1/\sigma_n\)이고 \(A^\top A\)의 고윳값은 \(\sigma_i^2\)입니다. 따라서
정규방정식은 이 제곱을 계산에 가져오므로 QR·SVD보다 불안정할 수 있습니다.
그림 72 정규방정식 경로가 조건수 제곱 효과로 더 빠르게 악화되는 한 예를 표시합니다.#
8.1 조건수 식의 정확한 의미#
\(A=U\operatorname{diag}(\sigma_i)V^\top\)이고 \(U,V\)가 직교이면 \( A^\top A=V\operatorname{diag}(\sigma_i^2)V^\top. \) 따라서 가장 큰 고윳값은 \(\sigma_1^2\), 가장 작은 고윳값은 \(\sigma_n^2\)입니다. 조건수의 비는 \( \frac{\sigma_1^2}{\sigma_n^2} =\left(\frac{\sigma_1}{\sigma_n}\right)^2 \) 입니다. 이 등식은 계산 경로가 틀렸다는 뜻이 아니라, 같은 자료를 제곱한 순간 작은 방향과 큰 방향의 비가 한 번 더 벌어진다는 뜻입니다.
9. 계산 코드#
아래 셀은 손계산을 검산하며, 일반 정리를 대신하지 않습니다.
import numpy as np
A = np.array([[3.,0.],[4.,5.]])
lam, V = np.linalg.eigh(A.T @ A)
sig = np.sqrt(lam)
assert np.allclose(V.T @ V, np.eye(2))
U = np.column_stack([A @ V[:,i] / sig[i] for i in range(2)])
assert np.allclose(U.T @ U, np.eye(2))
assert np.allclose(U @ np.diag(sig) @ V.T, A)
S = np.diag([1.,0.]); b = np.array([2.,3.]); X = np.linalg.pinv(S)
assert np.allclose(S@X@S,S) and np.allclose(X@b,[2.,0.])
print("H4 검산 완료")
H4 검산 완료
10. 직접 풀어 보는 연습과 전체 풀이#
연습 1. 제곱근과 Cholesky#
\(\Sigma=\begin{pmatrix}1&1/2\\1/2&1\end{pmatrix}\)의 양의 제곱근과 Cholesky 인자를 구하세요.
풀이. 고윳값은 \(3/2,1/2\)이고 고유벡터는 \(q_\pm\)입니다.
\(LL^\top=\Sigma\)를 성분별로 곱해 확인합니다.
연습 2. 극분해#
\(A=\begin{pmatrix}0&-2\\1&0\end{pmatrix}\)의 \(|A|\)와 \(U\)를 구하세요.
풀이. \(A^\top A=\operatorname{diag}(1,4)\)이므로 \(|A|=\operatorname{diag}(1,2)\)입니다. \(U=A|A|^{-1}=\begin{pmatrix}0&-1\\1&0\end{pmatrix}\)이고 \(U^\top U=I\)입니다.
연습 3. 최소노름해#
\(A=\operatorname{diag}(2,0),b=(4,3)^\top\)의 \(A^+\)와 최소노름해를 구하세요.
풀이. \(A^+=\operatorname{diag}(1/2,0)\), \(A^+b=(2,0)^\top\)입니다. 모든 최소제곱해는 \((2,t)\)이고 노름제곱 \(4+t^2\)가 최소인 \(t=0\)을 택합니다.
연습 4. 특이값과 고윳값#
\(J=\begin{pmatrix}1&1\\0&1\end{pmatrix}\)의 특이값을 구하세요.
풀이. \(J^\top J=\begin{pmatrix}1&1\\1&2\end{pmatrix}\)의 특성다항식은 \(\lambda^2-3\lambda+1\)입니다. 고윳값은 \((3\pm\sqrt5)/2\), 특이값은 \((1+\sqrt5)/2,(\sqrt5-1)/2\)입니다.
연습 5. 조건수#
\(L_\varepsilon=\begin{pmatrix}1&1\\\varepsilon&0\\0&\varepsilon\end{pmatrix}\)에서 \(\varepsilon=10^{-3}\)일 때 \(L_\varepsilon^\top L_\varepsilon\)와 조건수를 구하세요.
풀이. \(L_\varepsilon^\top L_\varepsilon=\begin{pmatrix}1.000001&1\\1&1.000001\end{pmatrix}\)이고 고윳값은 \(2.000001,10^{-6}\)입니다. 조건수는 약 \(2.0\times10^6\)입니다.
11. 지금까지의 내용을 수학의 언어로 정리해 봅시다#
지금까지 계산하고 설명한 내용을 수학에서는 다음과 같이 정의하고 정리합니다. 수학의 언어로 옮기는 과정이라 조금 딱딱하지만, 앞의 공분산·자료행렬과 연결하며 살펴봅시다.
정의. 유한차원 내적공간에서 \(T=T^*\)이고 \(\langle Tv,v\rangle\ge0\)이면 \(T\succeq0\)라 합니다. \(|T|=(T^*T)^{1/2}\)를 절댓값이라 하고, \(T=U|T|\)에서 \(U\)를 극인자라 합니다.
정리(양의 제곱근). \(T\succeq0\)이면 \(R\succeq0,R^2=T\)인 \(R\)이 유일합니다.
증명. H3의 사영값 분해 \(T=\sum_\lambda\lambda P_\lambda\)에서 \(R=\sum_\lambda\sqrt\lambda P_\lambda\)를 정의하면 \(R^2=T\)입니다. 다른 양의 제곱근 \(S\)는 스펙트럼 정리에 의해 \(S=\sum_\mu\mu Q_\mu\), \(\mu\ge0\)이고 \(T=S^2=\sum_\mu\mu^2Q_\mu\)입니다. 사영값 분해의 유일성으로 \(Q_\mu=P_{\mu^2}\), \(\mu=\sqrt\lambda\)가 강제됩니다.
정리(극분해). 모든 \(A:V\to W\)는 \(A=U|A|\)로 쓸 수 있고 \(U\)는 \((\ker A)^\perp\)에서 등거리입니다.
증명. \(|A|v_i=\sigma_i v_i\)인 양의 고유벡터에 \(Uv_i=Av_i/\sigma_i\)로 두면 \(u_i\)의 내적 계산이 \(\delta_{ij}\)를 줍니다. 영공간에는 0을 두고 선형 확장하면 모든 \(v\)에 대해 \(U|A|v=Av\)입니다.
정리(SVD). \(A=U\Sigma V^*\)이며 0이 아닌 특이값은 \(|A|\)의 양의 고윳값입니다.
증명. \(|A|\)의 정규직교 고유기저를 위 극분해 식에 대입하면 외적합 식이 즉시 나옵니다. 별도로 단위구 최댓값과 직교여공간 귀납으로도 같은 식을 얻습니다.
정리(Moore–Penrose). 네 조건을 만족하는 \(A^+\)는 유일하고 최소제곱해 중 최소노름해를 줍니다.
증명. SVD에서 \(A^+=V_r\Sigma_r^{-1}U_r^*\)를 대입하면 네 조건이 대각사영의 항등식으로 줄어듭니다. 유일성은 8절에서 두 직교사영을 일치시킨 뒤 \(X=XAX=(YA)X=Y(AY)=Y\)로 증명했고, 직교분해는 잔차의 제곱합을 최소로 합니다.
SVD는 서로 다른 입력·출력 공간의 방향을 특이값으로 연결합니다. 다음 장에서는 그 방향 중 일부만 남길 때 어떤 선택이 오차를 가장 작게 만드는지 증명합니다. H5로 이어 읽기.