이 관점은 특정 성분을 확인할 때 좋습니다. 표준적인 직접 계산은 곱셈 mnp번을 사용합니다. 합을 묶는 순서를 바꾸는 것만으로 이 곱셈 횟수가 줄어들지는 않습니다.
3. 열 전체: AB의 열은 A의 열공간 안에 있다
B=[b1⋯bp]라 쓰면
AB=[Ab1⋯Abp].
각 결과 열은 A의 열을 bj의 성분으로 선형결합한 것입니다. 예제의 첫 번째 열과 두 번째 열은
Ab1=[10]+2[01]=[12],Ab2=[21]+3[01]=[24].
따라서
C(AB)⊆C(A).
단, 포함관계가 항상 등호는 아닙니다. 이 예제에서 A의 열공간은 R2 전체이지만 AB의 두 열은 같은 직선 위에 있습니다.
4. 행 전체: AB의 행은 B의 행공간 안에 있다
행도 같은 방식으로 읽을 수 있습니다.
(AB)i,:=k=1∑naikBk,:.
예제의 첫 행은 B의 첫 행에 둘째 행의 두 배를 더한 (1,2)이고, 둘째 행은 B의 둘째 행과 셋째 행을 더한 (2,4)입니다. 그러므로
C((AB)T)⊆C(BT),rank(AB)≤min{rank(A),rank(B)}.
곱셈 중 정보가 사라질 수 있습니다. 예제에서는 A,B 모두 랭크 2지만 AB는 랭크 1입니다. B가 만드는 어떤 방향을 A가 영벡터로 보내기 때문입니다.
5. 행렬 전체: 열과 행의 외적을 더한다
이번에는 안쪽 인덱스 k별로 묶습니다. ak=A:,k를 A의 열이라고 하면
AB=k=1∑nakBk,:.
각 항의 크기는 (m×1)(1×p)=m×p입니다. 내적이 숫자 하나를 만드는 것과 달리, 외적은 행렬 하나를 만듭니다. 예제에서는
AB=[10][10]+[21][01]+[01][23]
=[1000]+[0021]+[0203].
uvT의 모든 열은 u의 배수이고 모든 행은 vT의 배수입니다. 따라서 u,v가 모두 영벡터가 아니면 랭크 1, 어느 하나가 영벡터면 랭크 0입니다. 여러 랭크 1 행렬을 더할 때에는 방향이 중복되거나 상쇄될 수 있으므로, 합의 랭크가 항의 개수와 같다는 보장은 없습니다.
6. 다섯 가지 분해를 한 표로 읽기
교재 I.2는 행렬곱을 거꾸로 바라보게 합니다. 곱을 계산하는 대신, 주어진 행렬을 성질이 좋은 인수로 나눕니다.
분해
조건과 인수의 의미
무엇을 드러내는가
PA=LU
정사각 가역행렬의 소거법. P는 행 교환, L,U는 아래·위 삼각행렬
연립방정식을 두 삼각계로 풀기
A=QR
열이 독립인 m×n 행렬에서는 QTQ=In, R은 가역인 위 삼각행렬
직교기저와 그 기저에서의 좌표
S=QΛQT
실수 대칭행렬. Q는 정규직교 고유벡터, Λ는 실수 고유값
서로 직교하는 방향별 작용
A=XΛX−1
정사각행렬에 독립인 고유벡터가 충분할 때. 경우에 따라 복소수 사용
같은 고유벡터 기저에서의 대각화
A=UΣVT
모든 실수 직사각형 행렬. U,V는 직교행렬, Σ는 비음수 대각 성분을 갖는 직사각형 행렬
입력·출력의 두 직교기저와 늘어나는 정도
QR에는 랭크가 부족한 행렬을 위한 형태도 있지만, 위 표는 열이 독립인 경우의 간단한 형태를 적었습니다. 일반적인 대각화와 SVD를 혼동하지 않아야 합니다. 전자는 실패하는 행렬이 있지만 후자는 항상 존재합니다.
7. LU를 랭크 1 조각으로 이해하기
직접 구성한 행렬
M=[2615]
의 둘째 행에서 첫째 행의 3배를 빼면 U=[2012]입니다. 사용한 배수 3을 저장하면
M=L[1301]U[2012]=[13][21]+[01][02].
첫 조각은 원래 행렬의 첫 행과 첫 열을 정확하게 재현합니다. 이것을 빼면 오른쪽 아래에 작은 문제가 남습니다.
M−[2613]=[0002].
일반적으로 첫 피벗 a=0인 블록 행렬은
[acbTD]=[1c/a][abT]+[000D−cbT/a].
남는 D−cbT/a에 같은 과정을 반복하는 것이 소거법입니다. 이 블록을 Schur complement라고 부릅니다. 이 관점은 강의에서 소개하는 외적과 LU의 연결을 보여 줍니다.
가역이라고 해서 행 교환 없는 LU가 항상 가능한 것은 아닙니다. 예를 들어 [0110]는 가역이지만 첫 피벗이 0입니다. 이때에는 행을 교환한 PA=LU를 사용합니다. 실제 계산에서는 0이 아닌 작은 피벗도 수치 오차를 키울 수 있어 피벗 선택이 중요합니다.
Mx=d를 풀 때에는 Ly=d를 먼저 풀고 Ux=y를 풉니다. 역행렬 전체를 구할 필요 없이 같은 분해를 여러 우변에 재사용할 수 있습니다.
8. 대칭행렬의 분해도 외적의 합이다
S=QΛQT에서 Q=[q1⋯qn]이면 QΛ의 i번째 열은 λiqi입니다. 따라서
S=i=1∑nλiqiqiT.
정규직교성 qiTqj=δij 때문에
Sqj=i∑λiqi(qiTqj)=λjqj.
각 조각은 qi 방향의 성분만 골라 λi배 합니다. 예를 들어
S=[3113],q1=21[11],q2=21[1−1]
이면 S=4q1q1T+2q2q2T입니다. 같은 방향에서 반복해서 작용하므로 Sk=4kq1q1T+2kq2q2T도 바로 얻습니다. 자세한 대각화는 Lecture 4에서 다룹니다.
SVD에서도 같은 외적 규칙을 사용하여 A=∑i=1rσiuiviT로 씁니다. 다만 입력 방향 vi와 출력 방향 ui가 서로 다를 수 있다는 차이가 있습니다.
9. 강의 후반: 네 기본 부분공간
A∈Rm×n, rank(A)=r에 대해 네 공간을 구별합니다.
공간
정의
놓이는 공간
차원
열공간 C(A)
가능한 모든 출력 Ax
Rm
r
행공간 C(AT)
행들의 선형결합
Rn
r
영공간 N(A)
Ax=0인 입력
Rn
n−r
왼쪽 영공간 N(AT)
ATy=0인 벡터
Rm
m−r
영공간에 x,z가 있으면 A(αx+βz)=0이므로 선형결합도 그 공간에 남습니다. 자유변수의 개수가 n−r라는 소거법의 결과가 영공간의 차원을 줍니다.
공간 사이의 관계는 차원뿐 아니라 직교성으로도 나타납니다.
N(A)=C(AT)⊥,N(AT)=C(A)⊥.
Ax=0은 x가 A의 모든 행과 수직이라는 뜻이기 때문입니다. 따라서 입력은 유일하게
x=xrow+xnull,Ax=Axrow
로 분해됩니다. 행공간에 제한한 A는 열공간으로 가는 일대일 대응입니다. 행공간 안의 벡터가 영공간에도 속하려면 영벡터여야 하기 때문입니다. Lecture 3에서는 이 분해를 정사영으로 계산합니다.