24차시 · 특잇값분해

이 행렬은 두 방향을 서로 다르게 늘린다

\[A=\begin{bmatrix}2&2\\1&-1\end{bmatrix}\]

더 크게 늘어나는 방향 하나만 남기면 무엇이 보존될까?

\(2\sqrt2\)첫 특이방향
\(\sqrt2\)둘째 특이방향

오른쪽 특이벡터

입력 방향은 \(A^\mathsf TA\)의 고유벡터이다

\[A^\mathsf TA=\begin{bmatrix}2&1\\2&-1\end{bmatrix}\begin{bmatrix}2&2\\1&-1\end{bmatrix}=\begin{bmatrix}5&3\\3&5\end{bmatrix}\]

고윳값

\(8,\;2\)

단위 고유벡터

\(v_1=(1,1)/\sqrt2\)
\(v_2=(1,-1)/\sqrt2\)

특잇값은 고윳값의 양의 제곱근: \(\sigma_1=2\sqrt2\), \(\sigma_2=\sqrt2\).

입력축 · 배율 · 출력축

두 고유벡터를 \(A\)에 넣어 출력 방향을 구한다

1. 첫 방향

\[Av_1=\begin{bmatrix}2\sqrt2\\0\end{bmatrix}=(2\sqrt2)u_1\]

\(u_1=(1,0)\)

2. 둘째 방향

\[Av_2=\begin{bmatrix}0\\\sqrt2\end{bmatrix}=(\sqrt2)u_2\]

\(u_2=(0,1)\)

3. 분해

\[A=U\Sigma V^\mathsf T\]

\(U=I\), \(\Sigma=\operatorname{diag}(2\sqrt2,\sqrt2)\)

\[V=\frac1{\sqrt2}\begin{bmatrix}1&1\\1&-1\end{bmatrix},\qquad A=\sum_{i=1}^{2}\sigma_i u_i v_i^\mathsf T\]

단위원의 상

입력점을 움직여 두 특이방향의 배율을 확인한다

20°

입력 \(x\): 단위원과 \(v_1,v_2\)

출력 \(Ax\): 타원과 \(u_1,u_2\)

\[x=(0.71,0.71)\]
\[Ax=(2.83,0.00)\]

\(x=v_1\). 배율은 \(\sigma_1=2\sqrt2\).

특잇값 절단

작은 특이성분을 제거하면 rank와 오차가 함께 바뀐다

1
1보존 성분
√2Frobenius 오차
\[A_1=\sigma_1u_1v_1^\mathsf T=\begin{bmatrix}2&2\\0&0\end{bmatrix}\]
\[A-A_1=\begin{bmatrix}0&0\\1&-1\end{bmatrix},\qquad \lVert A-A_1\rVert_F=\sqrt2\]

최적 저랭크 근사

앞의 \(k\)개 특이성분이 최소 오차를 만든다

가정: \(\sigma_1\ge\cdots\ge\sigma_p\ge0\), \(A_k=\sum_{i=1}^k\sigma_i u_iv_i^\mathsf T\)

\[\min_{\operatorname{rank}(B)\le k}\lVert A-B\rVert_F=\lVert A-A_k\rVert_F=\sqrt{\sum_{i>k}\sigma_i^2}\]
\[\min_{\operatorname{rank}(B)\le k}\lVert A-B\rVert_2=\sigma_{k+1}\]

데이터의 저차원 표현

영상과 시공간 데이터는 같은 절단 원리를 사용한다

영상

픽셀 행렬

작은 특잇값을 제거해 저장량 감소.

공통 계산

절단 SVD

\[A_k=\sum_{i=1}^k\sigma_i u_iv_i^\mathsf T\]

오차는 버린 특잇값으로 정량화.

POD

시공간 스냅숏

\[X_k=U_k\Sigma_kV_k^\mathsf T\]

공간 모드 \(U_k\)와 시간 계수 \(\Sigma_kV_k^\mathsf T\)의 분리.

AI 모델의 매개변수 효율화

LoRA는 원래 가중치를 고정하고 저랭크 갱신만 학습한다

\[W'=W+\Delta W,\qquad \Delta W=BA\]
\[B\in\mathbb R^{d_{\rm out}\times r},\quad A\in\mathbb R^{r\times d_{\rm in}},\quad \operatorname{rank}(\Delta W)\le r\]
\(W\) 고정 \(A,B\)만 학습 LoRA ≠ \(W\)의 SVD
전체 갱신

\(d_{out}d_{in}\)

모든 성분 학습.

LoRA

\(r(d_{out}+d_{in})\)

두 작은 행렬 학습.

4×4, r=1

16 → 8

학습 매개변수 절반.

SVD는 주어진 행렬을 분석한다. LoRA는 학습 가능한 갱신을 처음부터 저랭크 곱으로 제한한다.