Loading [MathJax]/jax/output/HTML-CSS/jax.js
본문 바로가기

수학/수학 논문 정리

A Fresh Approach to the Singular Value Decomposition 마지막

원문: 1998, Colm Mucahy and John Rossi, A Fresh Approach to the Singular Value Decomposition

선행개념: 행렬, 대각행렬, 전치행렬, 역행렬, 직교행렬, 고윳값, 고유벡터, 대각화, 직교대각화.

목차

  1. 소개
  2. 복소수의 극형식과 행렬의 극분해(Polar Decomposition)
  3. 특이값 분해(Singular Value Decomposition)
  4. 의사 역행렬(Pseudo-inverse)
  5. Solving All Systems

항이 실수인 행렬만 다루며, 여기서는 4~5의 주제를 다룬다.

연결된 포스팅 링크: 1부(주제1,2)2부(주제3)3부(주제4,5)


이전 포스팅에서 다루었던 SVD를 이용하면 모든 행렬에 대해서 역행렬을 구할 수 있게 된다. 비가역이거나 정사각행렬이 아니어도 된다.

4. Pseudo inverses

원리는 간단하다. 모든 m×n 행렬 A에 대해 은 A=UDVT꼴로 나타낼 수 있고 행렬 U,V는 직교행렬이므로 역행렬이 존재하고 각각 U1=UT,VT1=V이 된다.(직교행렬의 정의)
행렬 Dm×n 인 대각행렬이므로 D+n×m꼴로 0이 아닌 대각선의 항을 역수로 놓으면 DD1=Im,D1D=In (Ikk×k인 단위행렬)이 된다. 이상을 정리하면 다음과 같다.

Theorem. 모든 행렬은 가역이다.(역행렬이 존재한다.)
m×n 행렬 A에 대해 의사 역행렬(일반화된 역행렬, Pseudo Inverse)는 다음과 같이 정의된다.
A+=VD+UT
D+DT의 0이 아닌 항을 역수한 행렬이다.

의사역행렬(Pseudo-inverses)은 아래와 같은 성질을 만족한다.

  1. AA+=Im,A+A=In
  2. AA+,A+A 은 서로 대칭이다.
  3. AA+A=A
  4. A+AA+=A+
  5. (A+)+=A
  6. A+은 유일하게 결정된다.

예1. 가역행렬

A=[1221]
A=[12121212][3001][12121212]T
A1=[12121212][13001][12121212]T=[13232313]

예2. 역행렬이 존재하지 않는 행렬

A=[1224]

A=[15252515][5000][15252515]T

A+=[15252515][15000][15252515]T=[125225225425]

예3. 정사각행렬이 아닌 경우

A=[11]

A=[11]=[12121212][20][1]T

A+=[11]+=[1][120][12121212]T


5. Solving All Systems

Theorem. 모든 선형구조의 문제는 풀 수 있다.

Proof. 모든 선형구조는 선형방정식 Ax=b 의 꼴로 나타낼 수 있다. 행렬 Am×n 행렬이고 x 는 n개의 미지수로 이루어진 열벡터이다. 위의 정리에 의해 의사역행렬 A+이 존재해 w=A+b이 해가 됨을 알 수 있다.

엄밀히 말하면 정확하게 해가 존재하는 것은 아니다. 이런 형태의 해를 관찰하면 최소제곱법으로 구한 결과와 같음을 알 수 있다. 또한 SVD를 이용하면 충분히 작은 고윳값들을 버려 데이터의 차원을 축소할 수 있다. 공분산을 이용한 PCA방법과 정확히 일치하는데 SVD가 훨씬 연산에서 빠르다. 가능하다면 이 부분에 대해 추후 다른 포스팅에서 다뤄보도록 하겠다.