Basic Linear Algebra

고영민·2021년 12월 23일
0
post-thumbnail

해당 포스트는 computer vision과 관련하여 필요한 선형대수 내용을 정리한 것이다. 모든 내용을 숙지하면 좋지만 해당 시리즈를 읽으며 필요한 부분을 그때마다 찾아 읽어도 좋을 것 같다.

1. Vector Space

어떤 set V가 다음과 같은 vector summation과 scalar multiplication에 대해 닫혀있을 때, set V를 linear space 또는 vector space (over the field R)이라고 한다.

+:V×VV+ : V \times V \rightarrow V
:R×VV\cdot :R \times V \rightarrow V

이를 통해 0과 음의 원소의 존재 (+연산을 이용), α(βu)=(αβ)u\alpha(\beta u) = (\alpha\beta)u 와 같은 결합법칙(scalar multiplication을 이용) 등을 유추할 수 있으며, (α+β)v=αv+βv,andα(v+u)=αv+αu(\alpha + \beta)v = \alpha v + \beta v, and \alpha(v + u) = \alpha v + \alpha u 와 같은 분배법칙 또한 두 연산의 조합으로 유추할 수 있다.

이러한 vector space V의 subset인 W가 V와 마찬가지로 vector summation과 scalar multiplication에 대해 닫혀있으며 0을 포함하고 있을때 W를 subspace라고 한다.

2. Matrix

행렬(matrix)는 여러 변수를 다루는 시스템 등을 나타낼 수 있으며, 어떠한 변환을 나타내기도 한다. 여기서는 행렬과 관련된 여러 용어와 성질들을 간단히 소개한다.

