logo

특이값 분해를 통한 최소제곱법 📂행렬대수

특이값 분해를 통한 최소제곱법

알고리즘

ACm×nA \in \mathbb{C}^{m \times n} 과 벡터 bCm\mathbf{b} \in \mathbb{C}^{m} 에 대해 rankA=n\text{rank} A = n 이고 Ax=bA \mathbf{x} = \mathbf{b} 의 최소제곱해를 x\mathbf{x}_{\ast} 이라고 하자.

Step 1. 특이값 분해

A=U^Σ^VA = \widehat{U} \widehat{\Sigma} V^{\ast} 를 만족하는 직교행렬 U^\widehat{U}대각행렬 Σ^\widehat{\Sigma}유니터리 행렬 VV 를 구한다.


Step 2.

특이값 분해에서 얻은 U^\widehat{U} 를 통해 정사영 P:=U^U^P : = \widehat{U} \widehat{U}^{\ast} 을 구한다.

Ax=PbA \mathbf{x}_{\ast} = P \mathbf{b} 이므로 U^Σ^Vx=U^U^b\widehat{U} \widehat{\Sigma} V^{\ast} \mathbf{x}_{\ast} = \widehat{U} \widehat{U}^{\ast} \mathbf{b} 이고 양변의 왼쪽에 U^\widehat{U}^{\ast} 을 곱해 Σ^Vx=U^b\widehat{\Sigma} V^{\ast} \mathbf{x}_{\ast} = \widehat{U}^{\ast} \mathbf{b} 를 얻는다.


Step 3.

y:=U^b\mathbf{y} := \widehat{U}^{\ast} \mathbf{b} 를 계산해 Σ^Vx=y\widehat{\Sigma} V^{\ast} \mathbf{x}_{\ast} = \mathbf{y} 를 얻는다.


Step 4.

Σ^Vx=y\widehat{\Sigma} V^{\ast} \mathbf{x}_{\ast} = \mathbf{y} 에서 w:=Vx\mathbf{w} : = V^{\ast} \mathbf{x}_{\ast} 라 두고 w\mathbf{w} 에 대한 방정식 Σ^w=y\widehat{\Sigma} \mathbf{w} = \mathbf{y} 의 해를 구한다.


Step 5.

VV유니터리 행렬이므로 x=Vw\mathbf{x}_{\ast} = V \mathbf{w} 를 계산한다.