본문 바로가기

Fundamental

선형대수학 (Linear Algebra) 개념 정리 Part 1

 
본 포스트는 선형대수학의 전반적인 내용에 대해 간락히 정리한 내용이다. 대부분의 내용은 인공지능을 위한 선형대수 - 주재걸 교수님 (edwith) 영상을 참고하여 제작하였다.

선형대수학 (Linear Algebra) 개념 정리 Part 2 는 주로 행렬대수학과 관련된 내용을 다룬다.
확률 이론에 대한 내용을 알고싶으면 확률 이론(Probability Theory) 개념 정리 포스트를 참조하면 된다.

 

Chapter 1 - Linear Systems

Linear Equation

선형방정식(Linear Equation)은 변수 x1,,xn이 있을 때 다음과 같이 작성할 수 있는 방정식을 의미한다.
(1)a1x1+a2x2++anxn=b
이 때, b는 계수를 의미하고 a1,,an 값들은 실수 또는 복소수의 미지수를 의미한다. 위 식은 다음과 같이 간결하게 작성할 수 있다.
(2)aTx=b
이 때, a=[a1an]이고 x=[x1xn]이다.

 

Linear system

선형방정식(linear equation)의 집합을 선형시스템(linear system)이라고 한다. n개의 선형방정식 a1x=b1,,anx=bn 이 있는 경우 이를 다음과 같이 간결하게 선형시스템으로 표현할 수 있다.
(3)Ax=b

즉, Ax=b 형태의 행렬과 벡터의 방정식을 선형시스템이라고 한다. 선형시스템은 다른 말로 비동차방정식이라고도 불린다. 동차방정식, 비동차방정식의 정의는 다음과 같다.

Homogeneous equation

동차방정식(homogeneous equation)은 ARn×m,xRm×1,bRm×1 일 때, Ax=0 형태의 시스템을 말한다. 0이 아닌 해가 존재한다. 이와 반대로 Ax=b 형태의 방정식을 비동차방정식(non-homogeneous equation)이라고 한다. 비동차방정식은 해가 존재하지 않거나 여러 개 존재한다.

 

Over-determined system

Over-determined 시스템은 방정식의 개수가 미지수의 개수보다 많은 경우를 의미한다. Ax=b 의 형태에서 ARm×n,xRn×1,bRm×1 이라고 했을 때 m>n 인 경우를 의미한다. Over-determined 시스템의 경우 해가 존재하지 않으며 full column rank를 가진다. 

Ax=b 시스템의 해가 존재하지 않으므로 Axb을 최소화하는 근사해를 구하는 방법을 주로 사용한다.

 

Under-determined system

Under-determined 시스템의 경우 방정식의 개수보다 미지수의 개수가 많은 경우를 의미한다. 즉, over-determined 시스템과 반대로 n>m 인 경우를 의미한다. Under-determined 시스템의 경우 무수히 많은 해가 존재하며 full row rank를 가진다. 

Ax=b 시스템이 무수히 많은 해를 가지므로 x2 가 최소가 되는 해를 구하는 방법을 주로 사용한다.

 

Solving Linear System

행렬 A의 역행렬이 존재하는 경우 선형시스템은 역행렬을 사용하여 다음과 같이 풀 수 있다.
(4)Ax=bA1Ax=A1bIx=A1bx=A1b
그러나, 행렬 A의 판별식 detA=0인 경우 역행렬이 존재하지 않게되고 위와 같이 문제를 풀 수 없다. 이런 경우 선형시스템은 해가 존재하지 않거나 무수히 많은 해가 존재한다.

Linear Combination

여러 벡터 v1,,vnRn이 있을 때 스칼라 값 c1,,cn에 대하여
(5)c1v1++cnvn
을 벡터 v1,,vn의 가중치 계수 c1,,cn에 대한 선형결합 (Linear Combination) 이라고 한다. 이 때 가중치 계수 c1,,cn는 0을 포함한 실수 값을 가진다.

Span

주어진 여러 벡터 v1,,vnRn에 대해 스팬(Span) {v1,,vn}은 모든 v1,,vn에 대한 선형결합의 집합을 의미한다. 즉, Span{v1,,vn}은 다음과 같이 쓸 수 있는 모든 벡터들의 집합이다.
(6)c1v1++cnvn
이는 또한 v1,,vn에 의해 span된 Rn 공간 상의 subset이라고도 불린다.

From Matrix Equation to Vector Equation

Ax=b와 같은 선형 시스템을 다음과 같이 열벡터 ai 를 기준으로 펼쳐보면
(7)[a1a2an][x1x2xn]=b
로 나타낼 수 있고 이를 다시 표현하면
(8)a1x1+a2x2++anxn=b
와 같이 열벡터들의 선형결합으로 표현할 수 있게 된다. 만약 b가 Span {a1,,an}에 포함되어 있다면 이들의 선형결합으로 표현할 수 있으므로 해가 존재한다. 따라서 bSpan{a1,,an}일 때 해가 존재한다.

Several Perspectives about Matrix Multiplication

선형시스템 Ax=b가 있을 때 이는 곧 A의 열벡터들의 선형결합으로 표현할 수 있다.
(9)Ax=[a1,a2,,an][x1x2xn]=a1x1+a2x2++anxn=b
만약 선형시스템에 전치행렬을 적용하여 xTAT=bT가 되면
(10)[x1x2xn][a1a2an]=a1x1+a2x2++anxn=b
bT는 곧 AT의 행벡터(Row Vector)들의 선형결합으로 표현된다.
또한 두 벡터의 곱 abT=[a1an][b1bn]의 경우 rank1 outer product 로 볼 수 있다. 즉, [a  c][bd]의 경우 ab+cd 와 같이 벡터곱을 스칼라 곱과 같이 생각할 수 있다.

