오늘은 벡터를 부분공간에 project하는 방법에 대해서 알아보도록 하겠습니다. 지난 게시물인 '직교성과 부분공간' 의 마지막 부분에 이어서 진행해보도록 하겠습니다.
https://jaehoonstudy.tistory.com/20
직교성(Orthogonality)과 부분공간(Subspaces)
오늘은 직교하는 벡터들과 부분공간들에 대해서 간단히 다뤄보도록 하겠습니다. 직교하는 성질은 공학에서도 중요한 성질입니다. 직교성(Orthogonality)가 충족된다면, 독립(independence)를 보장해주
jaehoonstudy.tistory.com
일단 벡터의 projection을 시작하기 전에, 벡터를 더하는 것이 어떤 의미인지 알아보겠습니다.
벡터의 덧셈 시각화
벡터를 더한다는 것이 무슨 의미인지 시각적으로 보겠습니다.

파란색 벡터 두 개를 더하면 빨간색 벡터가 됩니다. 이 모양을 기억해보면서, 벡터의 투영이 뭔지 보도록 하겠습니다.
벡터의 투영(Projection)
벡터를 projection 시킨다는 것은 뭘까요? 그림을 하나 보겠습니다.

지금 그림은, 벡터 ((b))를 ((a))라는 선에 projection 시킨 것입니다. ((b))를 ((a))에 projection 시킨다는 뜻은, 벡터 ((b))의 끝 점이 ((a))의 어디에 가장 가까운지를 찾는 것입니다.
그래서 ((b))의 성질을 가장 그래도 보존하면서 ((a))로 끌어내린 것이죠. 가장 가까운 점을 찾기 위해서는, ((b))에서 ((a))로 수직(perpendicular)의 선을 내려서 만나는 점을 보는 것입니다. 여기서는 그 점이 ((p))라고 적혀있습니다. 이렇게 ((b))를 ((a))로 projection 시킨 결과물은 ((p))가 되는 것입니다.
벡터의 덧셈을 시각화 시킨 그림의 모양이 기억나시나요? 위에서 error라고 불리는 ((e))를 한 번 보겠습니다. 이게 error인 이유는, ((b))와 ((a)) 간의 차이를 나타낸 것이기 때문입니다. 벡터의 덧셈 그림을 잘 생각해보면, 지금 상황에서 ((p))와 ((e))를 더하면 ((b))가 나온다는 것을 볼 수 있습니다. 그러면 ((p)) ((+)) ((e)) ((=)) ((b)) 이므로, ((e)) ((=)) ((b)) ((-)) ((p))가 되는 것이 자명합니다.
자, 그러면 눈으로 보았을 때 지금 error vector ((e))와 우리가 투영시킨 선인 ((a))가 수직(perpendicular)한 상황입니다. 직교하는 상황이죠. 이전 '직교성과 부분공간' 게시물에서 직교한다는 뜻은 내적하여 0이 된다는 뜻이라고 하였습니다.
어떤 상황인지 수식으로 표현해보겠습니다.

((a))와 error vector인 ((e))를 내적하여 0이 되었습니다(((e)) = ((b)) ((-)) ((p)))
((p))는 왜 어디가고 ((\hat{x}))((a)) 얘가 나왔냐 하실 수 있습니다. 그런데 보시면 ((p))가 ((a)) 위에 있고, ((a))보다 살짝 짧음을 볼 수 있습니다. 그래서 ((a))를 잘 조절해서(((\hat{x}))) 나온게 우리의 projection된 벡터 ((p))다. 이렇게 생각해주시면 되겠습니다.
그러면 우리가 최종적으로 알고싶었던, (((\hat{x}))) 의 값을 알 수 있습니다.

이를 조금만 다르게 표현하면 벡터를 투영시키는 데에 필요한 Projection Matrix를 알 수 있습니다. 지금은 선이기에 어떤 스칼라 값입니다.

