어떤 임의의 linearly independent 한 vector set이 주어졌을 때, orthonormal한 basis vector로 변환을 시켜주는 것이 중요하다. 이러한 과정을 수행하는 것이 Gram-schmidt Orthogonalization 이다.
위의 말을 이해하기 위해 general subspaces에 Projection 시키는 과정을 살펴보자.

n 차원의 벡터 x가 있고, m 차원의 subspace U로 Orthogonal Projection을 시켜보도록 하자. 예를 들어 U가 2 차원이라고 해보자. 2 차원이면 basis veocor b 가 2개 존재할 것이다. 그리고 원래 vector space 에 x라는 vector가 있을 때, 이 vector를 Orthogonal Projection한다는 것은 U에 Projection 된 vector πU(x)가 있을 때, x−πU(x)와 Orthogonal 해야한다는 것을 의미한다. 그리고 subspace U에 존재하는 πU(x)는 b 기저벡터들의 선형결합으로 표현이 가능해야한다.
이 부분을 generalize 해보자. U가 m차원이니 basis vector를 (b1,......,bm) 라고 하면, U로 projection된 vector는 이 b 들의 선형결합으로 표현이 되기 때문에 πU(x)=∑mi=1λibi 로 표현할 수 있다.
1. coordinate λi들을 찾아보자.

πU(x) 를 Bλ 로 나타낼 수 있다. 원래의 vector 와 projection된 vector와의 차이인 x−πU(x)는 U의 모든 basis vector들과 orthogonal 해야한다. 그렇기 때문에 B(x−Bλ)=0이 성립하고, BT(x−Bλ)=0 와 같고, 풀어서 전개하면 식(3.56)과 같이 BTBλ=BTx와 같게 된다.
식(3.56) BTBλ=BTx 과 같은 equation을 normal equation이라고 부른다(linear regression에서 볼 수 있는 equation).
이제 λ만 남겨주기 위해서 양변에 ((BTB))−1를 곱해준다. (inverse가 존재하는지가 가정되어 있어야한다. BTB는 full rank이다.) 그러면 아래의 식 (3.57)과 같게 된다.

λ를 구했으니 πU(x)=Bλ 에 대입을 하게 되면 식(3.58)을 얻게 된다.

위의 식에서 x 앞에 곱해진 matrix는 projection matrix에 해당하므로 projection matrix는 식(3.59)와 같게 된다.

projection vector πU(x)는 여전히 n 차원의 vector이다. 하지만 이제 더이상 n개의 coordinate을 전부 사용해서 data를 표현할 필요없이 subspace상에서의 m개의 coordinate로 이 vector를 표현할 수 있게 된다.
어떤 vector space상에 존재하는 vector가 있을 때, 얘를 subspace로 orthogonal projection하는 과정을 살펴보았다. 최종적으로 식 (3.59)의 B(BTB)−1BTx를 보면 알겠지만, 여기서 계산하기 제일 귀찮은 부분은 inverse를 구하는 term 부분이다. U를 span하는 basis들은 unique하지 않는데, 여기서 이 basis들이 특별한 basis를 취할 수 있으면, 이 부분을 간단하게 구할 수 있다. 그게 바로 subspace U를 span 하는 orthonormal basis를 찾으면 된다.
왜냐하면 orthonormal basis를 찾고, B라는 basis가 orthonormal basis로 이루어져 있다면, BTB=I identity matrix가 되고, 식(3.58)의 B(BTB)−1BTx 는 BBTx 가 된다.
이제 글 제일 위에 했던 말을 다시 한번 상기시켜보자.
어떤 임의의 linearly independent 한 vector set이 주어졌을 때, orthonormal한 basis vector로 변환을 시켜주는 것이 중요하다. 이러한 과정을 수행하는 것이 Gram-schmidt Orthogonalization 이다.
여기서 목표는 vector space V∈Rn에서 n개의 linearly independent한 basis가 주어져 있을 때 (b1,...,bn), 이러한 (b1,...,bn)를 orthogonal 또는 orthonormal한 basis vector(u1,...,un)로 transformation시켜주는 것이다.
이러한 orthonormal한 basis들은 항상 존재한다. 왜냐하면 b들과 u들이 span하는 공간은 같은 공간이기 때문이다.
Gram-schmidt Orthogonalization orthogonalization 방법은 iterative 하게 basis들을 orthogonal하게 하나하나 만들어가는 구성으로 이루어져 있다.
일반적인 과정은 아래의 식 (3.67), (3.68)을 보면 된다.