Linear Independence

벡터 집합 v1,,vnRn가 주어졌을 때, 이들 중 부분 벡터들의 집합 {v1,v2,,vj1}이 선형결합을 통해 특정 벡터 vj, j=1,,n를 표현할 수 있는지 검사한다.
(11)vjSpan{v1,v2,,vj1}for some j=1,,n?

만약 vj가 선형결합으로 표현이 된다면 v1,,vn선형의존 (Linearly Dependent) 이다. 만약, vj가 표현되지 않는다면 v1,,vn선형독립 (Linearly Independent) 이다.


만약 x1v1+x2v2++xnvn=0 같은 동차(homogeneous) 선형방정식이 있다고 하면
(12)x=[x1x2xn]=[000]
과 같은 자명해가 존재한다. 이 때, v1,,vn가 선형독립이면 자명해 이외에 해는 존재하지 않는다. 하지만, v1,,vn가 선형의존이면 선형시스템은 자명해 이외에 다른 해가 존재한다.
자명해 이외에 다른 해가 존재하는 선형의존(Linearly Dependent) 경우 대해서 생각해보면 예를 들어 A 행렬이 다음과 같이 5개의 열을 가진 행렬이라고 했을 때
(13)A=[a1a2a3a4a5]
열벡터(Column Vector)들 중 최소한 두 개 이상의 벡터가 선형결합 되어야 동차방정식 Ax=0의 해를 만족할 수 있다. 예를 들어 a2x2 성분이 0이 아닌 경우 이를 다시 영벡터로 만들기 위해서는 다른 1,3,4,5 열벡터들의 선형결합이 a2x2의 값을 만들어야 한다. 이는 곧 a2x2 값을 다른 열벡터들의 선형결합으로 표현할 수 있다는 말과 동치이므로 선형의존인 경우 어떤 하나의 벡터가 다른 벡터들의 선형결합으로 표현될 수 있음을 의미한다. 이를 수식으로 표현하면 다음과 같다.
(14)ajxj=a1x1aj1xj1aj=x1xja1xj1xjaj1Span{a1,a2,,aj1}

Linear Dependence

행렬 A의 열벡터 a1,a2,,an선형의존(Linearly Dependent)인 경우 해당 열벡터들은 Span의 차원을 늘리지 않는다.만약 AR3×3이고 a3Span{a1,a2}인 경우
(15)Span{a1,a2}=Span{a1,a2,a3}
만약 a3=d1a1+d2a2와 같이 선형결합으로 표현이 가능한 경우, a1,a2,a3는 다음과 같이 작성할 수 있다.
(16)c1a1+c2a2+c3a3=(c1+d1)a1+(c1+d1)a2

Span and Subspace

Rn 공간의 부분공간(Subspace) H는 Rn의 부분집합들의 선형결합에 대해 닫혀 있는 공간을 의미한다. 즉, 두 벡터 u1,u2H일 때, 어떠한 스칼라 값 c,d에 대하여 cu1+du2H일 때 H를 부분공간이라고 한다.
Span {a1,,an}으로 형성된 공간은 항상 부분공간이다. 만약 u1=x1a1++xnan이고 u2=y1a1++ynan일 때
(17)cu1+du2=c(x1a1++xnan)+d(y1a1++xnan)=(cx1+dy1)a1++(cxn+dyn)an
과 같이 선형결합으로 나타낼 수 있고 이는 임의의 값 c,d에 대해서 닫혀 있음을 의미한다. 따라서 부분공간은 항상 Span {a1,,an}으로 표현된다.

Basis of a Subspace

부분공간 H의 기저(basis) 는 다음을 만족하는 벡터들의 집합을 의미한다.

  • 부분공간 H를 모두 Span할 수 있어야 한다.
  • 벡터들 간 선형독립이어야 한다.

3차원 공간 R3 의 경우 기저벡터는 3개가 존재하고 e1=[1 0 0]T,e2=[0 1 0]T,e3=[0 0 1]T일 때, 이를 표준기저벡터(Standard Basis Vector)라고 한다.

Dimension of Subspace

하나의 부분공간 H를 표현할 수 있는 기저는 유일하지 않다. 하지만 여러개의 기저를 통해서 표현할 수 있는 부분공간의 차원(Dimension)은 유일하다. 부분공간의 차원은 기저벡터의 개수와 동일하다.

Column Space of Matrix

행렬 A의 열공간(Column Space)이란 A의 열벡터로 인해 Span된 부분공간을 의미한다. 일반적으로 Col A라고 표기한다.
(18)ColA=Span{[110],[101]}

Rank of Matrix

행렬 A의 rank란 A의 열벡터들의 차원을 의미한다.
(19)rankA=dim ColA

Transformation

변환(Transformation), 함수(Function), 매핑(Mapping) T 은 입력 x를 출력 y로 매핑해주는 것을 의미한다.
(20)T:xy
이 때 입력 x에 의해 매핑되는 출력 y는 유일하게 결정된다. 정의역(Domain) 이란 입력 x 의 모든 가능한 집합을 의미한다. 공역(Co-Domain) 이란 출력 y의 모든 가능한 집합을 의미한다. Image 란 주어진 입력 x에 대해 매핑된 출력 y를 의미한다. 치역(Range) 란 Domain내에 있는 입력 x들에 의해 매핑된 모든 출력 y의 집합을 의미한다.

Linear Transformation

변환 T는 다음과 같은 경우에 선형변환(Linear Transformation)이라고 한다.
(21)T(cu+dv)=cT(u)+vT(v)for all u,v  in the domain of T and for all scalars c and d.

Transformations between Vectors