위 그림에서 우리의 최종적으로 투영된 벡터 결과물 ((p))는 이렇게 표현됩니다. 이걸 ((b))에 무언가를 하는 형태로 다시 정리해본다면,

이렇게 될 것이고, ((b))를 옆으로 빼준다면,

어떤 벡터를 선 위로 투영할 때의 우리의 projection matrix는 이렇게 될 것입니다.
우리가 어떤 선 ((a)) 위에 기존 벡터인 ((b))를 투영시키고 싶다면, 이 값을 곱해주면 되는 것입니다.
똑같은 원리로 이번에는 벡터를 선 위에 투영시키지 않고 면(plane) 위에 투영시켜보겠습니다.

일단 이 상태가 무엇인지 이해하는 것이 먼저일 것입니다.
우리는 항상 ((A))((x)) ((=)) ((b))를 구하고 있습니다.
그런데 해가 존재하기 위해서는 ((b))가 Column Space 위에 존재해야지만 가능합니다.
지금 위 그림을 보면, b는 제멋대로 위로 치솟고 있고, 밑에 있는 ((C)), Column Space 안에 존재하고 있지 않습니다.
그래서 ((b))와 가장 가까운, ((b))를 Column Space에 투영시켜서 그나마 가장 나은 해인 ((\hat{x}))라도 구해보자는 것입니다.
구하는 방법은 error vector인 e를 통해서 구하는데, ((b)) = ((p)) + ((e)) 이고, ((e))는 ((A))와 수직이므로 내적하면 0이 나옵니다. 그렇다면,

이렇게 될 것이고,

((b))에 가해지는 projection matrix는 이러한 형태를 가지게 될 것입니다.
실제로 벡터 투영시켜보기
이제 위에서 원리와 개념 설명을 다 했으니, 실제로 해볼 차례입니다.

((b)) 벡터를 각각 line인 ((a))와 plane인 ((A))로 투영시켜볼까요?
선일 경우,

이것이 투영의 결과물입니다.
평면일 경우,

이 식을 풀어야합니다. 이 식은 어떻게 나왔냐,

error vector와 column space ((A))가 수직이기에, 내적하면 0이 된다는 점을 이용한 식을 다시 정리한 것입니다.
((A^{T}))((A))를 구해보면 ((\begin{bmatrix}
3 & 3\\
3 & 5
\end{bmatrix})) 가 나옵니다. 그렇다면,

이렇게 될 것이고, 우리의 투영된 최종 결과물은, ((p)) ((=)) ((A))((\hat{x}))이기 때문에, ((A))와 곱해주면

이렇게 될 것입니다.
정리하자면,
이러한 투영의 생각의 출발점은 모두, 해가 존재하지 않을 때 가장 근사한 해를 구하기 위해서입니다. Column Space에 ((b))가 위치하지 않을 경우, 해가 존재하지 않기 때문에, 그 ((b))를 column space에 투영시켜 강제로 끌고 내려와, 그나마 가장 나은 해를 구해보자는 시도라고 할 수 있겠습니다. 이 때 ((b))를 column space로 끌고 내려와주는 것이 바로 투영 행렬(projection matrix)이며, 근사해인 ((\hat{x}))를 구하고 ((A))와 함께 정리하여 써본다면 이를 구할 수 있다는 것을 말씀드리고 싶습니다.
'선형대수' 카테고리의 다른 글
그람-슈미트 과정(Gram-Schmidt Process) - part 1 (1) | 2024.02.16 |
---|---|
직교성(Orthogonality)과 부분공간(Subspaces) (1) | 2024.01.31 |
Solving ((A))((x)) ((=)) ((b)) (When ((m)) < ((n))) (2) | 2024.01.30 |
선형연립방정식의 해의 존재성 (1) | 2024.01.30 |
Gauss-Jordan Elimination(가우스-조던 소거법) & RREF (1) | 2024.01.29 |
오늘은 벡터를 부분공간에 project하는 방법에 대해서 알아보도록 하겠습니다. 지난 게시물인 '직교성과 부분공간' 의 마지막 부분에 이어서 진행해보도록 하겠습니다.
https://jaehoonstudy.tistory.com/20
직교성(Orthogonality)과 부분공간(Subspaces)
오늘은 직교하는 벡터들과 부분공간들에 대해서 간단히 다뤄보도록 하겠습니다. 직교하는 성질은 공학에서도 중요한 성질입니다. 직교성(Orthogonality)가 충족된다면, 독립(independence)를 보장해주
jaehoonstudy.tistory.com
일단 벡터의 projection을 시작하기 전에, 벡터를 더하는 것이 어떤 의미인지 알아보겠습니다.
벡터의 덧셈 시각화
벡터를 더한다는 것이 무슨 의미인지 시각적으로 보겠습니다.

