처음 대학교 2학년때 선형 대수학을 배웠을 때가 생각난다
이 까지 진도를 나갔을 때 즘에는 종강이 한달도 남지 않은 여름 냄새가 풀풀한 1학기 말이였다
여름 열기에 안그래도 더운데 위에 이 4 Fundamental Subspace 그림은 전혀 도움을 주지 않았다...
어려워하는 학생들의 입장을 너무나 잘 알기에, 이번에 이해하는데 좀 도움을 주자고 한다
우선 부분공간은 뭘까?
Subspace
부분공간(Subspace)
부분공간은 벡터 공간의 핵심 개념으로, 선형대수학에서 매우 중요한 역할을 합니다. 부분공간은 다음과 같은 특징을 가지고 있다:
- 영벡터의 포함: 부분공간에는 항상 영벡터(all-zero vector)가 포함되어 있습니다.
- 벡터 덧셈에 대한 폐쇄성: 부분공간의 두 벡터를 더하면 결과 벡터도 부분공간에 속합니다.
- 스칼라 곱셈에 대한 폐쇄성: 부분공간의 벡터와 임의의 스칼라를 곱하면 결과 벡터도 부분공간에 속합니다.
이러한 성질들로 인해 부분공간은 벡터 공간의 정의를 만족하게 됩니다. 예를 들어, 어떤 행렬의 열공간(column space) 및 영공간(null space)은 모두 부분공간이다.
부분공간의 개념은 선형대수학의 많은 영역에서 중요하게 활용된다다.
선형 시스템의 해 집합, 벡터 공간의 직교 분해, 선형 변환의 성질 등을 설명할 때 부분공간이 핵심적인 역할을 한다다.
따라서 부분공간에 대한 이해는 선형대수학을 이해하고 응용하는 데 매우 중요하다.
선형대수학의 4대 주요 부분공간
선형대수학에서 가장 중요한 4대 부분공간은 다음과 같다:
- 열공간(Column Space) 또는 영역(Range):
행렬 A의 열 벡터들이 생성하는 부분공간. 이는 행렬 A를 통해 변환될 수 있는 모든 벡터의 집합을 나타냅니다. 기호로 ℂ(A)로 표현합니다. - 영공간(Null Space) 또는 핵(Kernel):
행렬 A에 의해 영벡터(0 벡터)로 매핑되는 모든 벡터의 집합. 즉, Ax=0을 만족하는 모든 벡터 x의 집합입니다. 기호로 ℕ(A)로 표현합니다. - 행공간(Row Space):
행렬 A의 행 벡터들이 생성하는 부분공간. 이는 행렬 A^T의 열공간과 동일합니다. 기호로 ℂ(A^T)로 표현합니다. - 좌영공간(Left Null Space):
행렬 A의 전치 A^T에 의해 영벡터로 매핑되는 모든 벡터의 집합. 즉, A^Ty=0을 만족하는 모든 벡터 y의 집합입니다. 기호로 ℕ(A^T)로 표현합니다.
이 4개의 핵심 부분공간은 선형 시스템의 해 집합, 선형 변환의 성질 등을 이해하는 데 매우 중요하지만..
이렇게 말하면 뭐라하는지 하나도 모르겠다...
다음고 같은 선형 변환 (Linear Transform) A가 있다고 하자
이 Linear Transform A는 2차원에서 3차원으로 확장해준다
그래서 A는 아래와 같이 3x2 행렬일 것이다
또한 편의상 이 행렬 (Matrix)의 열 (Column)들은 서로 Linearly Dependent 하다고 치자
즉 Dependent 한 열들 C1, C2가 있다면 어떠한 상수 (Constant) 를 둘중 한개에 곱하면 같아진다
그러면
열공간(Column Space) 또는 영역(Range):
는 하나의 직선이 된다, A 변환 후 변환된 벡터들의 끝점들이 위치하는 Subspace이다
또한
영공간(Null Space) 또는 핵(Kernel):
A 변환이 된 애들이 다 R(A)에 있다 했는데 몇몇놈들은 벡터의 끝이
원점에 위치할 것이다! 얘네들은 쪼그라들어서 크기가 0이 된 애들인데
원래 영역 (왼쪽 2차원) 에서 저 파란선에 있는 벡터들은 저렇게 원점으로 쪼그라진다는 소리다
그래서 저 파라줄이 Null Space이다
그리고 우리는 이 Null Space에 있는 벡터들은 다 원점으로 쪼그라들 것을 알기에
이러한 방향으로 압축된다고 생각할 수 있다
그럼 R2 (2 차원)에 있던 모든 벡터들은 이 빨간줄에 위치하게 된다는 소리다
딱보니 Null Space랑 직교 (Orthogonal) 하다
그리고 이 빨간 줄이 3차원으로 가면 이렇게 Column Space가 된다
이 빨간줄에 R2애서R3 로의 변환을 ?라고 하자
R(?)
그리고 R2 영역에 임의의 한 벡터가 있다 (검정색)
일단 A 변환을 취하면 R(?) 부분공간으로 압축될것이다
그리고 3차원으로 던져져 R(A) A.K.A Column Space 에 위치하게 될 것이다
그리고 반대로 R3 영역에 Column Space에 존재하는 임의의 벡터가 있다하고
이를 다시 R2영역으로 던져주면
이렇게 R(?) Subspace로 Mapping 될 것이다
흠... 뭔가 A의 역행렬 (Inverse) 냄새가 나지 않나요..?
그러나 사실 정확한 Inverse는 아니다 왜냐
우리에 원 벡터는
요놈이였는데
이벡터로 다시 매핑 해주지는 않기 때문이다
그리고 R3영역에서 저 Column Space에 있지 않는 벡터라면
A 변환이 Mapping 해주지 않기 때문에 되돌릴 수가 없다
그래서 이 ?변환을 완전 역행렬이 아닌
의사역행렬이라 하겠다 Pseudo-Inverse 로 칭하고 A+로 표기하겠다
그럼 여기서
행공간(Row Space):
이 Pseudo-Inverse 변환이 Mapping 해주는 Subspace는 R(A+) 가 될것이다
이게 바로 행공간이다
그럼 이 Pseudo Inverse변환의 Null Space도 있을 것이다
아래와 같은 R3공간에 임의의 벡터를 보자
이 벡터는 R(A)에 존재하지 않기 때문에
R(A)방향에 성분들만 고려될 것이다 (정사, Projection)
요렇게 해당 성분만 Project된 후에 R(A+)영역으로 Mapping 될것이다
그래서 이 Pseudo Inverse의 Null Space는 이 과정에서 없어지는 벡터에 원 성분들이 Span 하는 Subspace일 것이다
말이 어렵지만 그냥 R(A)랑 수직이다
좌영공간(Left Null Space):
하지만 이게 보통
4 Fundamental Subspace 에 관해 설명될때 나오는 내용이 아니다
위에 정의도 되어있듯이 주로 전치 (Transpose)와 연관되어 설명된다
그럼 이 관계에서 Transpose는 어떻게 이해하면 될까?
Transpose
행렬의 전치(Transpose)
행렬의 전치는 주어진 행렬의 행과 열을 서로 바꾸는 연산이다.
이를 통해 행렬의 구조와 성질을 이해할 수 있습니다.
행렬 A의 전치는 일반적으로 A^T 또는 A'로 표기한다.
행렬 A의 i번째 행과 j번째 열에 위치한 원소는 A^T의 j번째 행과 i번째 열로 이동한니다.
행렬의 전치는 선형대수학, 통계학, 컴퓨터 그래픽스 등 다양한 분야에서 중요한 역할을 한다.
예를 들어, 열 공간과 행 공간, 데이터 분석, 좌표계 변환 등에 활용된다.
뭐 연산하는 것은 쉽다.. 그러나 이게 기하학적으로 무슨 의미가 있을까?
아까 앞서 봤던 Column Space와 Row Space를 아래와 같이 표기하자
이제 A 변환을
3 가지 방법으로 나눌 것이다
1단계
Row Space에 위치하던 벡터를 회전 시켜서 Column Space에 R2 영역에서 만큼은 같게 회전시켜준다
그럼 아래 처럼 벡터가 회전된다
2단계
벡터를 늘려줘서 A변환되어 Column Space에 존재하는 벡터와 크기가 같도록 크기를 늘려준다
그럼 이렇게 늘어난다
3단계
이렇게 R3영억으로 회전을 시켜준다
그러면 이렇게 A변환과 같아진다
이 3가지 변환들이 전부 선형 변환 (Linear Transformation)이기에
행렬로 표현이 된다
첫번째 부터 살펴보면
V 의 Transpose로 표기된다
그리고 Orthogonal 하기 때문에 다음과 같은 성질들이 만족한다
두번째는
시그마로 표현된다
R2를 R3로 옮겨주고
늘려주기만 하고 회전을 하기에
대각성분을 제외한 성분들은 전부 0이다
여기서 시그마는 벡터가 늘어나는 정도이다
마지막
U로 표기되는 R3 영역에서 제자리로 회전시켜주는 과정이다
순서대로 곱해주면
원래
Ax=b라서 순서가 저렇다
이게 바로
SVD (Single Value Decomposition) 특이값 분해이다
이러한 분해는
의사역행렬 Pseudo Inverse를 이해하는 직관적인 도움도 된다
Pseudo Inverse (A+)를 해주려면 이 벡터에서 시작해서
우선 회전시켜줘야한다
여기서 U의 Inverse과정을 하면되는데 Orthogonal 하기 때문에
U의 Transpose 와 같다 (Transpose가 구하기 쉬움, Inverse는 빡세...)
다음은 이제 크기를 다시 축소 시켜주면 되는데
크기의 역수를 곱해주면 되는데
이게 또 시그마의 Pseudo Inverse와 일치한
마지막으로
다시 R2 영역에서 옮겨줄 수 있다
이것도 V의 Transpose의 Inverse와 같은데
V가 Orthogonal하기 때문에
V의 Transpose의 Transpose는 다시 V이다
그래서 의사 역행렬 (또는 Moore-Penrose 역행렬이라고도 한다)을
이렇게 직관적으로 이해할 수 있다
너무 조화롭지 않은가..? ㅎㅎ
하지만 그래서 Transpose는 뭔 의미냐고...
A 를 특이값 분해해서 Transpose를 취하면 아래와 같다
어..? 어디서 많이 본 형태가 아닌가
Transpose랑 Pseudo Inverse의 유일한 차이는
시그마에 뭘 취하는가이다
A Transpose는 시그마 Transpose
A Pseudo Inverse는 시그마 Pseudo Inverse
그래서 A의 Transpose과정을 기하학적으로 살펴보면
첫번째 R3영역에 회전해준다
다음 길이를 늘려준다
여기서는 Pseudo Inverse와 다르게 길이를 줄이는게 아니고 늘린다
그 다음 R2영역에서 회전시켜줄 수 있다
짜잔..
그렇게 4 Fundamental Subspaces 그림이 완성됩니다