Advertisement

선형대수 12강 Gram-Schmidt Orthogonalization

Software Developer at Samsung Electronics
Sep. 8, 2018
Advertisement

More Related Content

Slideshows for you(20)

Advertisement
Advertisement

선형대수 12강 Gram-Schmidt Orthogonalization

  1. Linear Algebra 12. Gram-Schmidt Orthogonalization 한양대 이상화 교수님 <선형대수> http://www.kocw.net/home/search/kemView.do?kemId=977757
  2. • 회귀 분석 문제 • 일직선에 있지 않은 (같은 벡터 공간에 있지 않은) 점들을 가장 근사한(error가 작은) 직선에 투영하기 Least Square Problem 𝑦 = 𝐷𝑥 + 𝐶  𝐶와 𝐷가 미지수 𝒃 𝟏 𝒃 𝟐 𝒃 𝟑 𝒃 𝟒 𝒃 𝟓 𝒃 𝟔 𝒃 𝟕 2. 행렬로 접근하기 1 𝑡1 1 𝑡2 ⋮ ⋮ 1 𝑡 𝑛 𝐶 𝐷 = 𝑏1 𝑏2 ⋮ 𝑏 𝑛  𝐴𝑥 = 𝑏 형태 𝑨 𝑻 𝑨 𝒙 = 𝑨 𝑻 𝒃  𝑚 𝑡𝑖 𝑡𝑖 𝑡𝑖 2 𝐶 𝐷 = 𝑏𝑖 𝑏𝑖 𝑡𝑖 1. 미분으로 접근하기 𝐸2 = 𝐴𝑥 − 𝑏 2 = 𝑖=1 𝑛 𝑏𝑖 − 𝐶 + 𝐷𝑡𝑖 2  2차식의 최소값은 기울기=0 일 때 존재
  3. Gram-Schmidt Orthogonalization • Orthogonal한 벡터들로 벡터 공간을 구성하면 연산이 간편해진다!  Linearly Independent한 벡터들이 주어졌을 때, 이들을 적절히 변형하여 Orthogonal Basis로 만들어보자 : Gram-Schmidt Orthogonalization • 2차원 공간 1. 벡터 𝒂 방향으로 Orthonormal한 𝒒 𝟏을 구한다. 𝑞1 = 𝑎 𝑎 2. 𝒒 𝟏에 벡터 𝒃를 Project 한다. 3. 𝒒 𝟏(벡터 𝒂)의 수직 방향(𝒒 𝟐)으로 벡터 𝒃를 Project 한다. 𝐵 = 𝑏 − 𝑎 𝑇 𝑏 𝑎 𝑇 𝑎 𝑎 = 𝑏 − 𝑞1 𝑇 𝑏 𝑞1 = 𝑞2 𝑇 𝑏 𝑞2 4. 벡터 b는 서로 수직인 두 벡터의 합으로 나타낼 수 있다. 𝑏 = 𝑞1 𝑇 𝑏 𝑞1 + 𝑞2 𝑇 𝑏 𝑞2 𝑎 𝑏 𝑞1 𝑇 𝑏 𝑞1 𝑞1에 대한 𝑏의 Projection 𝑏 − 𝑞1 𝑇 𝑏 𝑞1 𝐵 𝑞2
  4. Gram-Schmidt Orthogonalization • 3차원 공간  N차원 공간 1. 2차원 공간에서의 𝒒 𝟏, 𝒒 𝟐를 활용하여 3차원 축에 Project 한다. 𝐶 = 𝑐 − 𝑞1 𝑇 𝑐 𝑞1 + 𝑞2 𝑇 𝑐 𝑞2 = 𝑞3 𝑇 𝑐 𝑞3 𝑐 = 𝑞1 𝑇 𝑐 𝑞1 + 𝑞2 𝑇 𝑐 𝑞2 + 𝑞3 𝑇 𝑐 𝑞3 = 𝑖=1 3 𝑞𝑖 𝑇 𝑐 𝑞𝑖 2. 위 법칙을 N차원으로 확장하면, 𝐴𝑗 = 𝑎𝑗 − 𝑖=1 𝑗−1 𝑞𝑖 𝑇 𝑎𝑗 𝑞𝑖 = 𝑞 𝑗 𝑇 𝑎𝑗 𝑞 𝑗 𝑎𝑗 = 𝑖=1 𝑗 𝑞𝑖 𝑇 𝑎𝑗 𝑞𝑖 , 𝑞 𝑗 = 𝐴𝑗 𝐴𝑗 𝑐 𝑞1 𝑞2 𝑞3 𝐶 𝑞1 𝑇 𝑐 𝑞1 + 𝑞2 𝑇 𝑐 𝑞2
  5. Gram-Schmidt Orthogonalization • 예제 𝒂 = 𝟏 𝟎 𝟏 , 𝒃 = 𝟏 𝟎 𝟎 , 𝒄 = 𝟐 𝟏 𝟎 1. 𝒒 𝟏 = 𝑎 𝑎 = 1 2 1 0 1 2. 𝐵 = 𝑏 − 𝑞1 𝑇 𝑏 𝑞1 = 1 0 0 − 1 2 ∗ 1 2 1 0 1 = 1 2 0 − 1 2 = 𝑞2 𝑇 𝑏 𝑞2 ( 𝑞2는 normalize된 값)  𝒒 𝟐 = 𝐵 𝐵 = 2 2 1 0 −1 3. 𝐶 = 𝑐 − 𝑞1 𝑇 𝑐 𝑞1 − 𝑞2 𝑇 𝑐 𝑞2 = 2 1 0 − 2 1 2 0 1 2 − 2 1 2 0 −1 2 = 2 1 0 − 1 0 1 − 1 0 −1 = 0 1 0 = 𝒒 𝟑 (길이가 이미 1이기 때문에)
  6. Orthogonal Basis • Orthogonal Basis를 사용하면 정말 연산이 편해질까? 어떤 면에서 편하다고 하는 것일까? • 𝑞1, 𝑞2, … , 𝑞 𝑛이 서로 Orthonormal 일 때 (Orthogonal + 벡터의 길이가 1) 𝑞𝑖 𝑇 𝑞 𝑗 = 0 (𝑖 ≠ 𝑗) 1 (𝑖 = 𝑗) 이고, 𝑄 = 𝑞1 𝑞2 … 𝑞 𝑛 으로 표현할 수 있다. • 𝑄 𝑇 𝑄 = 𝑞1 𝑞2 … 𝑞 𝑛 𝑞1 𝑞2 … 𝑞 𝑛 = 𝐼  𝑸 𝑻 = 𝑸−𝟏 (Left-inverse) • Q행렬의 예시 • Rotation Matrix cos 𝜃 −sin 𝜃 sin 𝜃 cos 𝜃 • Permutation Matrix 0 1 0 1 0 0 0 0 1  𝑃 𝑇 = 𝑃−1
  7. Orthogonal Basis • 벡터에 Q를 적용해도 원래의 길이와 각도는 변하지 않는다. • 길이 : 𝑄𝑥 2 = 𝑥 𝑇 𝑄 𝑇 𝑄𝑥 = 𝑥 𝑇 𝐼𝑥 = 𝑥 𝑇 𝑥 • 각도 : 𝑄𝑥 𝑇 𝑄𝑦 = 𝑥 𝑇 𝑄 𝑇 𝑄𝑦 = 𝑥 𝑇 𝐼𝑦 = 𝑥 𝑇 𝑦 • For any vector b, • 𝑏 = 𝑥1 𝑞1 + 𝑥2 𝑞2 + … + 𝑥 𝑛 𝑞 𝑛  𝑄𝑥 = 𝑏 • 𝑞𝑖 𝑇 𝑏 = 𝑞𝑖 𝑇 𝑥1 𝑞1 + 𝑥2 𝑞2 + … + 𝑥 𝑛 𝑞 𝑛 = 𝑥𝑖 ( 𝑞𝑖 𝑇 𝑞 𝑗 = 0 (𝑖 ≠ 𝑗) 1 (𝑖 = 𝑗) 이기 때문에 )  𝑏 = (𝑞1 𝑇 𝑏)𝑞1 + (𝑞2 𝑇 𝑏)𝑞2 + … + (𝑞 𝑛 𝑇 𝑏)𝑞 𝑛 = 𝑄𝑥 • 𝒙 = 𝑸−𝟏 𝒃 = 𝑸 𝑻 𝒃 • 𝑨𝒙 = 𝒃에서 행렬 𝑨가 𝑸 형태라면, 𝑸 𝑻 = 𝑸−𝟏 성질을 사용하여 G/E 없이도 𝒙를 쉽게 구할 수 있다.
  8. Orthogonal Basis • 𝑞1, 𝑞2, … , 𝑞 𝑛은 𝐶(𝑄)를 구성하는 Orthogonal Basis 들이기 때문에, 𝑏를 각 𝑞𝑖에 Projection 한다면, 𝒒 𝒊 𝑻 𝒃 𝒒 𝒊 𝑻 𝒒𝒊 𝒒𝒊 = 𝒒𝒊 𝑻 𝒃 𝒒𝒊 = 𝒙𝒊 𝒒𝒊 ( 𝑞𝑖 𝑇 𝑞𝑖 = 1 이기 때문에), 결국 𝑥𝑖는 𝑏를 𝑞𝑖에 Projection 한 길이 값이다. 𝑞1 𝑏 𝑞1 𝑇 𝑏 𝑞1 = 𝑥1 𝑞1 𝑞2 𝑞2 𝑇 𝑏 𝑞2 = 𝑥2 𝑞2 𝑥1 𝑥2
  9. Rectangular Matrix with Orthogonal Basis • 앞선 예제들은 정사각 행렬을 기준으로 했다면, 직사각 행렬에 적용해보자. • M x N 행렬에서 직사각 행렬은 M > N의 경우와, M < N 경우 두 가지가 발생하는데, 3차원 공간에서 서로 직교하는 벡터가 4개 이상 나올 수 없다는 것을 떠올리면, Orthogonal Column을 가지는 직사각 행렬은 항상 M > N 경우이다. • 𝑄𝑥 = 𝑏 𝑄 𝑇 𝑄 𝑥 = 𝑄 𝑇 𝑏, 𝒙 = 𝑸 𝑻 𝑸 −𝟏 𝑸 𝑻 𝒃 = 𝑸 𝑻 𝒃 (𝑄 𝑇 𝑄 = 𝐼 이기 때문에) 𝑝 = 𝑄 𝑥 = 𝑄 𝑄 𝑇 𝑄 −1 𝑄 𝑇 𝑏 = 𝑄𝑄 𝑇 𝑏 (𝑄 𝑇 는 Left-Inverse 일 뿐!) • Orthonormal Basis로 벡터 공간을 구성하면, Projection 𝒙, 𝒑 를 Q 행렬로 쉽게 구할 수 있다.
  10. • Gram-Schmidt 기법을 사용하면 𝐴𝑥 = 𝑏에서 행렬 𝐴를 𝑄로 변환하여 연산을 간편하게 할 수 있다. 𝐴 = 𝑎1 𝑎2 … 𝑎 𝑛 = 𝑞1 𝑇 𝑎1 𝑞1 𝑞1 𝑇 𝑎2 𝑞1 … + 𝑞2 𝑇 𝑎2 𝑞2 … 𝑖=1 𝑛 𝑞𝑖 𝑇 𝑎 𝑛 𝑞𝑖 𝑇 … = 𝑞1 𝑞2 … 𝑞 𝑛 𝑞1 𝑇 𝑎1 𝑞1 𝑇 𝑎2 … 𝑞1 𝑇 𝑎 𝑛 𝑞2 𝑇 𝑎2 … 𝑞2 𝑇 𝑎 𝑛 ⋱ 𝑞 𝑛 𝑇 𝑎 𝑛 QR Factorization Q x R
  11. • 𝐴 = 𝑞1 𝑞2 … 𝑞 𝑛 𝑞1 𝑇 𝑎1 𝑞1 𝑇 𝑎2 … 𝑞1 𝑇 𝑎 𝑛 𝑞2 𝑇 𝑎2 … 𝑞2 𝑇 𝑎 𝑛 ⋱ 𝑞 𝑛 𝑇 𝑎 𝑛 로 변환하면, 𝐴𝑥 = 𝑏 에서 𝒙 = 𝐴 𝑇 𝐴 −1 𝐴 𝑇 𝑏 = 𝑅 𝑇 𝑄 𝑇 𝑄𝑅 −1 𝑅 𝑇 𝑄 𝑇 𝑏 = 𝑹 𝑻 𝑹 −𝟏 𝑹 𝑻 𝑸 𝑻 𝒃 • Upper Triangular Matrix R과 Q, b만으로 𝒙를 구하기 때문에 연산량이 확연히 줄어든다.  행렬에 0이 많으면 연산이 편해지니까! QR Factorization
Advertisement