[Linear Regression] QR분해


선형대수의 이론인 QR분해에 대해 알아보자


Gram-Schmidt 과정

이는 기본적으로 이렇게 수행한다. “Linearly independent한 벡터들이 주어졌을 때 이들을 적절히 변형해서 otrhogonal basis로 만들어주자”
직교하는 vector set을 얻게 되면 여러가지로 편리한 점이 많지만 특히 중요한 것은 직교하지 않는 기저에 비해 직교하는 기저를 얻게 되는 얻게되면 여러 이점이 생긴다.

image

만약 선형독립인 두벡터(v1 , v2)가 2차원 실수 공간의 기저라고 해보자, 다음과 같이 표현할 수 있다.

image

그런데 이때 만약 두 벡터(w1 , w2)가 2차원 실수 공간 상의 직교하는 기저라고 한다면, 2차원 실수 공간상에 있는 임의의 벡터 v는 다음과 같이 쓸 수 있게 된다. (v1의 내적값 * w1기저벡터) , (v2의 내적값 * w2기저벡터)

이로써 v를 v1과 v2의 선형결합으로 표현하기 위한 계수를 쉽게 얻을 수 있게 되었다.

Gram-Schmidt 과정의 프로세스

image

결국에는 위와 같은 직교벡터를 만다는 것이 목표이다.

벡터공간 V상에서 주어진 일차 독립인 벡터 a1, . . .ak를 이용하여 다음과 같이 정규 직교기저를 구할 수 있다.

image

즉 u1벡터에 내적한 u2’벡터와 u2벡터의 차이는 그 정보의 손실을 담고 있는데 당여한게도 그 차이 베터 u2’-u2는 u1에 수직으로 직교하게 된다. 이러한 과정을 모든 기저벡터에 적용한다면 정규 직교 기저를 구할 수 있고 이를 각각의 벡터들의 크기(norm)으로 나누어 주면 정규직교화를 할 수 있다. 이것이 정규 직교 기저 {q1. q2 … qk}를 얻을 수 있다.

image

그림으로 표현하면 다음과 같다. q2를 구하는 것이 그람-슈미트 과정이다.

QR 분해

이제 QR분해는 그람-슈미트 과정을 이용해 찾아낸 정규직교기저 벡터를 이용해 행렬을 분해하는 과정이다.

그람-슈미트 과정을 통해 얻어낸 정규직교 기저 q1….qn을 모아둔 행렬을 Q라고 한다면 다음이 성립한다.

image

image

여기서 a1 dot q2를 생각해보면 q2는 a1 혹은 q1의 성분이 모두 제거되었기 때문에 값이 0이다.

즉 a_i dot q_j에 대해 i < j인 경우 a_i dot q_j 는 0이다.

왜냐하면 j번째 정규직교기저 q_j에서는 i<j의 성분들을 모두 다 빼버렸기 떄문이다. 따라서 아래의 식이 성립한다.

image

예제문제

다음 행렬을 QR분해하자

image

행렬 A의 각 열 벡터를 a1 ,a2, a3이라고 하면 다음과 같다.

image

QR분해르 ㄹ하기 위해 세 벡터들에 대해 그람-슈미트를 적용하자. 정규화되지는 않고 직교화면 시킨 벡터들은 u1,u2등과 같이 쓰고, 정규직교화 된 벡터들은 e1, e2등과 같이 쓰도록하자.

우선 a1에 대해서 그람-슈미트 과정에 의해 첫번째 벡터는 그 벡터를 그대로 사용한다.

image

이제 u2르 ㄹ계산해보자 u2는 a2벡터에서 u1방향으로의 성분을 제외해준 벡터이다. 다음과 같이 정리된다.

image

u3까지 정라하면 다음과 같다.

image

이를 정규화 하면

image

얻은 e1,e2,e3를 A= qr에서의 q1,q2,q3에 대응시키면 아래와 같이 QR분해가능하다.

image