콜레스키 분해를 통한 최소제곱법
📂행렬대수콜레스키 분해를 통한 최소제곱법
알고리즘
A∈Cm×n 과 벡터 b∈Cm 에 대해 rankA=n 이고 Ax=b 의 최소제곱해를 x∗ 이라고 하자.
Step 1.
주어진 방정식의 양변에 A∗ 을 곱해 표준방정식 A∗Ax=A∗b 을 세운다.
표준방정식의 해는 원래 방정식의 최소제곱해가 되므로, 표준방정식의 해 x 를 구하면 된다.
Step 2.
y:=A∗b 을 계산해 A∗Ax=y 을 얻는다.
Step 3. 콜레스키 분해
A∗A=LL∗ 을 만족하는 하삼각행렬 L 을 구해 LL∗x=y 을 얻는다.
Step 4. 전진대입법
LL∗x=y 에서 L∗x:=w 이라고 하면 Lw=y
L 은 하삼각행렬이므로 전진대입법을 통해 w 에 대한 방정식의 해를 구한다
Step 5. 후진대입법
w 을 구했고 L∗ 는 상삼각행렬이므로 후진대입법을 통해 x 에 대한 방정식 L∗x=w 의 해를 구한다.
설명
콜레스키 분해는 본래 분해할 행렬이 양의 정부호 행렬이어야 한다는 강력한 조건이 있었다. 이 방법에서 핵심은 표준방정식을 세우는 트릭을 통해 그 까다로운 조건을 강제로 만족시켜버리는 것에 있다. 물론 그 트릭에는 A∗A 가 양의 정부호라는 보장이 있어야하고, 그 증명은 그리 어렵지 않게 할 수 있다.
정리
행렬 A∈Cm×n(m≥n) 에 대해 A∗A>0⟺rankA=n
증명
임의의 벡터 v=0 에 대해
v∗A∗Av=(Av)∗Av=∣Av∣2≥0
이므로 A∗A≥0 이다. A∗A 의 역행렬이 존재하지 않는다고 가정하면 A∗Av=0 를 만족하는 v=0 이 존재한다. 위 식에서 양변의 왼쪽에 v∗ 을 곱하면 ∣Av∣2=0 이고 놈의 정의에서 Av=0 이다. 이는 A 의 열벡터들이 일차종속이라는 뜻이므로 rankA<n 이 된다.
역으로 rankA<n 이라고 가정하면 Av=0 을 만족하는 v=0 가 존재한다.
위 식에서 양변의 왼쪽에 A∗ 을 곱하면 A∗Av=0 이고, A∗A 은 역행렬이 존재하지 않는다. A∗A≥0 이고
A∗A=0⟺rankA=n
이므로,
A∗A>0⟺rankA=n
■