먼저 u1에 b1을 하나 취한다.
그리고 u2를 어떻게 계산을 하냐하면, 앞에서 u1이라고 하는 basis vector가 span하는 subspace로 b2라고 하는 basis를 orthogonal projection시키는 것이다.
그렇게 되면 원래의 b2와 orthogonal projection 된 vector πspan[u1,...,uk−1](bk)와의 차이가 u1과 orthogonal하게 된다.
u3는 u1과 u2가 span하는 subspace 상으로 b3를 projection시키고, 원래의 b3에서 projection된 vector를 마찬가지로 빼주면, 최종적으로 u3는 u1, u2와 orthogonal 해지게 된다.
이러한 과정을 n개의 basis를 찾을 때까지 iterative하게 만들어 나가는 방법이다.
예제를 살펴보자.

(a) 처럼 non-orthogonal basis vector b 가 2개 있다고 가정하자. 그리고 (b)를 보자. 우선 u1을 b1으로 두도록하자. 그런 다음 u1이 span하는 subspace에 b2의 projection vector는 πspan[u1](b2) 이 된다. 이는 원래의 u1과 orthogonal 하게 된다. 최종적으로 u2 는b2−πspan[u1](b2)가 된다.
이제 u1과 u2는 orthogonal 한 basis가 되었다.
이번에는 u1과 u2가 span 하는 plane 상으로 b3를 projection 시키고, 그 subspace에 orthogonal 한 u3를 구해낼 수 있게 된다. 이 과정을 계속 반복하게 되면 원래 orthogonal하지 않은 vector들을 orthogonal하게 만들 수 있고, orthonormal하게 만들기 위해 각각의 norm으로 나누어 만든다.
지금까지는 vector subspace에 projection했을 때를 보았고, 이번에는 affine subspace에 임의의 vector를 orthogonal projection시키는 것을 알아보자.
우선 affine subspace 를 L=x0+U 라 하자. affine subspace는 vector subspace U가 주어질 때, 여기에 x0라는 offset에 해당되는 vector가 더해진 subspace를 말한다. 그리고 U의 basis vector를 b1,b2라고 하자.

위의 그림처럼 b로 span되는 U라는 space가 있고, 여기 모든 vector들에 x0를 다 더하면, L이라는 affine space가 될 것이다.
이 때, x라는 임의의 vector가 있다고 해보자. x라는 vector를 affine space L에 orthogonal projection시키고 싶은 것이다. 이를 하는 방법은 offset x0를 원점으로 위치시킨 다음에, orthogonal projection을 하고, 그 다음에 원상복구 시키면 된다.
그림 (b)처럼 x에서 x0를 빼주고, L에서 x0를 빼주면, 그게 바로 vector subspace가 된다. 그리고 원점이 맞춰지게 된다. 그리고 이제 U를 L−x0라고 볼 수 있다. 여기서 앞서 했던 orthogonal projection을 수행하는 것이다. x−x0가 πU(x−x0)로 projection이 될 것이고, 그 다음에 projection 된 vector에다가 다시 x0를 더해주면 된다.
원래 전체 vector에서 x0를 빼줘서 원점을 맞추고, 거기서 projection 시킨 다음에, 다시 x0를 더해서 원상복구 시키는 것이다.
그렇게 되면 L이라고 하는 affine subspace가 원래의 위치로 돌아가게 되고, 원래의 origin 원점은 (c)의 보라색 벡터가 가리키는 곳으로 가게 된다. 그 지점에서 앞에서 구했던 πU(x−x0) vector를 볼 수 있고, 여기다가 x0만큼 더해주면 된다. 최종적으로 origin 원점에서 πL(x) point까지 향하는 vector를 구할 수 있게 된다. 이 벡터가 πU(x−x0)+x0이 된다. 이것이 affine space L에 orthogonal projection 된 projection vector가 된다.
projection 이라는 것이 어떠한 성질을 가진 linear mapping인지 이해를 해야한다. 그 중에서도 orthogonal projection 하는 과정에 대해서 천천히 살펴보면서 익혀보자.
ref)
MML book
'수학' 카테고리의 다른 글
Constrained optimization (1) | 2020.06.09 |
---|---|
Gradient Descent Method (1) | 2020.06.09 |
Gaussian distribution (0) | 2020.06.03 |
Singular Decomposition(2) (0) | 2020.05.30 |
Singulardecomposition (0) | 2020.05.30 |
댓글