Introduction
이번에 선형대수를 공부하면서 내용을 정리해보았습니다.
강의 영상 : https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/video_galleries/video-lectures/
Video Lectures | Linear Algebra | Mathematics | MIT OpenCourseWare
This section contains a complete set of video lectures on linear algebra along with transcripts and related resource files.
ocw.mit.edu
스터디 github : https://github.com/jwkweon/study-linear-algebra
GitHub - jwkweon/study-linear-algebra
Contribute to jwkweon/study-linear-algebra development by creating an account on GitHub.
github.com
참고한 블로그 :
Lecture 14: Orthogonal vectors ans subspaces
Lecture 14: Orthogonal vectors ans subspaces (5/22) - 좋아. 카메라가 돌기 시작하네. 이번 강의는 14...
blog.naver.com
[Linear Algebra] Lecture 14 직교 벡터(Orthogonal Vector)와 부분 공간(Subspace)
이번 포스팅에서는 이전 강의 Lecture 10에서 배웠던 부분 공간(subspace)과 직교성(orthogonality)에 대한 내용을 알아보도록 하겠다. 먼저 알아볼 것은 직교 벡터(orthogonal vector)이다. 먼저 부분 공간에
twlab.tistory.com
(주로 https://twlab.tistory.com/30블로그의 사진과 내용을 보면서 공부했고 추가로 나머지 블로그를 참고하였습니다.)
(저는 제가 이해하기 쉽게 요약해서 적었으므로 좀더 자세히 공부하고싶다면 위 블로그를 참고하시면 됩니다.)
Lecture 13은 퀴즈 리뷰이기 때문에 넘어가겠습니다.
직교 벡터(Orthogonal Vector)
두 벡터가 직교(Orthogonal)하다는 것은 수직(perpendicular)이라는 말과 같다.
즉, 두 벡터 사잇각이 90도를 이루는 것을 직교 벡터(Orthogonal Vector)라 한다. 이때, 벡터는 임의의 모든 n차원에 대해서 해당되는 말이다.
또한, 두 벡터가 직교함을 알 수 있는 방법으로는 두 벡터를 내적하는 것이다. 벡터의 내적 공식은 다음과 같다.
$$ \vec a \cdot \vec b = |\vec a| |\vec b| cos \theta $$
여기서, 두 벡터가 직교하면 사잇각은 다음과 같이, $\theta=90^{\circ} = \frac{\pi}{2}$가 되므로
$cos 90^{\circ} = 0$이기 때문에 따라서, 두 벡터가 직교하면 내적의 값은 0이 된다.
$$ \vec a \cdot \vec b = 0 $$
또한, 벡터를 보통 bold체로 표현하며, 다음과 같이 진하게 표현하여 위의 화살표를 생략할 수 있다.
$$ \boldsymbol{a} \cdot \boldsymbol{b} = 0 $$
그리고, 이러한 bold체는 행렬에서 column vector를 뜻한다.
위의 식을 column vector들간의 내적으로 표현하려면 반드시 행렬에선 row x column 의형태가 되야 한다.
따라서, 앞의 column vector를 전치해줘야한다.
$$ \boldsymbol{x}^T \boldsymbol{y} = \begin{bmatrix} x_1 & x_2 & \cdots & x_n \end{bmatrix} \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix} = x_1 y_1 + x_2 y_2 + \ \cdots \ + x_n y_n = 0 $$
또한, column vector간의 내적을 하려면 가운데 차원을 맞춰줘야한다. 그렇기 때문에 전치를 한 것이다.
$$ [1 \times n ] \cdot [ n \times 1 ] = [1] $$
만일 벡터들간이 직교하면 다음과 같이 피타고라스의 정리가 만족한다. 왜냐하면 두 벡터를 더하면 두 벡터의 빗변이되고, 따라서, 직각삼각형이 만들어지므로 피타고라스의 정리가 만족한다.
아래그림에서 벡터의 방향은 상관없이 크기만 보면된다. $\boldsymbol{x+y}$의 크기가 빗변의 크기와 같다.
$$ |\boldsymbol{x}|^2 + |\boldsymbol{y}|^2 = | \boldsymbol{x+y}|^2$$
여기서 $|\boldsymbol{x}|$는 $\vec x$의 크기(길이)를 나타내며 이것은 중고등학교 때 배웠던 공식을 적용하면 된다.
또한, 이러한 벡터의 길이(length)를 norm이라고도 부른다. 예를 풀어보자.
$$ \boldsymbol{x} = \begin{bmatrix} 2 \\ 1 \\ 3 \end{bmatrix}, \quad \boldsymbol{y} = \begin{bmatrix} 3 \\ 3 \\ -3 \end{bmatrix}, \quad \boldsymbol{x+y} = \begin{bmatrix} 5 \\ 4 \\ 0 \end{bmatrix} $$
$$ ( \sqrt{2^2 + 1^2 + 3^2})^2 + ( \sqrt{3^2 + 3^2 + (-3)^2} ) ^2 = ( \sqrt{5^2 + 4^2 + 0^2})^2$$
$$ ( \sqrt{14})^2 + ( \sqrt{27})^2 + ( \sqrt{41})^2 $$
$$ 14+27 = 41 $$
이번에는, 기존의 알던 방식 말고 선형대수적인 방법으로 풀어보자.
참고로, 벡터의 크기를 구할 때 자신을 전치해서 row x column형태를 통해 크기를 구할 수 있다.
$$ |\boldsymbol{x}|^2 + |\boldsymbol{y}|^2 = | \boldsymbol{x+y}|^2$$
$$ \Downarrow$$
$$ \boldsymbol{x}^T \boldsymbol{x} + \boldsymbol{y}^T \boldsymbol{y} = ( \boldsymbol{x+y})^T ( \boldsymbol{x+y}) $$
$$ \Downarrow$$
$$ \begin{bmatrix} 2 & 1 & 3 \end{bmatrix} \begin{bmatrix} 2 \\ 1 \\ 3 \end{bmatrix} + \begin{bmatrix} 3 & 3 & -3 \end{bmatrix} \begin{bmatrix} 3 \\ 3 \\ -3 \end{bmatrix} = \begin{bmatrix} 5 & 4 & 0 \end{bmatrix} \begin{bmatrix} 5 \\ 4 \\ 0 \end{bmatrix} $$
$$ 14+27 = 41$$
그렇다면, 피타고라스의 정리와 두 벡터가 직교할경우 벡터의 내적(Dot product)=0인 것을 어떻게 연결 지을 수 있을까?
즉, 직각삼각형에 대한 정리가 내적과 어떻게 연결될까?
$$ |\boldsymbol{x}|^2 + |\boldsymbol{y}|^2 = | \boldsymbol{x+y}|^2$$
$$ \Downarrow$$
$$ \boldsymbol{x}^T \boldsymbol{x} + \boldsymbol{y}^T \boldsymbol{y} = ( \boldsymbol{x+y})^T ( \boldsymbol{x+y})$$
$$ \because (A+B)^T = A^T + B^T , \quad (AB)^T = B^T A^T , \quad A(B+C) = AB + AC $$
즉, 위와 같이 행렬 연산에서의 성질을 이용하여 전개하면,
$$ \boldsymbol{x}^T \boldsymbol{x} + \boldsymbol{y}^T \boldsymbol{y} = \boldsymbol{x}^T \boldsymbol{x} + \boldsymbol{x}^T \boldsymbol{y} + \boldsymbol{y}^T \boldsymbol{x} + \boldsymbol{y}^T \boldsymbol{y} $$
양변에 똑같은 값들을 없애주면,
$$ 0 = \boldsymbol{x^T y} + \boldsymbol{y^T x} $$
$$ \because \boldsymbol{x^T y} = \boldsymbol{y^T x} = \rm 어떤 \ scalar \ 값 \ 하나 $$
$$ 0 = 2 \boldsymbol{x}^T \boldsymbol y $$
$$ 0 = \boldsymbol{x}^T \boldsymbol{y}$$
$$ 0 = \boldsymbol{x} \cdot \boldsymbol{y} = \vec x \cdot \vec y $$
따라서, 이렇게 연관지을 수 있다.
만일, 벡터 a와 b를 내적하려는데, b가 영 벡터(zero vector)라면 두 벡터는 직교(Orthgonal)일까?
정답은 직교한다. 영벡터와 내적하는 모든 벡터는 서로 직교이다. 왜냐하면 직교에 대한 정의 자체가 내적했을 때 결과가 0 인것으로 정의되어 있기 때문이다.
즉, 내적해서 0이면 직교이다.
부분 공간의 직교(Orthogonality of subspaces)
이제 벡터에서 개념을 확장하여 부분 공간에도 직교에 대한 개념을 적용해보자. 다음 정의를 생각해보자.
$$ \rm 부분 \ 공간 \ S는 \ 부분 \ 공간 \ T에 \ 직교하다.$$
다음 두 부분 공간은 직교할까?
위의 두 부분 공간은 직교하지 않는다. 왜냐하면, 평면은 직교해보이지만, 각 부분 공간의 속해있는 벡터들은 보면 직교하지 않는다. $v_s$와 $v_t$가 직교하지 않는걸 볼 수 있다. 따라서, S에 존재하는 모든 벡터가 T에 존재하는 모든 벡터와 직교해야 한다.
만일, $v_t$가 x축을 향해 쭉 뻗어있다면 부분 공간 S에 존재하는 모든 벡터는 직교할 것이다. 하지만, 그렇지 않은 경우가 있기 때문에 두 부분 공간은 직교하지 않는다.
이것을 일반적으로 말하면 다음과 같다.
어떤 두 부분 공간이 영벡터(origin)가 아닌 임의의 벡터에서 만난다면, 이 두 부분 공간은 직교(orthogonal)하지 않다.
위의 그림에 경우 두 부분 공간이 원점뿐만 아니라 y축을 따라 아예 line으로 만나고 있는 것을 볼 수 가 있다.
따라서, 다음의 두가지 조건이 충족해야 두 부분 공간이 직교한다고 할 수 있다.
- S에 존재하는 모든 벡터가 T에 존재하는 모든 벡터와 직교해야 한다.
- 두 부분 공간이 만나는 점은 오직 원점(origin)에서만 만나야한다.
따라서, 위의 그림에서 S와 T는 직교가 아니다. 직교이려면 다음과 같은 그림이 되어야 한다.
위 그림은 S전체에 직교하는 1차원 Line 부분 공간 T를 나타낸 그림이다.
두 부분 공간이 교차하는 교차점(intersection)은 오직 원점(origin)뿐이다.
그리고 부분 공간 S의 어떠한 벡터라도 부분 공간 T의 모든 벡터와 90도의 각도를 이룬다.
따라서, 두 부분 공간 S와 T는 서로 직교한다.
Row space와 Null space의 직교
이제, 이렇게 부분 공간의 직교에 대해 배운 것을 토대로 우리가 앞에서 배웠던 4개의 주요 부분공간들중 Row space와 Null sapce가 직교 부분공간이라는 것을 이해해보자.
결론부터 얘기하면, 어떤 행렬의 Row space와 Null space라는 것은 이 행렬의 전체 공간을 두 개의 수직인 부분 공간으로 나누는 것이다.
일단, 이 두 부분 공간이 왜 직교인지 알아보자.
Null space는 Ax=0을 만족시키는 모든 해의 x의 집합이다.
$$ Ax = \begin{bmatrix} a_{11} & a_{12} & a_{13} & a_{14} \\ a_{21} & a_{22} & a_{23} & a_{24} \\ a_{31} & a_{32} & a_{33} & a_{34} \end{bmatrix} \begin{bmatrix} x_{11} \\ x_{21} \\ x_{31} \\ x_{41} \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix} $$
Ax=0의 연산을 풀어보면 A의 각 row는 x벡터와 곱해져서 0을 만든다. 이부분만 잘보면 각각의 row와 벡터 x간의 곱이 우리가 배웠던 벡터의 내적(Dot product)와 똑같은 연산이다.
$$ \begin{bmatrix} a_{11} & a_{12} & a_{13} & a_{14} \end{bmatrix} \begin{bmatrix} x_{11} \\ x_{21} \\ x_{31} \\ x_{41} \end{bmatrix} = \begin{bmatrix} 0 \end{bmatrix}$$
따라서, Null space의 해들은 A행렬의 row에 대해서 내적을 했을 때의 결과가 모두 0이기 때문에 각각의 row와는 직교(orthogonal)인 것을 알 수 있다.
즉, Row space상에 존재하는 모든 벡터는 row의 선형 결합(Linear Combination)을 통해 만들어지는 모든 벡터들과도 직교라는 말과 같다.
따라서, Row space는 결국 row들의 선형 결합이고 즉, row 벡터들의 합이므로 Dot product를 위해 전치를 시킨다. 그리고 Null space를 x라하면, 다음과 같은 식으로 표현할 수 있다.
$$ ( c_1 row1 + c_2 row2 )^T \boldsymbol{x} = 0 $$
이렇게 해서 Row space와 Null space가 직교(orthogonal)하다는 것을 수식적으로 이해는 했다.
하지만, 한가지 더 알아야하는게 바로 Rank, 차원의 관한 것이다.
우리는 Row space의 차원은 Rank인 r차원이고, Null space의 차원은 전체 공간 n에서 Rank를 뺀 n-r차원임을 안다.
이 말이 의미하는 것은 Row space와 Null space는 전체 공간인 $R^n$차원의 공간을 두 개의 수직(perpendicular)한 부분 공간으로 나눴다는 말이 된다.
즉, Row space의 차원 + Null space의 차원 = r + (n-r) = n = $R^n$
요약하면 다음과 같다.
- Null space에 존재하는 모든 벡터들은 Row space에 존재하는 모든 벡터들에 직교(orthogonal)한다.
- Null space와 Row space는 $R^n$차원에서 서로 직교하는 보완재(complements)이다.
Column space와 Left Null space의 직교
당연히, Column space와 Left Null space도 서로 직교(orthogonal)하며 보완(complements)해준다.
차이점은 전체 공간이 $R^m$공간이며, 이를 서로 직교하는 Column space와 Left Null space로 나눈다는 것이다.
따라서, Column space의 차원 + Left Null space의 차원 = r + (m-r) = m = $R^m$
$$ A^T x = \begin{bmatrix} a_{11} & a_{21} & a_{31} \\ a_{12} & a_{22} & a_{32} \\ a_{13} & a_{23} & a_{33} \\ a_{14} & a_{24} & a_{34} \end{bmatrix} \begin{bmatrix} x_{11} \\ x_{21} \\ x_{31} \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ 0 \\ 0 \end{bmatrix} $$
$$ \begin{bmatrix} a_{11} & a_{21} & a_{31} \end{bmatrix} \begin{bmatrix} x_{11} \\ x_{21} \\ x_{31} \end{bmatrix} = \begin{bmatrix} 0 \end{bmatrix}$$
즉, 위의 Row space와 Null space를 이해했던 것 처럼 똑같이 이해하면 된다.
요약하면 다음과 같다.
- Left Null space에 존재하는 모든 벡터들은 Column space에 존재하는 모든 벡터들에 직교(orthogonal)한다.
- Left Null space와 Column space는 $R^m$차원에서 서로 직교하는 보완재(complements)이다.
결론
이전에 4개의 주요 부분공간 배울 때 각 부분공간끼리 직교한다는게 잘 이해가 안됬었는데 이번 강의를 통해 확실히 알게 되었다. 이제 직교에대해 배웠으니 부분 공간들의 기저에 관한 내용을 배우면 될 것이다.