A=(a11a1nam1amn)A = \begin{pmatrix} a_{11} & \cdots & a_{1n}\\ \vdots & \ddots & \vdots\\ a_{m1} & \cdots & a_{mn} \end{pmatrix}
  • Row: (a11a1n),(a21a2n),,(am1amn)(a_{11} \cdots a_{1n}), (a_{21} \cdots a_{2n}), \cdots, (a_{m1} \cdots a_{mn}) 등을 같은 행에 있다고 한다.
  • Row vector: (a11a1n),(a21a2n),,(am1amn)(a_{11} \cdots a_{1n}), (a_{21} \cdots a_{2n}), \cdots, (a_{m1} \cdots a_{mn}) 등 같은 행에 있는 원소들을 하나의 벡터로 보았을 때, 이들을 행벡터라고 한다.
  • Row space: row vector들을 선형 결합하여 만들어지는 공간
  • Column: (a11am1),(a12am2),,(a1namn)(a_{11} \cdots a_{m1}), (a_{12} \cdots a_{m2}), \cdots, (a_{1n} \cdots a_{mn})
  • Column vector: 같은 column에 있는 원소들이 이루는 벡터
  • Column space: column vector들을 선형 결합하여 만들어지는 공간
  • 행렬곱: 두 행렬의 곱(크기에 주의 m×nm \times n 행렬 AAn×mn \times m 행렬 BB를 곱하고 있다)
    AB=(a11a1nam1amn)(b11b1mbn1bnm)=(a11b11++a1nbn1a11b1m++a1nbnmam1b11++amnbn1am1b1m++amnbnm)AB = \begin{pmatrix} a_{11} & \cdots & a_{1n}\\ \vdots & \ddots & \vdots\\ a_{m1} & \cdots & a_{mn} \end{pmatrix}\begin{pmatrix} b_{11} & \cdots & b_{1m}\\ \vdots & \ddots & \vdots\\ b_{n1} & \cdots & b_{nm} \end{pmatrix} = \begin{pmatrix} a_{11}b_{11}+\cdots+a_{1n}b_{n1} & \cdots & a_{11}b_{1m}+\cdots+a_{1n}b_{nm}\\ \vdots & \ddots & \vdots\\ a_{m1}b_{11}+\cdots+a_{mn}b_{n1} & \cdots & a_{m1}b_{1m} +\cdots+a_{mn}b_{nm} \end{pmatrix}
  • square matrix(정방 행렬): row와 column의 길이가 같은 n×nn \times n 행렬
  • Identity matrix(단위 행렬): II로 표현하며, AI=IA=AAI=IA=A가 되는 행렬 (아래는 3×33 \times 3 행렬의 예시).
    I=(100010001)I = \begin{pmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1 \end{pmatrix}
  • Inverse matrix(역 행렬):A1A^{-1}로 표현하며, AA1=A1A=IAA^{-1}=A^{-1}A=I가 되는 행렬
  • Transpose: 행렬의 행과 열을 서로 바꾼것
    AT=(a11am1a1namn)A^T = \begin{pmatrix} a_{11} & \cdots & a_{m1}\\ \vdots & \ddots & \vdots\\ a_{1n} & \cdots & a_{mn} \end{pmatrix}
  • Diagonal matrix: square matrix 행렬의 대각성분, a11,,anna_{11}, \cdots, a_{nn}을 제외한 나머지 성분이 0인 행렬

3. Linear Independence and Basis

Vector들의 집합 S={v1,...,vk}VS = \{ v_1, ... , v_k \} \subset V에 의해 span 되는 subspace는 S에 속해있는 vector들로 구성할 수 있는 모든 linear combinations으로 이루어진 subspace를 의미하며, 다음과 같이 표현할 수 있다.

span(S)={vVv=i=1kαivi}span(S) = \{ v \in V | v = \sum_{i=1}^{k}{\alpha_i v_i} \}

또한 set S가 다음을 만족하면 linearly independent하다고 하며, 이는 S에 속해있는 어떤 vector v를 나머지 다른 vector들의 linear combination으로 나타낼 수 없다는 의미이다.

i=1kαivi=0αi=0    i\sum_{i=1}^{k}{\alpha_i v_i} = 0 \rightarrow \alpha_i = 0 \;\; \forall i

Vector들의 집합 B={v1,...,vn}B = \{ v_1, ..., v_n \}이 linearly independent하며 space V를 span할 수 있을 때 B를 space V의 basis라고 하며, basis는 linearly independent vector들의 최대 집합이다.

이러한 basis는 아래와 같은 성질을 가지고 있다.(아래에서 B와 B'은 linear space V의 basis들입니다.)

  • B와 B'은 같은 수의 원소(vector)를 포함하고 있으며, 이 숫자 n을 space V의 dimension(차원)이라고 한다.

  • V에 속해있는 모든 vector v는 basis vector들(B에 속해있는 vector들)의 linear combination에 의해 unique하게 표현된다.(즉 basis vector들로 해당 vector v를 표현하는 방법은 한가지 뿐입니다.)

  • B의 모든 vector들은 또다른 basis인 biBb'_i \in B' 의 linear combination으로 다음과 같이 표현될 수 있다.

bi=j=1nαjibjb'_i = \sum_{j=1}^{n}{\alpha_{ji} b_j}

위의 세번째 성질에서 나타나는 coefficient αji\alpha_{ji}를 이용하여 basis transform을 나타내는 matrix A를 만들 수 있으며, B=BAB=BA1B' = BA \Leftrightarrow B=B'A^{-1}이라고 할 수 있다.

4. Inner Product

Vector space에서는 다음과 같은 inner product라는 연산을 정의할 수 있다.

,:V×VR\langle \cdot, \cdot \rangle : V \times V \rightarrow R

이러한 inner product는 다음과 같은 세가지 성질을 갖는다.

  • u,αv+βw=αu,v+βu,w\langle u, \alpha v + \beta w \rangle = \alpha \langle u, v \rangle + \beta \langle u, w \rangle (linear)

  • u,v=v,u\langle u, v \rangle = \langle v, u \rangle (symmetric)

  • v,v0  ,and  v,v=0v=0\langle v, v \rangle \geq 0 \; , and \; \langle v, v \rangle = 0 \Leftrightarrow v = 0 (positive definite)

내적을 통해 다음과 같이 vector의 norm(vector의 길이를 계산)과 metric(두 vector간 거리를 계산)을 계산할 수도 있다.

:VR,  v=v,v    (norm)| \cdot | : V \rightarrow R, \; |v| = \sqrt{\langle v, v \rangle} \; \; (norm)
d:V×VR,  d(v,w)=vw=vw,vw    (metric)d : V \times V \rightarrow R, \; d(v,w) = |v-w| = \sqrt{\langle v-w, v-w \rangle} \; \; (metric)

이와 같이 space V에서 scalar product로 생성되는 metric을 Hilbert space라고 한다.

V=RnV = R^n에서 basis가 canonical basis B=InB = I_n일 경우 아래와 같이 canonical inner product를 정의할 수 있다.(InI_n을 identity matrix(단위행렬)에서 대각성분들이 n인 행렬)

x,y=xTy=i=1nxiyj\langle x, y \rangle = x^T y = \sum_{i=1}^{n}{x_i y_j}

또한 이로부터 L2-norm(또는 Euclidean norm)을 정의할 수 있다.

x2=xTx=x12++xn2|x|_2 = \sqrt{x^T x} = \sqrt{x_1^2 + \cdot \cdot \cdot + x_n^2}

그리고 위에서 정의했던 basis transform A를 이용하여 다른 coordinate에서의 cannonical inner product를 계산할 수 있다.

Canonical basis B에서 B'사이의 basis transform가 A일때, B=BA1B=B' A^{-1}이라고 할 수 있으며, 새로운 coordinate x', y'의 cannonical inner product는 다음과 같다.

x,y=xTy=(Ax)T(Ay)=xTATAyx,yATA\langle x, y \rangle = x^T y = (Ax')^T(Ay') = x'^T A^T A y' \equiv \langle x', y' \rangle_{A^T A}

위의 식에서 두번째 term과 세번째 term 사이에 x=Ax,y=Ayx=Ax', y=Ay'의 관계가 존재한다.

이 부분에 대해서는 다음과 같이 이해를 해도 좋을 것 같다.


어떤 point를 basis B={b1,b2}B' = \{ b'_1, b'_2 \}의 coordinate에서 바라본 좌표가 x=(α,β)Tx'=(\alpha', \beta')^T이라고 하면, 이 point의 정확한 위치는 αb1+βb2\alpha' b'_1 + \beta' b'_2라고 할 수 있고, 이를 정리하면 다음과 같다.

B=[b1b2]B' = \begin{bmatrix} b'_1 & b'_2 \end{bmatrix}
αb1+βb2=B(αβ)=Bx\alpha' b'_1 + \beta' b'_2 = B' \begin{pmatrix} \alpha' \\ \beta' \end{pmatrix} = B'x'

이때, B=BAB' = BA이므로 위의 수식은 다음과 같이 정리될 수 있다.

Bx=BAxB'x'= BAx'

만약 해당 point를 B의 coordinate에서 보았을 때, 해당 point의 위치는 BxBx의 형태로 나타날 것으므로 위의 식에서 AxAx' 부분이 x에 해당함을 알 수 있다.

즉, basis transform matrix가 주어졌을 때, 이를 주어진 vector에 곱함으로써 다른 좌표계에서의 해당 vector의 좌표값을 얻을 수 있다.


추가적으로 내적을 이용하여 두 vector의 orthogonal(직교)를 다음과 같이 정의할 수 있다.

v,w=0\langle v, w \rangle = 0

5. Kronecker Product and Stack of a Matrix

두 matrix AR(m×n)A \in R^(m \times n)AR(k×l)A \in R^(k \times l)이 주어졌을때 이들의 Kronecker product를 다음과 같이 정의할 수 있다.

AB(a11Ba1nBam1BamnB)Rmk×nlA \otimes B \equiv \begin{pmatrix} a_{11}B & \cdots & a_{1n}B\\ \vdots & \ddots & \vdots\\ a_{m1}B & \cdots & a_{mn}B \end{pmatrix} \in R^{mk \times nl}

또한 주어진 ARm×nA \in R^{m \times n}의 stack AsA^s는 다음과 같이 A에 속해있는 n개의 column vector들을 쌓은 것으로 정의할 수 있다.

As(a1an)RmnA^s \equiv \begin{pmatrix} a_1\\ \vdots\\ a_n \end{pmatrix} \in R^{mn}

위의 두 notation을 통해 아래와 같이 기존의 식으로 새롭게 표현할 수 있다.

uTAv=(vu)TAsu^TAv = (v \otimes u )^T A^s

6. Linear Transformations and Matrices

Linear transform은 두 linear space V, W 사이의 map L:VWL : V \rightarrow W로 정의되며, 다음과 같은 성질을 가지고 있어야 한다.

  • L(x+y)=L(x)+L(y)      x,yVL(x+y) = L(x) + L(y) \;\;\; \forall x, y \in V
  • L(αx)=αL(x)      xV,αRL(\alpha x) = \alpha L(x) \;\;\; \forall x \in V, \alpha \in R

또한 space V에 적용되는 linear transform L은 V의 basis vector들로 정의 될 수 있으며, canonical basis {e1,,en}\{ e_1 , \cdots, e_n \}의 경우에는 다음과 같다.

L(x)=Ax      xVA=(L(e1),,L(en))R(m×n)L(x) = Ax \;\;\; \forall x \in V \\ A = (L(e_1), \cdots , L(e_n)) \in R^{(m \times n)}

이때 실수로 정의되는 모든 m x n matrix들은 M(m,n)M(m,n)으로 표시한다.

7. The Linear Groups GL(n) and SL(n)

여러가지 linear transformation 중 몇몇은 집합 G와 함께 group을 이루기도 한다.

group은 연산 :G×GG\circ : G \times G \rightarrow G와 set G가 함께 구성하며, 다음과 같은 성질을 가지고 있어야 한다.

  • closed: g1g2G      g1,g2Gg_1 \circ g_2 \in G \;\;\; \forall g_1, g_2 \in G
  • assoc: (g1g2)g3=g1(g2g3)      g1,g2,g3G(g_1 \circ g_2) \circ g_3 = g_1 \circ (g_2 \circ g_3) \;\;\; \forall g_1, g_2, g_3 \in G
  • neutral: eG:eg=ge=g      gG\exists e \in G: e \circ g = g \circ e = g \;\;\; \forall g \in G
  • invers: g1G:gg1=g1g=e      gG\exists g^{-1} \in G: g \circ g^{-1} = g^{-1} \circ g = e \;\;\; \forall g \in G

이러한 정의에 몇가지 특성을 추가하여 다음과 같은 group들을 정의할 수도 있다.

  • 모든 invertible(non-singular) real n x n matrix들은 matrix multiplication과 함께 group을 이루며, 이러한 group을 general linear group(일반선형군) GL(n)이라고 합니다. 즉 GL(n)은 det(a)0det(a) \neq 0인 모든 AM(n)A \in M(n)을 포함하고 있다.

  • 이러한 AGL(n)A \in GL(n) 중 det(a) = 1 인 matrix들이 이루고 있는 group을 special linear group(특수선형군) SL(n)이라고 한다.

또한 어떤 group G와 GL(n) 사이에 injective(단사) transformation, R:GGL(n)R:G \rightarrow GL(n)이 존재할 경우 G는 matrix representation을 가지고 있다고 하며, 다음과 같은 연산도 가능한다.

R(e)=In×n            R(gh)=R(g)R(h)      g,hGR(e) = I_{n \times n} \;\;\;\;\;\; R(g \circ h) = R(g)R(h) \;\;\; \forall g,h \in G

이때, map R을 group homomorhphism이라고도 한다.

이러한 matrix representation은 추상적인 group을 분석할 때 이에 해당하는 matrix group의 성질을 살핌으로써 좀 더 직관적인 분석이 가능하도록 한다.

예를 들어 어떤 객체의 회전에 대한 group의 경우 neutral element는 회전이 없는 변환, inverse는 역회전, 여러 matrix의 곱은 회전의 반복 등에 대응한다.

다음은 몇가지 자주 등장하는 group에 대한 설명이다.

7-1. The Affine Group A(n)

Affine transformation L:RnRnL: R^n \rightarrow R^n은 matrix AGL(n)A \in GL(n)과 vector bRnb \in R^n에 의해 다음과 같이 정의된다.

L(x)=Ax+bL(x) = Ax + b

이와 같은 affine transformation의 set을 affine group of dimentsion n이라고 하며, A(n)으로 나타낸다.

위의 정의된 식에 따르면 b=0이 아닌 이상 L은 linear하지 않지만 xRnx \in R^n(x1)Rn+1\begin{pmatrix} x\\ 1 \end{pmatrix} \in R^{n+1}과 같이 나타내는 homogeneous coordinates를 사용하면 다음과 같이 linear mapping으로 표현할 수 있다.

L:Rn+1Rn+1            (x1)(Ab01)(x1)L: R^{n+1} \rightarrow R^{n+1} \;\;\;\;\;\; \begin{pmatrix} x\\ 1 \end{pmatrix} \rightarrow \begin{pmatrix} A&b\\ 0&1 \end{pmatrix} \begin{pmatrix} x\\ 1 \end{pmatrix}

이때 A와 b로 이루어진 matrix를 affine matrix라고 하며, 이는 GL(n+1)에 속하고, 이러한 affine matrix들의 집합은 GL(n+1)의 subgroup이다.

7-2. The Orthogonal Group O(n)

Matrix AM(n)A \in M(n)이 다음과 같이 inner product를 보존하는 경우 orthogonal 하다고 한다.

Ax,Ay=x,y      x,yRn\langle Ax, Ay \rangle = \langle x, y \rangle \;\;\; \forall x, y \in R^n

모든 orthogonal matrix들의 set은 othogonal group O(n)를 이루며, 이는 GL(n)의 subgroup이다.

Othogonal matrix R을 cononical inner product에 적용할 경우 Rx,Ry=xTRTRy=xTy      x,yRn\langle Rx, Ry \rangle = x^T R^T R y = x^T y \;\;\; \forall x,y \in R^n가 되어야 하므로 RTR=RRT=IR^T R = R R^T = I라는 결론이 나오며, 이를 이용하면 O(n)을 다음과 같이 정의할 수도 있다.

O(n)={RGL(n)RtR=I}O(n) = \{ R \in GL(n) | R^t R = I \}

이로부터 det(R){±1}det(R) \in \{ \pm 1 \}을 만족할 경우 det(RTR)=(det(R))2=det(I)=1det(R^T R) = (det(R))^2 = det(I) = 1을 유추할 수 있고, O(n)의 subgroup이 det(R){±1}det(R) \in \{ \pm 1 \}를 만족할 경우 이 subgroup을 special orthogonal group SO(n)이라고 하며, SO(n)=O(n)SL(n)SO(n) = O(n) \cap SL(n) 이다.(특히 SO(3)은 3차원에서의 모든 회전 변환 matrix의 group이다.)

또한 RtR=IR^t R = I의 는 RR의 각 row vector 또는 각 column vector 끼리 orthogonal함을 의미하며, 두 orthogonal matrix A,BA, B의 곱인 ABAB 또한 orthognal하다.

  • (AB)TAB=BTATAB=BTIB=BTB=I(AB)^T AB = B^T A^T A B = B^T I B = B^T B = I

그리고 inner product를 보존하는 성질에 따라서 orthogonal matrix에 의한 변환은 벡터의 크기를 보존한다.

  • Rx=Rx,Rx=xTx=x\mid Rx \mid = \langle Rx, Rx \rangle = x^T x = \mid x \mid

7-3. The Euclidean Group E(n)

Euclidean transformation은 다음과 같이 orthogonal matrix와 vector로 정의 된다.

L:RnRn            xRx+TL: R^n \rightarrow R^n \;\;\;\;\;\; x \rightarrow Rx + T

이러한 transformation의 집합을 Eculidean group E(n)이라고 하며, 이는 affine group A(n)의 subgroup이다.

Eucliean transformation을 homogeneous coordinates로 나타내면 다음과 같다.

E(n)={(RT01)RO(n),TRn}E(n) = \left\{ \begin{pmatrix} R&T\\ 0&1 \end{pmatrix} | R \in O(n), T \in R^n \right\}

이때 RSO(n)R \in SO(n)이면 special Euclidean group SE(n)이라고 하고, 특히 SE(3)은 rigid-body motion을 나타낸다.

8. Range, Span, Null Space and Kernel, and Rank

ARm×nA \in R^{m \times n}RnR^n에서 RmR^m으로의 linear map을 정의하는 matrix라고 할 때, A의 range 또는 span은 A에 의해 변환되어 도달할 수 있는 RmR^m의 subspace로 정의되며, 즉, matrix A의 range는 A의 column vector들의 span이라고 할 수 있고, 다음과 같이 나타낼 수 있다.

range(A)={yRmxRn:Ax=y}range(A) = \{ y \in R^m | \exists x \in R^n : Ax = y \}

Matrix A의 null space 또는 kernel은 A에 의해 0으로 mapping되는 vector들의 집합이며, 즉, A의 row vector들에 orthogonal한 vector의 집합이고, 다음과 같이 나타낼 수 있다.

null(A)ker(A)={xRnAx=0}null(A) \equiv ker(A) = \{ x \in R^n | Ax = 0 \}

Matrix A의 rank는 range의 dimension이다.

rank(A)=dim(range(A))rank(A) = dim(range(A))

Matrix ARm×nA \in R^{m \times n}의 rank는 다음과 같은 성질을 갖는다.

  • 차원정리: rank(A)+dim(ker(A))=rank(A)+nullity(A)=nrank(A) + dim(ker(A)) = rank(A) + nullity(A) = n

  • 0rank(A)min(m,n)0 \leq rank(A) \leq min(m,n)

  • rank(A) = rank(ATA^T)

  • rank(A)rank(A)는 A의 row vector(또는 column vector) 중 서로 linearly independent한 vector들의 최대 갯수와 같다.

  • rank(A)는 A의 minor 중 0이 아닌 것들의 hightest order와 같으며, 여기서 minor of order k는 A의 k x k submatrix의 determinant이다.

  • Sylvester's inequality: BRn×kB \in R^{n \times k}일때 ABRm×kAB \in R^{m \times k}이며, rank(A)+rank(B)nrank(AB)min(rank(A),rank(B))rank(A) + rank(B) -n \leq rank(AB) \leq min(rank(A), rank(B))

  • 모든 nonsingular matrix CRm×mC \in R^{m \times m}, DRn×nD \in R^{n \times n}에 대해 rank(A)=rank(CAD)rank(A) = rank(CAD)

9. Determinant and Inverse

이 글에서는 3×33 \times 3을 기준으로 determinant(행렬식)과 inverse(역행렬)을 설명하지만, n×nn \times n으로도 확장 가능하다.

A=(a11a12a13a21a22a23a31a32a33)A = \begin{pmatrix} a_{11} & a_{12} & a_{13}\\ a_{21} & a_{22} & a_{23}\\ a_{31} & a_{32} & a_{33} \end{pmatrix}

위의 행렬에 대한 determinant는 다음과 같다.

det(A)=i,j,kϵijkai1aj2ak3det(A) = \sum_{i,j,k}{\epsilon_{ijk}a_{i1}a_{j2}a_{k3}}

이때, ϵijk\epsilon_{ijk}는 levi-civita라고 하며, 다음과 같은 성질을 갖는다.

  • ϵ123=1\epsilon_{123}=1
  • ϵ\epsilon 아래 첨자가 바뀌면 마이너스 (ϵ213=1\epsilon_{213}=-1, ϵ132=1\epsilon_{132}=-1)
  • 따라서 아래 첨자가 짝수번 바뀌면 다시 플러스 (ϵ231=1\epsilon_{231}=1, (1,2,3)(2,1,3)(2,3,1)(1,2,3) \rightarrow (2,1,3) \rightarrow (2,3,1))
  • 그 외의 경우, 즉, 첨자에 중복되는 수가 있는 경우는 0 (ϵ223=0\epsilon_{223}=0, ϵ133=0\epsilon_{133}=0)

위의 정의에서 다음의 성질을 유추할 수 있다.

  • det(A)=det(AT)det(A)=det(A^T)
  • det(AB)=det(A)det(B)det(AB)=det(A)det(B)
  • AA의 어느 열/행의 정수배를 다른열/행에 더해도 행렬식은 변하지 않는다.

행렬식은 주어진 행렬에 대해 해당하는 변환이 갖는 부피 변화율이라고 볼 수도 있다.

A=(aTbTcT)=(a1a2a3b1b2b3c1c2c3)A = \begin{pmatrix} \mathbf{a^T}\\ \mathbf{b^T}\\ \mathbf{c^T} \end{pmatrix}= \begin{pmatrix} a_{1} & a_{2} & a_{3}\\ b_{1} & b_{2} & b_{3}\\ c_{1} & c_{2} & c_{3} \end{pmatrix}

이때, 행렬식은 다음과 같이 표현될 수 있다.

det(A)=i,j,kϵijkaibjck=iaij,kϵijkbjck=ab×cdet(A) = \sum_{i,j,k}{\epsilon_{ijk}a_{i}b_{j}c_{k}} = \sum_{i}{a_{i}\sum_{j,k}{\epsilon_{ijk}b_{j}c_{k}}} = \mathbf{a} \cdot {\mathbf{b} \times \mathbf{c}}

이는 벡터 a,b,c\mathbf{a}, \mathbf{b}, \mathbf{c}가 그리는 기둥의 부피이다.


Figure 1. 행렬식과 부피

여기서 det(A)=det(AT)det(A)=det(A^T)이고, ATA^T에서 생각해보면 단위벡터 e1=(1,0,0),e2=(0,1,0),e3=(0,0,1)\mathbf{e_1}=(1,0,0), \mathbf{e_2}=(0,1,0), \mathbf{e_3}=(0,0,1)a,b,c\mathbf{a}, \mathbf{b}, \mathbf{c}로 변환되고, 즉, 단위벡터가 그리는 부피 1짜리 큐브는 figure 1과 같은 모양으로 변환된다.

Determinant를 표현하는 다른 형태의 식으로 minor(소행렬)과 cofactor(여인수)를 이용할 수 있다. 다음과 같이 행렬식을 써보자.

det(A)=i,j,kϵijka1ia2ja3k=ia1ij,kϵijka2ja3k=a11j,kϵ1jka2ja3k+a12j,kϵ2jka2ja3k+a13j,kϵ3jka2ja3kdet(A) = \sum_{i,j,k}{\epsilon_{ijk}a_{1i}a_{2j}a_{3k}} = \sum_{i}{a_{1i}\sum_{j,k}{\epsilon_{ijk}a_{2j}a_{3k}}}\\ =a_{11}\sum_{j,k}{\epsilon_{1jk}a_{2j}a_{3k}} + a_{12}\sum_{j,k}{\epsilon_{2jk}a_{2j}a_{3k}} + a_{13}\sum_{j,k}{\epsilon_{3jk}a_{2j}a_{3k}}

Minor matrix MijM_{ij}는 A에서 i번째 row와 j번째 column을 제거한 행렬이며, minor matrix의 행렬식 det(Mij)det(M_{ij})를 이용하여 다음과 같이 cofactor를 정의할 수 있다.

Aij(1)i+jdet(Mij)A_{ij} \equiv (-1)^{i+j} det(M_{ij})

이러한 cofactor를 이용하면 다음과 같이 행렬 AA의 행렬식을 간단하게 표현 가능하다(여인수 전개).

det(A)=a11A11+a12A12+a13A13=ia1iA1idet(A) = a_{11}A_{11} + a_{12}A_{12} + a_{13}A_{13} = \sum_{i}{a_{1i}A_{1i}}

일반적으로는 다음과 같다.

det(A)=kaikAik,    for  any  row  idet(A) = \sum_{k}{a_{ik}A_{ik}}, \;\;for\;any\;row\;i
det(A)=kakjAkj,    for  any  column  jdet(A) = \sum_{k}{a_{kj}A_{kj}}, \;\;for\;any\;column\;j

그리고 이러한 cofactor를 모아 다음과 같은 adjugate matrix(여인수 행렬)을 정의 할 수 있다.

Acof=(A11A21A31A12A22A32A13A23A33)A_{cof} = \begin{pmatrix} A_{11} & A_{21} & A_{31}\\ A_{12} & A_{22} & A_{32}\\ A_{13} & A_{23} & A_{33} \end{pmatrix}

우리는 adjugate matrix를 이용하여 역행렬을 찾을 수 있다. 행렬식의 정의를 이용하여 AAcofAA_{cof}를 구하면 다음과 같다.

AAcof=(a11a12a13a21a22a23a31a32a33)(A11A21A31A12A22A32A13A23A33)=(det(A)000det(A)000det(A))=det(A)IAA_{cof} = \begin{pmatrix} a_{11} & a_{12} & a_{13}\\ a_{21} & a_{22} & a_{23}\\ a_{31} & a_{32} & a_{33} \end{pmatrix}\begin{pmatrix} A_{11} & A_{21} & A_{31}\\ A_{12} & A_{22} & A_{32}\\ A_{13} & A_{23} & A_{33} \end{pmatrix} = \begin{pmatrix} det(A) & 0 & 0\\ 0 & det(A) & 0\\ 0 & 0 & det(A) \end{pmatrix} = det(A)I

따라서 행렬 AA의 역행렬은 다음과 같다.

A1=1det(A)AcofA^{-1} = \frac{1}{det(A)}A_{cof}

10. Eigenvalues and Eigenvectors

ACn×nA \in C^{n \times n}이 complex matrix라고 할 때, 다음을 만족하는 0이 아닌 vector vCnv \in C^n을 A의 (right) eigenvector라고 하며, λ\lambda를 A의 eigenvalue라고 한다.

Av=λv            with    λCAv = \lambda v \;\;\;\;\;\; with \;\; \lambda \in C

이와 비슷하게 vTA=λvTv^T A = \lambda v^T를 만족하는 v를 A의 left eigenvector라고 하기도 하며, matrix A의 모든 eigenvalue들의 집합을 spectrum σ(A)\sigma (A)라고 한다.

또한 D가 matrix A의 eigenvalue들을 포함하는 diagonal matrix(대각행렬)이고, V가 각 eigenvalue에 대응하는 eigenvector를 column으로 가지고 있는 matrix라고 할 때, 위의 정의로부터 AV=VD 가 만족함을 유추할 수 있다.

그리고 ARn×nA \in R^{n \times n}인 square matrix일 경우 다음과 같은 성질을 갖는다.

  • Av=λvAv = \lambda vλR\lambda \in R이 존재할 경우, left-eigenvector ηRn\eta \in R^n 또한 존재한다.(즉, ηTA=ληT\eta ^T A = \lambda \eta ^T를 만족하는 η\eta가 존재하며, σ(A)=σ(AT)\sigma (A) = \sigma (A^T)이다.)

  • 서로 다른 eigenvalue에 대응하는 eigenvector들은 서로 linearly independent한다.

  • 모든 eigenvector σ(A)\sigma (A)는 characteristic polynomial(특성방정식) det(λIA)=0det(\lambda I - A) = 0의 해이며, 따라서 det(A)는 모든 eigenvalue의 곱과 같다.(이때, 중근이 발생하는 경우 해당 eigenvalue는 여러번 곱해주어야 한다.)

  • 어떤 nonsingular matrix P에 대해 B=PAP1B = PAP^{-1}일 경우 σ(B)=σ(A)\sigma (B) = \sigma (A)이다. (닮음변환)

  • Eigenvalue가 복소수일 경우, 해당 eigenvalue의 conjugate 또한 eigenvalue이다.

  • Eigenvalue의 합과 행렬의 대각성분의 합(trace)는 같다.

또한 matrix A를 하나의 좌표 변환으로 사용한다면, eigenvector는 A를 통해 좌표변환을 하여도 방향이 바뀌지 않고 크기만 변하는(스칼라 배만 되는) vector, eigentvalue는 vector의 크기 변화율로 이해할 수도 있다.

11. Symmetric Matrices

어떤 matrix SRn×nS \in R^{n \times n}ST=SS^T = S를 만족할 경우 matrix S를 symmetric하다고 한다.

이때 symmetric matrix S가 xTSx0x^T S x \geq 0라면 이를 positive semi-definite라고 하고(S0S \geq 0라고 표시), xTSx>0    if  x0x^T S x \gt 0 \;\; if \; \forall x \ne 0이면 positive definte(S>0S \gt 0라고 표시)라고 한다.

SRn×nS \in R^{n \times n}가 real symmetric matrix라고 하면 다음의 성질을 갖는다.

  • S의 모든 eigenvalue들은 실수이다.

  • 서로 다른 eigenvalue에 대응하는 eigenvector들은 서로 othogonal한다.

  • 언제나 RnR^n의 basis 형태의 n개의 orthonormal한 eigenvector들의 존재하며, V=(v1,,vn)O(n)V = (v_1, \cdots, v_n) \in O(n)을 eigenvector들이 이루는 orthogonal matrix, Λ=diag(λ1,,λn)\Lambda = diag(\lambda_1, \cdots, \lambda_n)을 eigenvalue들이 이루는 diagonal matrix라고 할때, S=VΛVTS = V\Lambda V^T이다.

  • 모든 eigenvalue가 positive(nonnegative)라면 S는 positive (semi-)definite이다.

  • S가 positive semi-definite이고, λ1,λn\lambda_1, \lambda_n이 각각 최대, 최소의 eigenvalue라면,
    λ1=maxx=1x,Sx      λn=minx=1x,Sx\lambda_1 = max_{|x|=1} \langle x, Sx \rangle \;\;\; \lambda_n = min_{|x|=1} \langle x, Sx \rangle

12. Norms of Matrices

어떤 matrix ARm×nA \in R^{m \times n}의 norm을 정의하는 방법은 여러가지가 있지만 대표적인 방법으로 2가지 정도를 생각해 볼 수 있다.

첫번째로 induced 2-norm의 경우 다음과 같이 정의된다.

A2maxx2=1Ax2=maxx2=1x,ATAx\parallel A \parallel_2 \equiv \max_{|x|_2 = 1}{|Ax|_2} = \max_{|x|_2 = 1}{\sqrt{\langle x, A^T A x \rangle}}

다음으로 Frobenius norm은 다음과 같이 정의된다.

Afi,jAij2=trace(ATA)\parallel A \parallel_f \equiv \sqrt{\sum_{i, j}{A^2_{ij}}} = \sqrt{trace(A^T A)}

일반적으로는 위의 두 norm이 서로 같지 않음에 주의하여야 한다.

또한 ATAA^T A는 symmetric, positive semi-definite하기 때문에 ATA=Vdiag(σ12,,σn2)VT,      σ12σn20A^T A = V diag(\sigma^2_1, \cdots, \sigma^2_n) V^T, \;\;\; \sigma^2_1 \geq \sigma^2_n \geq 0이며, 다음을 유추할 수 있다.

A2=σ1            Af=trace(ATA)=σ12++σn2\parallel A \parallel_2 = \sigma_1 \;\;\;\;\;\; \parallel A \parallel_f = \sqrt{trace(A^T A)} = \sqrt{ \sigma^2_1 + \cdots + \sigma^2_n}

13. Skew-symmetric Matrices

어떤 matrix ARn×nA \in R^{n \times n}AT=AA^T = -A를 만족하는 경우, A를 skew-symmetric 또는 anti-symmetric하다고 한다.

만약 A가 real skew-symmetric일 때, 다음과 같은 성질을 갖는다.

  • A의 모든 eigenvalue은은 0이거나 복소수 성분만 가지고 있는 수(purely imaginary)이다.

  • A=VΛVTA = V \Lambda V^T를 만족하는 orthogonal matrix V가 존재하며, 이때 Λ\Lambda는 block-diagonal matrix이고 Λ=diag(A1,,Am,0,,0)\Lambda=diag(A_1, \cdots , A_m, 0, \cdots, 0), 각 AiA_i는 다음과 같은 형태의 skew-symmetric matrix이다.

Ai=(0aiai0)R2×2            i=1,,mA_i = \begin{pmatrix} 0&a_i\\ -a_i&0 \end{pmatrix} \in R^{2 \times 2} \;\;\;\;\;\; i = 1, \cdots, m

특히, 모든 skew-symmetric matrix의 rank는 짝수이다.

Computer vision 분야에서 skew-symmetric matrix는 vector uR3u \in R^3의 hat operator로 다음과 같이 주어진다.

u^=(0u3u2u30u1u2u10)R3×3\hat{u} = \begin{pmatrix} 0 & -u_3 & u_2\\ u_3& 0 &-u_1 \\ -u_2 & u_1 & 0 \end{pmatrix} \in R^{3 \times 3}

이러한 hat operator는 R3R^3 vector의 space에서 R3×3R^{3 \times 3}의 skew-symmetric matrix의 space로의 linear operator이며, 이를 이용하여 다음과 같이 vector의 cross product, 외적을 나타낼 수 있다.

u^v=(uTv^)T=u×v\hat{u} v = (u^T \hat{v})^T = u \times v

위의 경우 u0u \ne 0일 때, rank(u^)=2rank(\hat{u}) = 2이며, u^u=uTu^=0\hat{u}u = u^T \hat{u} = 0이므로 u^\hat{u}의 null space는 u에 의해 span된다.

또한 다음의 성질을 갖는다.

  • MM이 임의의 3×33 \times 3행렬일 경우 (Mx)×(My)=M(x×y)(Mx)\times(My)=M^*(x \times y)이며, 이는 Mx^M=Mx^\widehat{Mx}M=M^*\hat{x}로 쓸 수 있음 (MM^*은 여인수행렬)
  • Non-singular 행렬 MM에 대해서, x^M=MM1x^=MTM1x^\hat{x}M=M^* \widehat{M^{-1}x}=M^T\widehat{M^{-1}x}

0개의 댓글

관련 채용 정보