Loading [MathJax]/jax/output/CommonHTML/jax.js
gram schmidt process

gram schmidt process

2018, Sep 27    
  • 이번 글에서는 그램 슈미트 과정(gram schmidt process)에 대하여 알아보도록 하겠습니다.
  • 그램 슈미트 과정은 orthonormal basis vector set을 구하는 과정입니다.
  • 즉, 주어진 벡터들을 이용해서 서로 수직인 벡터들을 만드는 방법이라고 생각 할 수 있고 주어진 벡터들에 대한 직교기저(orthogonal basis) 또는 정규직교기저(orthonormal basis)를 구하는 과정이라고 생각하면 됩니다.
    • 먼저 그램 슈미트 과정을 시작하기에 앞서 linearly independent한 벡터들이 있다고 가정해 보겠습니다. 예를 들어 v1,v2,v3 입니다.
  • 자, 그러면 그램 슈미트 직교화 가정에 대하여 알아보도록 하겠습니다.


Drawing


  • 먼저 벡터 v1에서 부터 시작해 보겠습니다. v1에 정규화를 해주면 e1=v1|v1|를 구할 수 있습니다.
  • 그리고 뒤에서 계속 구할 ui에서 v1=u1 이라고 가정하겠습니다.
  • 먼저 v2 에서 v1 으로 내린 projection을 이용하면 v2를 다른 식으로 표현할 수 있습니다.
  • 즉, v2=(v2e1)e1+u2 가 됩니다. 여기서 u2projection입니다.
  • 다시 이 값을 정리하면 u2=v2(v2e1)e1가 됩니다.
  • 그리고 u2에 정규화를 해주게 되면 e2=u2|u2|로 정의 할 수 있습니다.
  • 지금 까지 한 것을 보면 비교해야 할 대상은 e1,e2 입니다. 이 두 벡터는 서로 orthonormal한 관계를 가집니다.
    • 즉, 두 벡터는 서로 직교하고 벡터의 크기는 1입니다.
  • 위와 같이 어떤 벡터가 있을 때, 그 벡터와 수직인 벡터를 만드는 과정을 그람 슈미트 과정이라고 합니다.
  • 이 과정은 벡터가 추가되어도 추가된 벡터와 이전 벡터들 모두에 직교하는 벡터들을 만들 수 있습니다.
Drawing


  • 앞의 예제에서는 v2 벡터와 u1 벡터를 이용하여 서로 직교인 벡터인 u1,u2를 구하였습니다.
  • 이번에는 v3라는 벡터를 하나 더 추가하여 모두 직교 관계를 가지는 벡터 3개를 만들려고 합니다.
  • 앞에서 구한 u1,u2 벡터를 이용해 보겠습니다. 현재 u1,u2는 직교인 상태 입니다.
  • 이 때, u1,u2를 이용하여 빨간색 벡터를 만들면 빨간색 벡터와 u3라는 파란색 벡터를 이용하여 v3 벡터를 구할 수 있습니다.
    • 즉, u3=v3proju1(v3)proju2(v3) 가 됩니다.
  • 이 때 그한 벡터 u3를 정규화 해주면 e3=u3|u3|를 구할 수 있습니다.


  • 위 관계를 확장해 보면 un=vnproju1(vn)proju2(vn)projun1(vn)=vnn1i=1projui(vn)이 됩니다.


  • 여기서 주목할 점은, 직교한 벡터도 아니고 유닛 벡터도 아닌 벡터들을 이용하여 정규 직교 벡터를 구하였다는 것입니다. 상당히 의미 있는 일입니다.
    • N개의 선형 독립인 벡터를 이용하여 N개의 정규직교벡터를 구한 것입니다.
  • 이 정규직교벡터는 특히 transformation을 할 때 사용되는데요, 그 응용에 대해서는 이후에 살펴보겠습니다.