T:xRnyRm은 n차원의 벡터를 m차원의 벡터로 매핑하는 연산을 의미한다. 예를 들면
(22)T:xR3yR2x=[123]R3y=T(x)=[45]R2

Matrix of Linear Transformation

변환 T:RnRm을 선형변환이라고 가정하면 T는 항상 행렬과 벡터의 곱으로 표현할 수 있다. 즉,
(23)T(x)=Ax  for all xRn
행렬 ARm×n인 경우 A의 j번째 열 aj는 벡터 T(ej)와 같다. 이 때 ej는 항등행렬 IRn×n의 j번째 열벡터이다.
(24)A=[T(e1)  T(en)]
이러한 행렬 A를 선형변환 T의 표준행렬(Standard Matrix)이라고 부른다.

Onto and One-To-One

Onto는 전사함수(Surjective)라고도 불리며 공역이 치역과 같은 경우를 의미한다. 이는 Co-Domain의 모든 원소들이 사영된 것을 의미한다.
(25)Surjective: Co-Domain = Range
One-To-One은 일대일함수(Injective)라고도 불리며 정의역의 원소와 공역의 원소가 하나씩 대응되는 함수를 의미한다.

 

Chapter 2 - Least Squares

Least Squares

최소제곱법(Least Squares)는 방정식의 개수가 미지수의 개수보다 많은 Overdetermined 선형시스템에서 사용하는 방법 중 하나이다. Overdetermined 선형시스템 Ax=b의 경우 일반적으로 해가 존재하지 않는다. 이런 경우 일반적으로 Axb2가 최소가 되는 근사해를 구할 수 있다.
 

Inner Product

벡터 u,vRn에 대해 이를 각각 n×1의 행렬로 생각할 수 있다. 그렇다면 uT1×n의 행렬로 볼 수 있고 행렬곱 uTv1×1의 행렬이 된다. 그리고 1×1 행렬은 스칼라값으로 표시할 수 있다.
이 때, uTv에 의해 계산된 값을 u,v의 내적(Inner Product, Dot Product)라고 한다. 이는 uv로 표기할 수 있다.

Properties of Inner Product

벡터 u,v,wRn이고 c를 스칼라 값이라고 할 때 내적은 다음과 같은 성질을 만족한다.

  • uv=vu
  • (u+v)w=uw+vw
  • (cu)v=c(uv)=u(cv)
  • uu0 and uu=0 iff u=0

위에서 2,3번 성질을 조합하면 다음과 같은 법칙을 만들 수 있다.
(26)(c1u1++cnun)w=c1(u1w)++cn(unw)
위를 통해 내적이라는 연산은 선형변환이라는 것을 알 수 있다.

Vector Norm

벡터 vRn에 대해 벡터의 놈(Norm)은 0이 아닌 v=vv로 표기하며 벡터의 길이를 의미한다.
(27)v=vv=v12+v22++vn2
2차원 벡터 vR2가 있을 때 v=[ab]라고 하면 v는 원점으로부터 v 좌표까지의 거리가 된다.
(28)v=a2+b2
모든 스칼라 값 c에 대해 cv의 길이는 v의 길이를 |c| 배 한 것을 의미한다.
(29)cv=|c|v

Unit Vector

길이가 1인 벡터를 단위벡터(Unit Vector)라고 한다. 벡터의 길이를 1로 맞추는 작업을 정규화(Normalization)라고 하는데 주어진 벡터 v가 있을 때 단위벡터 u=1vv가 된다. u 벡터는 v 벡터와 방향은 같지만 크기가 1인 벡터이다.

Distance between Vectors in Rn

두 벡터 u,vRn이 있을 때 두 벡터의 거리는 dist( u,v)로 나타내며 이는 uv 벡터의 길이를 의미한다.
(30)dist(u,v)=uv

Inner Product and Angle between Vectors

두 벡터 u,v의 내적은 다음과 같이 놈과 각도를 통해 표현할 수 있다.
(31)uv=uvcosθ

Orthogonal Vectors

두 벡터 u,vRn가 있을 때 둘이 수직이려면 두 벡터의 내적이 0이어야 한다.
(32)uv=uvcosθ=0
0이 아닌 두 벡터 u,v의 내적이 0이려면 cosθ 값이 0이어야 하고 θ=90 degree 일 때 cosθ 값은 0이 된다.

Least Square Problem

ARm×n,bRn,mn과 같이 주어진 Overdetermined 시스템 Ax=b가 있을 때 에러의 제곱합 bAx을 최소화하는 최적의 모델 파라미터를 찾는 것이 목적이 된다. 이 때 최소제곱법의 근사해 x^는 다음과 같다.
(33)x^=argminxbAx

최소제곱법의 중요한 포인트 중 하나는 어떤 x 파라미터를 선정하던지 벡터 Ax는 반드시 Col A 안에 위치한다는 것이다. 따라서 최소제곱법은 Col Ab의 거리가 최소가 되는 x를 찾는 문제가 된다.
b^=Ax^를 만족하는 근사해 x^는 Col A에서 b 벡터와 가장 가까운 모든 포인트들의 집합을 의미한다. 따라서 b는 다른 어떤 Ax보다도 b^와 가장 가깝게 된다. 기하학적으로 이를 만족하기 위해서는 벡터 bAx^가 Col A와 수직이어야 한다.
(34)bAx^(x1a1+x2a2++xnan)  for any vector x.
이는 곧 다음과 동일하다.
(35)(bAx^)a1a1T(bAx^)(bAx^)a2a2T(bAx^)(bAx^)a3a3T(bAx^)AT(bAx^)=0

Normal Equation

Axb를 만족하는 최소제곱법의 근사해는 다음과 같다.
(36)ATAx^=ATb
위 식을 정규방정식(Normal Equation) 이라고 부른다. 이는 C=ATARn×n,d=ATbRn일 때 Cx=d와 같은 선형시스템으로 생각할 수 있다. 이 선형시스템의 해를 구하면 다음과 같다.
(37)x^=(ATA)1ATb