파란색 벡터 두 개를 더하면 빨간색 벡터가 됩니다. 이 모양을 기억해보면서, 벡터의 투영이 뭔지 보도록 하겠습니다.
벡터의 투영(Projection)
벡터를 projection 시킨다는 것은 뭘까요? 그림을 하나 보겠습니다.

지금 그림은, 벡터 ((b))를 ((a))라는 선에 projection 시킨 것입니다. ((b))를 ((a))에 projection 시킨다는 뜻은, 벡터 ((b))의 끝 점이 ((a))의 어디에 가장 가까운지를 찾는 것입니다.
그래서 ((b))의 성질을 가장 그래도 보존하면서 ((a))로 끌어내린 것이죠. 가장 가까운 점을 찾기 위해서는, ((b))에서 ((a))로 수직(perpendicular)의 선을 내려서 만나는 점을 보는 것입니다. 여기서는 그 점이 ((p))라고 적혀있습니다. 이렇게 ((b))를 ((a))로 projection 시킨 결과물은 ((p))가 되는 것입니다.
벡터의 덧셈을 시각화 시킨 그림의 모양이 기억나시나요? 위에서 error라고 불리는 ((e))를 한 번 보겠습니다. 이게 error인 이유는, ((b))와 ((a)) 간의 차이를 나타낸 것이기 때문입니다. 벡터의 덧셈 그림을 잘 생각해보면, 지금 상황에서 ((p))와 ((e))를 더하면 ((b))가 나온다는 것을 볼 수 있습니다. 그러면 ((p)) ((+)) ((e)) ((=)) ((b)) 이므로, ((e)) ((=)) ((b)) ((-)) ((p))가 되는 것이 자명합니다.
자, 그러면 눈으로 보았을 때 지금 error vector ((e))와 우리가 투영시킨 선인 ((a))가 수직(perpendicular)한 상황입니다. 직교하는 상황이죠. 이전 '직교성과 부분공간' 게시물에서 직교한다는 뜻은 내적하여 0이 된다는 뜻이라고 하였습니다.
어떤 상황인지 수식으로 표현해보겠습니다.

((a))와 error vector인 ((e))를 내적하여 0이 되었습니다(((e)) = ((b)) ((-)) ((p)))
((p))는 왜 어디가고 ((\hat{x}))((a)) 얘가 나왔냐 하실 수 있습니다. 그런데 보시면 ((p))가 ((a)) 위에 있고, ((a))보다 살짝 짧음을 볼 수 있습니다. 그래서 ((a))를 잘 조절해서(((\hat{x}))) 나온게 우리의 projection된 벡터 ((p))다. 이렇게 생각해주시면 되겠습니다.
그러면 우리가 최종적으로 알고싶었던, (((\hat{x}))) 의 값을 알 수 있습니다.

이를 조금만 다르게 표현하면 벡터를 투영시키는 데에 필요한 Projection Matrix를 알 수 있습니다. 지금은 선이기에 어떤 스칼라 값입니다.

