Deeper Learning

Gram-Schmidt Process & QR Decomposition 본문

Statistics & Math

Gram-Schmidt Process & QR Decomposition

Dlaiml 2022. 11. 1. 09:36
Gilbert Strang의 MIT 18.06SC Linear Algebra 완강 후 딥러닝 논문 스터디, 개인 학습 중 다시 마주한 선형 대수 개념 정리 목적

Gram-schmidt Process

linear independent column vectors를 직교화 해주는 방법론, orthogonal basis를 찾는 과정

 

Idea

 

선형독립인 두 벡터 v1,v2 를 직교하는 두 벡터 u1,u2 로 만들기 위해서는 우선 하나의 벡터 v1u1 으로 두고 v2u1 이 span하는 line에 정사영내린 proju1v2 를 구하고 이를 v2 에서 빼주면 u1 과 직교하는 벡터 u2 를 얻을 수 있다.

 

Process

linear independent column vectors set {v1,v2} 로 구성된 2x2 행렬 V,viR2 를 예시로 들겠다.

V={v1=[31],v2=[22]}

먼저 v1=u1 으로 설정하면

u1=[31]

다음으로 proju1v2 를 구하기 위해 쓰이는 벡터간 projection 식 유도 ( α1 는 scalar, ˆbb 와 같은 방향성을 가지는 unit vector)

ab 에 정사영 내린 벡터 a1 은 scale(length)을 나타내는 scalar 값 α1 과 direction을 나타내는 unit vector ˆb 로 표현이 가능하다

 

[1] a1=α1ˆb

 

cosine, dot product을 사용하여 a1 의 scale α1 를 다음과 같이 표현가능하다

 

[2] α1=

 

[1] 식을 다시 써보면

 

a_1 = \alpha_1 \hat b = (a \cdot \hat b)\hat b

 

b 의 unit vector \hat b\frac{b}{\left \| b \right \|} 와 같기 때문에 이를 대입하면

 

(a \cdot \hat b)\hat b = \frac{a \cdot b} {\left \| b \right \|} \frac{b}{\left \| b \right \|} = \frac{a \cdot b}{\left \| b \right \|^2}b = \frac{a \cdot b}{b \cdot b}b

 

구한 vector projection 식을 활용해서 계산하면

 

proj_{u_1}v_2 = \frac{8}{10}v_2 = \frac{8}{10}\begin{bmatrix} 3\\ 1\end{bmatrix}

 

u_1 이 span하는 space에 projection한 proj_{u_1}v_2v_2 에서 빼면 가장 상단의 Figure에서 본 것 처럼 u_1 에 직교하는 벡터 u_2 를 얻을 수 있다

 

u_2 = v_2 - proj_{u_1}v_2 = \begin{bmatrix} 2\\ 2 \end{bmatrix}-\frac{8}{10}\begin{bmatrix} 3\\ 1\end{bmatrix}\begin{bmatrix} -2/5\\ 6/5\end{bmatrix}

 

구한 u_1,u_2 를 크기가 1인 벡터로 normalize하면 orthonormal set \{e_1,e_2\} 를 구할 수 있다

 

e_1 = \frac{1}{\sqrt{10}}\begin{bmatrix} 3\\ 1\end{bmatrix}, e_2 = \frac{1}{\sqrt {10}} \begin{bmatrix} -1\\ 3\end{bmatrix}

 

column vector가 3개 이상일 때의 식은 다음과 같다.

u_3u_1, u_2 에 모두 직교하여야 하므로 v_3u_1, u_2 에 projection 한 값을 빼주며 직교 벡터를 구한다.

 

추가논의

  • Gram-schmidt process로 얻은 정규화된 직교 벡터 set을 사용하면 다시 기존 벡터 set V 를 재구성할 수 있다 (임의의 벡터가 아닌 v_i 를 첫 orthogonal basis로 설정하고 프로세스를 시작했기 때문에 가능)
  • linear dependent 벡터 set에서 위 과정을 진행한다면 최소 하나의 vector에서 v_i = proj_{u_j}v_i 인 상황이 발생하기 때문에 u_i = v_i - v_i 가 영벡터가 되는 문제가 존재
  • 선형대수에서 orthonormal basis는 unique coefficients 측면에서 매우 중요한 의미를 가진다 (후에 많은 개념에서 활용)

QR Decomposition

 

Idea

위에서 언급한 것처럼 orthonormal basis를 활용하여 원본 벡터 set을 만들 수 있다 → 원복 벡터 set을 orthonormal columns을 가진 행렬과 upper triangle 행렬로 분해가 가능하다

 

Process

추가논의

  • QR decomposition가 중요한 이유는 Gram-schmidt와 동일하게 직교성에 있다
  • orthonormal matrix의 여러가지 성질은 선형대수에서 자주 활용됨
    • QQ^T = I
    • least square에서 용이한 계산
    • etc

 

Reference