Another Derivation of Normal Equation

근사해 x^=argminxbAx=argminxbAx2와 같이 제곱을 최소화하는 문제로 표현해도 동일한 문제가 된다.
(38)argminx(bAx)T(bAx)=bTbxTATbbTAx+xTATAx
위 식을 x에 대해서 미분하고 정리하면 다음과 같다.
(39)ATbATb+2ATAx=0ATAx=ATb
이 때 ATA가 역행렬이 존재한다면 다음과 같이 해를 구할 수 있다.
(40)x=(ATA)1ATb

What If C=ATA is NOT Invertible?

행렬 C=ATA의 역행렬이 존재하지 않는 경우 시스템은 해가 없거나 무수히 많은 해를 가지고 있다. 하지만 정규방정식은 항상 해를 가지고 있으므로 해가 없는 상황은 존재하지 않고 실제로는 무수히 많은 해를 가지고 있다. C가 역행렬을 구할 수 없는 경우는 오직 Col A가 선형의존일 경우에 발생한다. 하지만, 일반적으로 C는 대부분의 경우 역행렬이 존재한다.

Orthogonal Projection Perspective

행렬 C=ATA가 있을 때 b 점에서 Col A 공간으로 프로젝션하면 다음과 같다.
(41)b^=f(b)=Ax^=A(ATA)1ATb

 

Projection Matrix P

위 식에서 A(ATA)1AT을 일반적으로 투영 행렬(projection matrix) P라고 한다.

(42)P=A(ATA)1AT

 

투영 행렬은 곱해지는 벡터 b를 열공간(column space) 내에 존재하는 벡터 중 가장 가까운 점 b^으로 변환해주는 행렬로 생각할 수 있다.

(43)Pb=b^

 

투영 행렬 P의 특징은 다음과 같다.

  1. 투영 행렬은 대칭 행렬이다.  P=P
  2. 투영 행렬은 멱등 행렬(idempotent matrix) P=P2
  3. 투영 행렬은 랭크 결핍(rank deficient)이므로 역행렬이 존재하지 않는다.

 

Orthogonal and Orthonormal Sets

벡터들의 집합 u1,,unRn가 있을 때 모든 벡터 쌍들이 uiuj=0,  ij를 만족하면 해당 집합은 직교(Orhogonal) 하다고 말한다.
벡터들의 집합 u1,,unRn가 있을 때 모든 직교 집합들이 단위벡터인 경우 정규직교(Orthonormal) 하다고 말한다.
직교벡터와 정규직교벡터의 집합은 항상 선형독립이다.

Orthogonal and Orthonormal Basis

기저벡터 u1,,un이 p차원의 부분공간 WRn에 있다고 할때 Gram-Schmidt 프로세스와 QR decomposition을 사용하면 직교기저벡터를 만들 수 있다. 부분공간 W에 대해 직교기저 벡터 u1,un이 주어져 있다고 했을 때 yRn을 부분공간 W 위로 프로젝션시킨다.

Orthogonal Projection y^ of y onto Line

1차원 부분공간 L=Span{u} 위로 y를 프로젝션하여 y^를 구하면 다음과 같다.
(44)y^=projLy=yuuuu
가 된다. 만약 u가 단위벡터이면 다음과 같다.
(45)y^=projLy=(yu)u

Orthogonal Projection y^ of y onto Plane

2차원 부분공간 W=Span{u1,u2} 위로 y를 프로젝션하여 y^를 구하면 다음과 같다.
(46)y^=projLy=yu1u1u1u1+yu2u2u2u2
만약 u1,u2가 단위벡터이면 다음과 같다.
(47)y^=projLy=(yu1)u1+(yu2)u2
프로젝션은 각각 직교기저벡터에 독립적으로 적용된다.

Orthogonal Projection when yW 

만약 2차원 부분공간 W=Span{u1,u2}y가 포함되어 있다고 하면 프로젝션된 벡터 y^는 다음과 같이 구할 수 있다.
(48)y^=projLy=y=yu1u1u1u1+yu2u2u2u2
만약 u1,u2가 단위벡터이면 다음과 같다.
(49)y^=projLy=y=(yu1)u1+(yu2)u2
해는 y가 부분공간 W에 포함되어 있지 않은 경우와 동일하다.

Transformation: Orthogonal Projection

부분공간 W의 정규직교기저벡터 u1,u2가 있고 b를 부분공간 W에 프로젝션시킨 점 b^의 변환을 생각해보면
(50)b^=f(b)=(bu1)u1+(bu2)u2=(u1Tb)u1+(u2Tb)u2=u1(u1Tb)+u2(u2Tb)=(u1u1T)b+(u2u2T)b=(u1u1T+u2u2T)b=[u1 u2][u1Tu2T]b=UUTb Linear Transformation!

 

Orthogonal Projection Perspective

정규직교인 열벡터를 가지는 행렬 A=U=[u1 u2]가 있을 때 b 벡터를 Col A 공간으로 정사영시키는 경우
(51)b^=Ax^=A(ATA)1ATb=f(b)
행렬 C=ATAC=[u1Tu2T][u1 u2]=I와 같은 성질을 지니게 되고 따라서 다음과 같은 공식이 성립한다.
(52)b^=Ax^=A(ATA)1ATb=A(I)1ATb=AATb=UUTb

Gram-Schmidt Orthogonalization