위 그림에서 우리의 최종적으로 투영된 벡터 결과물 ((p))는 이렇게 표현됩니다. 이걸 ((b))에 무언가를 하는 형태로 다시 정리해본다면,

이렇게 될 것이고, ((b))를 옆으로 빼준다면,

어떤 벡터를 선 위로 투영할 때의 우리의 projection matrix는 이렇게 될 것입니다.
우리가 어떤 선 ((a)) 위에 기존 벡터인 ((b))를 투영시키고 싶다면, 이 값을 곱해주면 되는 것입니다.
똑같은 원리로 이번에는 벡터를 선 위에 투영시키지 않고 면(plane) 위에 투영시켜보겠습니다.

일단 이 상태가 무엇인지 이해하는 것이 먼저일 것입니다.
우리는 항상 ((A))((x)) ((=)) ((b))를 구하고 있습니다.
그런데 해가 존재하기 위해서는 ((b))가 Column Space 위에 존재해야지만 가능합니다.
지금 위 그림을 보면, b는 제멋대로 위로 치솟고 있고, 밑에 있는 ((C)), Column Space 안에 존재하고 있지 않습니다.
그래서 ((b))와 가장 가까운, ((b))를 Column Space에 투영시켜서 그나마 가장 나은 해인 ((\hat{x}))라도 구해보자는 것입니다.
구하는 방법은 error vector인 e를 통해서 구하는데, ((b)) = ((p)) + ((e)) 이고, ((e))는 ((A))와 수직이므로 내적하면 0이 나옵니다. 그렇다면,

이렇게 될 것이고,

((b))에 가해지는 projection matrix는 이러한 형태를 가지게 될 것입니다.
실제로 벡터 투영시켜보기
이제 위에서 원리와 개념 설명을 다 했으니, 실제로 해볼 차례입니다.

((b)) 벡터를 각각 line인 ((a))와 plane인 ((A))로 투영시켜볼까요?
선일 경우,

이것이 투영의 결과물입니다.
평면일 경우,

이 식을 풀어야합니다. 이 식은 어떻게 나왔냐,

error vector와 column space ((A))가 수직이기에, 내적하면 0이 된다는 점을 이용한 식을 다시 정리한 것입니다.
((A^{T}))((A))를 구해보면 ((\begin{bmatrix}
3 & 3\\
3 & 5
\end{bmatrix})) 가 나옵니다. 그렇다면,

이렇게 될 것이고, 우리의 투영된 최종 결과물은, ((p)) ((=)) ((A))((\hat{x}))이기 때문에, ((A))와 곱해주면

이렇게 될 것입니다.
정리하자면,
이러한 투영의 생각의 출발점은 모두, 해가 존재하지 않을 때 가장 근사한 해를 구하기 위해서입니다. Column Space에 ((b))가 위치하지 않을 경우, 해가 존재하지 않기 때문에, 그 ((b))를 column space에 투영시켜 강제로 끌고 내려와, 그나마 가장 나은 해를 구해보자는 시도라고 할 수 있겠습니다. 이 때 ((b))를 column space로 끌고 내려와주는 것이 바로 투영 행렬(projection matrix)이며, 근사해인 ((\hat{x}))를 구하고 ((A))와 함께 정리하여 써본다면 이를 구할 수 있다는 것을 말씀드리고 싶습니다.
'선형대수' 카테고리의 다른 글
그람-슈미트 과정(Gram-Schmidt Process) - part 1 (1) | 2024.02.16 |
---|---|
직교성(Orthogonality)과 부분공간(Subspaces) (1) | 2024.01.31 |
Solving ((A))((x)) ((=)) ((b)) (When ((m)) < ((n))) (2) | 2024.01.30 |
선형연립방정식의 해의 존재성 (1) | 2024.01.30 |
Gauss-Jordan Elimination(가우스-조던 소거법) & RREF (1) | 2024.01.29 |