벡터 x1=[360],x2=[122]로 인해 Span되는 부분공간 Wx1=Span[x1, x2]가 있을 때 두 벡터의 내적 x1x2=150이므로 두 벡터는 수직이 아니다.
이 때 벡터 v1=x1이라고 하고 v2x1에 수직인 x2의 성분이라고 했을 때
(53)v2=x2x2x1x1x1x1=[122]1545[360]=[002]
가 된다. 이 때 벡터 v1,v2는 부분공간 W의 직교기저벡터가 된다.

Chapter 3 - Eigenvectors and Eigenvalues

Eigenvectors and Eigenvalues

정방행렬 ARn×n에 대한 고유벡터(eigenvector)는 Ax=λx를 만족하는 0이 아닌 벡터 xRn을 말한다. 이 때 λ는 행렬 A의 고유값(eigenvalue)이라고 한다.
Ax=λx는 다음과 같이 다시 나타낼 수 있다.
(54)(AλI)x=0
이 때, 위 시스템이 x가 0이 아닌 비자명해를 가지고 있는 경우에만 λ 값이 행렬 A에 대한 고유값이 된다. 위와 같은 동차 선형시스템이 비자명해를 가지기 위해서는 AλI가 선형의존(Linearly Dependent)해야 무수히 많은 해를 가진다.

Null Space

행렬 ARm×n의 동차 선형시스템(Homogeneous Linear System) Ax=0의 해 집합을 영공간(Null Space)라고 한다. Nul A로 표기한다.
A=[a1Ta2TamT]일 때 벡터 x는 다음을 만족해야 한다.
(55)a1Tx=a2Tx==amTx=0
즉, x는 모든 A의 행벡터(Row Vector)과 직교해야 한다.

Orthogonal Complement

벡터 z가 부분공간 WRn의 모든 벡터와 직교하면 z는 부분공간 W와 직교한다고 말할 수 있다. 부분공간 W와 직교하는 모든 벡터 z의 집합을 직교여공간(Orthogonal Complement)라고 부르며 W로 표시한다.
부분공간 W의 직교여공간 W에 위치한 벡터 xRn는 부분공간 W를 Span하는 모든 벡터들과 직교한다.
(56)W  is a subspace of  Rn.NulA=(RowA)NulAT=(ColA)

Characteristic Equation

방정식 (AλI)x=0이 비자명해를 갖기 위해서는 (AλI) 행렬이 선형의존이어야 하고 이는 곧 역행렬이 존재하지 않아야 하는 것과 동치(Equivalent)이다. 만약 (AλI)이 역행렬이 존재한다면 x는 자명해 이외에는 갖지 못한다.
(57)(AλI)1(AλI)x=(AλI)10x=0
따라서 행렬 A에 대하여 고유값과 고유벡터가 존재하기 위해서는 다음의 방정식이 항상 성립해야 한다.
(58)det(AλI)=0
위 방정식을 행렬 A의 특성방정식(Characteristic Equation)이라고 부른다.

Eigenspace

(Aλx)x=0에서 (Aλx)의 영공간(Null Space)를 고유값 λ에 대한 고유공간(Eigenspace)라고 한다. λ에 대한 고유공간의 차원이 1 이상인 경우, 고유공간 내에 있는 모든 벡터들에 대하여 다음이 성립한다.
(59)T(x)=Ax=λx

Diagonalization

정방행렬 ARn×n이 주어졌고 VRn×n이고 DRn×n일 때
(60)D=V1AV
위와 같은 공식이 성립한다면 이를 정방행렬 A의 대각화(Diagonalization)라고 한다. 대각화는 모든 경우에 대해서 항상 가능한 것은 아니다. 행렬 A가 대각화되기 위해서는 역행렬이 존재하는 행렬 V가 존재해야 한다. 행렬 V가 역행렬이 존재하기 위해서는 V행렬 A와 같은 Rn×n 크기의 정방행렬이어야 하고 n개의 선형독립인 열벡터를 가지고 있어야 한다. 이 때, V의 각 열은 행렬 A의 고유벡터가 된다. 만약 행렬 V가 존재하는 경우 행렬 A대각화 가능(Diangonalizable)하다 고 한다.

Finding V and D 

대각화 공식은 다음과 같이 다시 작성할 수 있다.
(61)D=V1AVVD=AV
이 때, V=[v1v2vn]이고 D=[λ1000λ2000λn]이라고 하면
(62)AV=A[v1v2vn]=[Av1Av2Avn]VD=[v1v2vn][λ1000λ2000λn]=[λ1v1λ2v2λnvn]AV=VD[Av1Av2Avn]=[λ1v1λ2v2λnvn]
위 공식과 같이
(63)Av1=λ1v1,Av2=λ2v2,,Avn=λnvn
각각의 열이 모두 동일해야 한다. 즉, 벡터 vi는 행렬 A에 대한 고유벡터가 되어야 하고 스칼라 λi는 행렬 A에 대한 고유값이 되어야 한다. 이에 따라 대각행렬 D는 고유값들을 대각성분으로 포함하고 있는 행렬이 된다. 결론적으로 정방행렬 ARn×n가 대각화 가능한가 안한가에 대한 질문은 n개의 고유벡터가 존재하는가 안하는가에 대한 질문과 동치이다.

Eigendecomposition

정방행렬 A가 대각화 가능한 경우 D=V1AV 공식이 성립한다. 이 공식을 다시 작성하면 다음과 같다.
(64)A=VDV1
이를 행렬 A에 대한 고유값 분해(Eigendecomposition) 라고 한다. 행렬 A가 대각화 가능하다는 의미는 행렬 A가 고유값 분해 가능하다는 말과 동치이다.

Linear Transformation via Eigendecomposition

정방행렬 A가 대각화 가능한 경우 A=VDV1과 같이 고유값 분해가 가능하다. 이 때 선형 변환 T(x)=Ax을 생각해보면 다음과 같이 표현할 수 있다.
(65)T(x)=Ax=VDV1x=V(D(V1x))

Change of Basis

예를 들어 Av1=1v1,Av2=2v2가 성립한다고 가정하고 T(x)=Ax=VDV1x=V(D(V1x))에서 y=V1x라고 가정하면
(66)Vy=x
의 관계가 성립한다. 이 때, 벡터 y는 벡터 x의 고유벡터 {v1,v2}에 대한 새로운 좌표를 의미한다.
(67)x=[43]=4[10]+3[01]=[1001][43]=Vy=[v1  v2][y1y2]=2v1+1v2y=[21]

Element-wise Scaling

위 과정을 통해 y 값을 구하고 나면 T(x)=V(D(V1x))T(x)=V(Dy)로 표현할 수 있다. 이 때 z=Dy라고 하면 벡터 z는 단순히 벡터 y를 행렬의 대각 원소의 크기만큼 스케일링한 벡터가 된다.

Back to Original Basis

위 과정까지 진행했으면 T(x)=V(Dy)=Vz와 같이 나타낼 수 있고 이 때 벡터 z는 여전히 새로운 기저벡터 {v1  v2}를 기반으로 하면 좌표가 된다. Vz 연산은 벡터 z를 다시 원래 기저벡터의 좌표로 변환하는 역할을 한다. 벡터 Vz는 기존의 기저벡터 {v1  v2}의 선형결합이 된다.
(68)Vz=[v1v2][z1z2]=v1z1+v2z2
지금까지의 과정을 고유값 분해를 통한 선형 변환 이라고 한다.

Linear Transformation via Ak 

여러번의 변환이 중첩된 A×A××Ax=Akx를 생각해보자. 이 때, 행렬 A가 대각화 가능하다면 A를 고유값 분해할 수 있고 이 때, Ak는 다음과 같이 분해할 수 있다.
(69)Ak=(VDV1)(VDV1)(VDV1)=VDkV1
이 때 Dk는 다음과 같이 표현된다.
(70)Dk=[λ1k000λ2k000λnk]

Geometric Multiplicity and Algebraic Multiplicity

정방행렬 ARn×n이 있을 때 A가 대각화 가능한지 안한지 판단을 해야하는 경우 일반적으로 판별식을 사용하여 판단한다.
(71)det(AλI)=0
예를 들어 n=5인 정방행렬 A가 있을 때, det(AλI)는 5차 다항식이 나오게 된다. 5차 다항식은 일반적으로 5개의 해를 가지고 있지만 실수만 고려하는 경우 5개의 해가 계산되지 않을 수 있다. 즉, 실근이 5개가 나오지 않는 경우 n=5개의 선형독립인 고유벡터가 나오지 않으므로 대각화가 불가능하다.
만약 실근 중 중근이 포함되는 경우, 예를 들어 (λ2)2(λ3)=0과 같이 λ=2가 중근인 경우, λ=2로 인해 생성되는 고유공간(Eigenspace)의 차원이 최대 λ=2가 가지는 중근의 개수까지 가질 수 있다. 중근이 아닌 일반 실근의 경우 최대 1차원의 고유공간을 가질 수 있다. 즉, 중근이 포함된 경우 고유공간의 차원이 최대 n=5까지 생성될 수 있는데 n=5를 만족하지 못하는 경우에는 대각화가 불가능하다.
이와 같이 대수적으로 판별식을 인수분해했을 때, 중근이 생기는 경우 중근의 대수 중복도(Algebraic Multiplicity) 와 이로 인해 Span되는 고유공간의 기하 중복도(Geometric Multiplicity) 가 일치해야 n개의 독립적인 고유벡터가 생성될 수 있고 행렬 A의 대각화가 가능하다.

 

Chapter 4 - Singular Value Decomposition

Singular Value Decomposition

행렬 ARm×n이 주어졌을 때 특이값 분해(Singular Value Decomposition, SVD)는 다음과 같이 나타낼 수 있다.
(72)A=UΣVT
이 때, URm×m,VRn×n인 행렬이며 이들은 각 열이 Col A와 Row A에 의 정규직교기저벡터(Orthonormal Basis)로 구성되어 있다. ΣRm×n은 대각행렬이며 대각 성분들이 σ1σ2σmin(m,n) 특이값이며 큰 값부터 내림차순으로 정렬된 행렬이다.

SVD as Sum of Outer Products

행렬 A는 다음과 같이 외적(Outer Products)의 합으로 표현할 수 있다.
(73)A=UΣVT=i=1nσiuiviT,where  σ1σ2σn
이 때 위 식을 다시 행렬로 합성하면 URm×mURm×n 그리고 DRm×nDRn×n과 같이 행렬 VT의 차원에 맞게 다시 합성할 수 있는데 이를 Reduced Form of SVD 이라고 한다.
(74)A=UDVT

Another Perspective of SVD

행렬 ARm×n에 대해 Gram-Schmidt Orthogonalization을 사용하면 Col A에 대한 정규직교기저벡터 u1,,un와 Row A에 대한 정규직교기저벡터 v1,,vn을 구할 수 있다. 하지만 이렇게 계산한 정규직교기저벡터 ui,vi는 유일하지 않다.
Reduced Form of SVD를 사용하면 행렬 U=[u1u2un]Rm×nV=[v1v2vn]Rn 그리고 Σ=[σ1000σ2000σn]Rn×n 일 때
(75)AV=A[v1v2vn]=[Av1Av2Avn]UΣ=[u1u2un][σ1000σ2000σn][σ1u1σ2u2σnun]AV=UΣ[Av1Av2Avn]=[σ1u1σ2u2σnun]
위 식을 간결하게 나타내면 다음과 같다.
(76)AV=UΣA=UΣVT

Computing SVD

행렬 ARm×n에 대하여 AATATA는 다음과 같이 고유값분해할 수 있다.
(77)AAT=UΣVTVΣTUT=UΣΣTUT=UΣ2UTATA=VΣTUTUΣVT=VΣTΣUT=VΣ2VT
이 때 계산되는 행렬 U,V은 직교하는 고유벡터를 각 열의 성분으로 하는 행렬이며 대각행렬 Σ2의 각 성분은 항상 0보다 큰 양수의 값을 가진다. 그리고 AATATA를 통해 계산되는 Σ2의 값은 동일하다.

Diagonalization of Symmetric Matrices

일반적으로 정방행렬 ARn×nn개의 선형독립인 고유벡터를 가지고 있을 경우 대각화 가능하다. 그리고 대칭행렬 SRn×n,ST=S는 항상 대각화 가능하다. 추가적으로 대칭행렬 S의 고유벡터는 항상 서로에게 직교하므로 직교대각화(Orthogonally Diagonalizable)가 가능하다.

Spectral Theorem of Symmetric Matrices

ST=S를 만족하는 대칭행렬 S가 주어졌을 때 Sn개의 중근을 포함한 실수의 고유값이 존재한다. 또한, 고유공간의 차원은 기하 중복도(Algebraic Multiplicity)와 기하 중복도(Geometric Multiplicity)와 같아야 한다. 서로 다른 λ값 들에 대한 고유공간들은 서로 직교한다. 결론적으로 대칭행렬 S은 직교대각화가 가능하다.

Spectral Decomposition

대칭행렬 S의 고유값 분해는 Spectral Decomposition 이라고 불린다. 이는 다음과 같이 나타낼 수 있다.
(78)S=UDU1=UDUT=[u1u2un][λ1000λ2000λn][u1Tu2TunT]=[λ1u1λ2u2λnun][u1Tu2TunT]=λ1u1u1T+λ2u2u2T++λnununT
위 식에서 각 항 λiujujTuj에 의해 Span된 부분공간에 프로젝션된 다음 고유값 λi만큼 스케일된 벡터로 볼 수 있다.
 

Symmetric Positive Definite Matrices

행렬 SRn×n이 대칭이면서 Positive Definite인 경우 Spectral Decomposition의 모든 고유값은 항상 양수가 된다.
(79)S=UDU1=UDUT=[u1u2un][λ1000λ2000λn][u1Tu2TunT]=λ1u1u1T+λ2u2u2T++λnununTwhere, λj>0,j=1,,n

Back to Computing SVD

행렬 A에 대하여 AAT=ATA=S인 대칭행렬이 존재할 때 S가 Positive (Semi-)Definite한 경우
(80)xTAATx=(ATx)T(ATx)=ATx0xTATAx=(Ax)T(Ax)=Ax20
즉, AAT=UΣ2UTATA=VΣ2VT에서 Σ2의 값은 항상 양수가 된다.
임의의 직각 행렬 ARm×n에 대하여 특이값 분해는 언제나 존재한다. ARn×n 행렬의 경우 고유값 분해가 존재하지 않을 수 있지만 특이값 분해는 항상 존재한다. 대칭이면서 동시에 Positive Definite인 정방 행렬 SRn×n은 항상 고유값 분해값이 존재하며 이는 특이값 분해와 동일하다.

Eigendecomposition in Machine Learning

일반적으로 기계학습에서는 대칭이고 Positive Definite인 행렬을 다룬다. 예를 들면, AR10×3인 행렬이 있고 각 열은 사람을 의미하고 각 행은 Feature를 의미한다고 가정했을 때, ATAR3×3는 각 사람들 간 유사도 를 의미하고 AATR10×10는 각 Feature들의 상관관계를 의미한다. 이 때, AAT는 주성분분석(Principal Component Analysis)에서 Covariance Matrix를 구할 때 사용된다.

Low Rank Approximation of a Matrix

행렬 ARm×n이 주어졌을 때 예를 들어, A의 원래 rank가 r일 때, 행렬 A에서 rank를 r 이하를 가진 근사행렬 A^을 찾는 Low Rank Approximation을 수행할 수 있다.
(81)A^r=argminA^rAArF,  subject to rankArrA^r=i=1rσiuiviTwhere, σ1σ2σr

Dimension Reducing Transformation

Feature-by-data item 행렬 ARm×n이 주어졌을 때 GRm×r,r<m인 변환 GT:xRmyRr을 생각해보면
(82)yi=GTai
가 성립하고 G 의 각 열들은 정규직교벡터이며 데이터의 유사도 행렬 S=ATA의 유사도를 보존하는 변환 G를 차원 축소 변환(Dimension-Reducing Transformation) 이라고 한다.
(83)Y=GTAYTY=(GTA)TGTA=ATGGTA
이 때 차원축소변환 G^ 은 다음과 같이 추정할 수 있다.
(84)G^=argminGSATGGTAF  subject to GTG=Ik
주어진 행렬 A=UΣVT=i=1nσiuiviT에 대하여 최적의 해는 다음과 같다.
(85)G^=Ur=[u1u2ur]
 

Chapter 5 - Derivative of multi-variable function

Gradient

임의의 벡터 xRn에 대하여 f(x)R를 만족하는 다변수 스칼라 함수 f(x)가 주어졌다고 하자. 
(86)f:RnR 

f(x)에 대한 1차 편미분은 벡터가 되고 이는 그레디언트(gradient)라고 불린다.
(87)f=(fx1fxn)R1×n

Jacobian matrix

임의의 벡터 xRn에 대하여 f(x)Rm를 만족하는 다변수 벡터 함수 f(x)가 주어졌다고 하자. 
(88)f:RnRm 

이 때, f()의 1차 편미분은 행렬이 되고 이를 특별히 자코비안(jacobian) 행렬이라고 한다.
(89)J=[f1x1f1xnfmx1fmxn]Rm×n 

이를 통해 자코비안 행렬의 각 행벡터(row vector)는 함수 fm()에 대한 그레디언트라는 것을 알 수 있다.
. 위 식을 미소변화량 h를 사용하여 나타내면 다음과 같다.
(90)J=f(x)xlimh0f(x+h)f(x)hRm×n 

 

SLAM에서 자코비안은 에러 e(x)를 최적화할 때 사용된다. SLAM에서 최적화하고자 하는 에러는 일반적으로 비선형 함수로 구성되어 있으며 크기가 작기 때문에 에러의 변화량 e(x+Δx)를 그대로 사용하지 않고 테일러 전개하여 근사식 e(x)+JΔx으로 표현하게 되는데 이 때 에러에 대한 자코비안 J가 유도된다. 그리고 근사식을 바탕으로 유도한 에러의 최적 증분량 Δx=(JJ)1Jb이 자코비안을 통해 구해지기 때문에 SLAM에서는 자코비안이 필수적으로 사용된다. 자세한 내용은 https://alida.tistory.com/65#sec2  포스트를 참조하면 된다.

 

Toy example 1

만약 x={a,b,c}일 때 f(x)=f(a,b,c)를 각각의 변수 a,b,c에 대해 편미분하면 다음과 같다.

(91)J=f(x)x=[JaJbJc]

(92)Ja=f(a,b,c)aJb=f(a,b,c)bJc=f(a,b,c)c

 

만약 a=a0로 계산값(=operating point)이 정해진 경우 자코비안은 다음과 같다.

(93)Ja=f(a,b,c)a|a=a0Jb=f(a,b,c)b|a=a0,b=b0Jc=f(a,b,c)c|a=a0,c=c0

 

위 첫번째 식은 f(a,b,c)a에 대해 편미분한 후 a=a0를 넣어 값을 계산하라는 의미이고 두번째와 세번째 식은 a=a0로 값을 고정한 상태에서 각각 b=b0,c=c0에 대한 편미분을 수행하라는 의미이다.

Toy example 2
예를 들어 다음과 같은 3개의 연립 방정식이 주어졌다고 하자. 
(94)f(x)={f1(x)=ax2+2bx+cyf2(x)=dx3+exf3(x)=fx+gy2+hy

x=(x,y)를 의미한다. 위 함수는 다음과 같이 쓸 수 있다.
(95)f:R2R3 

자코비안의 정의에 따라 이를 아래와 같이 쓸 수 있다.
(96)J=[f1xf1yf2xf2yf3xf3y]=[2ax+2bc3dx2+e0f2gy+h]R3×2

Hessian matrix

임의의 벡터 xRn에 대하여 f(x)R를 만족하는 다변수 스칼라 함수 f(x)가 주어졌다고 하자. 
(97)f:RnR 

이 때, f()의 2차 편미분은 행렬이 되고 이를 특별히 헤시안(hessian) 행렬이라고 한다. 헤시안 행렬은 일반적으로 대칭행렬의 형태를 띄고 있으며 다변수 벡터 함수가 아닌 다변수 스칼라 함수에 대한 2차 미분임에 유의한다. 
(98)H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2]Rn×n 

 

헤시안 행렬 H는 자코비안 J의 미분 행렬이 아님에 유의한다. 자코비안 J다변수 벡터 함수에 대한 1차 미분 행렬을 의미하는데 반해 헤시안 행렬 H다변수 스칼라 함수의 2차 미분 행렬을 의미한다. 다변수 스칼라 함수의 1차 미분은 그라디언트 f 벡터이다.  일반적으로 다변수 벡터 함수의 2차 미분은 정의되지 않는다.
(99)f:RnRthen,f:fgradientf:Hhessian
(100)f:RnRmthen,f:Jjacobian

Laplacian

임의의 벡터 xRn에 대하여 f(x)R를 만족하는 다변수 스칼라 함수 f(x)가 주어졌다고 하자. 
(101)f:RnR 

f(x)에 대한 라플라시안(laplacian)은 각 입력 벡터에 따른 2차 편미분의 합으로 정의된다.
(102)2f=2fx12+2fx22++2fxn2R1×n

Taylor expansion

테일러 전개(expansion)은 미지의 함수 f(x)x=a 지점에서 근사 다항함수로 표현하는 방법을 말한다. 이는 테일러 급수(series) 또는 테일러 근사(approximation)이라고도 불린다. f()x=a 부근에서 테일러 전개를 수행하면 다음과 같이 나타낼 수 있다.
(103)f(x)|x=a=f(a)+f(a)(xa)+12!f(a)(xa)2+13!f(a)(xa)3+

함수 f()가 다변수 스칼라 함수일 경우 x=a 지점에서 테일러 전개는 다음과 같이 쓸 수 있다. 
(104)f(x)|x=a=f(a)+f(xa)+12!(xa)H(xa)+

이 때, f는 함수 f()의 그레디언트(gradient) 의미하며 H는 헤시안(hessian) 행렬을 의마한다.
 

References

[1] (Lecture) 인공지능을 위한 선형대수 - 주재걸 교수님 (edwith)

[2] (Book) Kay, Steven M. Fundamentals of statistical signal processing: estimation theory. Prentice-Hall, Inc., 1993.
[3] (Blog) 다크프로그래머 - Gradient, Jacobian 행렬, Hessian 행렬, Laplacian
[4] (Blog) [행렬대수학] 행렬식(Determinant) 1 - 행렬식의 개념

[6] (Pdf) Pseudo Inverse 유도 과정
[7] (Youtube) Matrix Inversion Lemma 강의 영상 - 혁펜하임