[Math] Linear Algebra (2/2)

redbeet1007·2023년 7월 26일
4

Math

목록 보기
3/3
post-thumbnail

Vector Space

체(Field) FF 위의 벡터 공간(Vector Space) VV는 두 연산(덧셈(Addition)과 스칼라곱(Scalar multiplication))이 정의되어 다음 10개의 조건을 만족시키는 집합이다. 이때 이 집합의 원소를 벡터(Vector)라고 한다.

u,v,wV,k,lF\forall \mathbf{u},\mathbf{v},\mathbf{w} \in V , \forall k,l \in {F}
1. (u+v)V(\mathbf{u}+\mathbf{v})\in V
2. u+v=v+u\mathbf{u}+\mathbf{v}=\mathbf{v}+\mathbf{u}
3. u+(v+w)=(u+v)+w\mathbf{u}+(\mathbf{v}+\mathbf{w})=(\mathbf{u}+\mathbf{v})+\mathbf{w}
4. 0Vs.t.0+u=u\exist \mathbf{0}\in V\, s.t. \, \mathbf{0}+\mathbf{u}=\mathbf{u}
5. uVs.t.u+(u)=0\exist -\mathbf{u}\in V\, s.t. \, \mathbf{u}+\mathbf{(-u)}=\mathbf{0}
6. kuVk\mathbf{u}\in V
7. k(u+v)=ku+kvk(\mathbf{u}+\mathbf{v})=k\mathbf{u}+k\mathbf{v}
8. (k+l)u=ku+lu(k+l)\mathbf{u}=k\mathbf{u}+l\mathbf{u}
9. k(lu)=(kl)uk(l\mathbf{u})=(kl)\mathbf{u}
10. 1u=u1\mathbf{u}=\mathbf{u}

Basis

VV 가 임의의 벡터 공간이고 S={v1,v2,,vn}S=\{\mathbf{v}_1,\mathbf{v}_2,\cdots,\mathbf{v}_n\}VV를 생성(span)하는 선형독립인 VV의 부분집합일 때, SSVV의 기저라고 한다. 좀 더 자세히 살펴보자.

Linear Combination

벡터의 집합 S={u1,u2,,un}S=\{\mathbf{u}_1,\mathbf{u}_2,\cdots,\mathbf{u}_n\}과 스칼라 a1,a2,,ana_1,a_2,\cdots,a_n에 대해

v=a1u1+a2u2++anun\mathbf{v}=a_1\mathbf{u}_1+a_2\mathbf{u}_2+\cdots+a_n\mathbf{u}_n

SS의 일차 결합 또는 선형 결합(Linear Combination)이라고 한다. 이때 a1,a2,,ana_1,a_2,\cdots,a_n를 이 일차결합의 계수(Coefficient)라고 한다.

Trivial Representation of 0\mathbf{0}

v=0\mathbf{v}=\mathbf{0}이 되게 하는 경우를 생각해 보자. a1,a2,,ana_1,a_2,\cdots,a_n가 모두 00일 때 v=0\mathbf{v}=\mathbf{0}를 만족시킬 수 있다. 이를 SS의 일차결합에 대한 영벡터의 자명한 표현(Trivial Representation of 0\mathbf{0})이라고 한다.

Linear Dependence

영벡터를 나타내는 SS의 일차결합에 대해, 자명하지 않은 표현이 존재하면 집합 SS는 일차종속(Linearly Dependent)이다. 예를 들어, S={(10),(20)}S=\{\begin{pmatrix}1&0\end{pmatrix},\begin{pmatrix}2&0\end{pmatrix}\}0=2(10)+(20)\mathbf{0}=-2\begin{pmatrix}1&0\end{pmatrix}+\begin{pmatrix}2&0\end{pmatrix}으로 나타낼 수 있으므로 이 집합은 일차종속이다.

Linear Independence

벡터들의 집합 SS가 일차종속이 아닐 경우, 이 집합을 일차독립(Linearly Independent)이라고 한다. 예를 들어, S={(10),(01)}S=\{\begin{pmatrix}1&0\end{pmatrix},\begin{pmatrix}0&1\end{pmatrix}\}의 경우 영벡터의 자명한 표현 이외에 영벡터를 구성하는 방법이 존재하지 않으므로 이 집합은 일차독립이라 할 수 있다.

Subspace

FF위의 벡터공간 VV의 부분집합 WW이 덧셈과 스칼라곱이 정의되는 벡터공간일 때, WWVV의 부분공간(Subspace)이라고 한다. 모든 벡터공간 VVVV\varnothing를 부분공간으로 가진다.

Span

SS\varnothing이 아닌 VV의 부분집합이라고 하자. SS의 벡터를 사용하여 만든 모든 일차결합의 집합을 SS의 생성공간(Span)이라고 표현하고, 기호로 span(S)\text{span}(S)와 같이 표현한다. VV의 부분집합 SS의 모든 span은 VV의 부분집합 WW이고, 이를 기호로 W=span(S)W=\text{span}(S)와 같이 표현한다.

Dimension

Row Space & Column Space

m×nm \times n행렬 A\mathbf{A}를 생각하자. 이때 행벡터와 열벡터는 각각 Rn,Rm\mathbb{R}^n,\mathbb{R}^m에서의 벡터공간을 생성할 수 있다. 행벡터로 생성된 Rn\mathbb{R}^n의 벡터공간을 행공간(Row Space)라고 하고, 열벡터로 생성된 Rm\mathbb{R}^m의 벡터공간을 열공간(Column Space)라고 한다.

Dimension

벡터공간 VV의 기저 벡터의 개수를 VV의 차원(Dimension)이라고 하며, 기호로 dim(V)\dim(V)와 같이 나타낸다. 이때, 영벡터로 이루어진 벡터공간의 차원을 00차원이라고 한다. 즉, 벡터 공간을 구성하는 데에 필요한 최소한의 벡터 개수가 차원이다. 행렬 A\mathbf{A}의 행공간과 열공간의 차원은 항상 같음을 기억하자.

Nullspace

Ax=0\mathbf{Ax=0}를 만족하는 모든 벡터 x\mathbf{x}의 집합으로 생성한 공간을 행렬 A\mathbf{A}의 영공간(Nullspace)라고 한다. 행공간, 열공간, 영공간을 통틀어 행렬공간(Matrix Space)라고 한다.

Rank & Nullity

행렬 A\mathbf{A}의 열공간 또는 행공간의 차원을 Rank라고 하며, 기호로 rank(A)\text{rank}(\mathbf{A})와 같이 나타낸다. 또 영공간의 차원을 Nullity라고 하고, 기호로 nullity(A)\text{nullity}(\mathbf{A})와 같이 나타낸다.

Four Fundamental Matrix Spaces

행렬 A\mathbf{A}과 전치 행렬 AT\mathbf{A}^T를 생각해 보자. 이 행렬을 이용해 나타낼 수 있는 벡터공간은 다음의 6개이다.

row space of Arow space of ATcolumn space of Acolumn space of ATnullspace of Anullspace of AT\text{row space of }\mathbf{A} \quad \text{row space of }\mathbf{A}^T \\ \text{column space of }\mathbf{A} \quad \text{column space of }\mathbf{A}^T \\ \text{nullspace of }\mathbf{A} \quad \text{nullspace of }\mathbf{A}^T

이때, AT\mathbf{A}^T의 행벡터는 A\mathbf{A}의 열벡터와 같고, AT\mathbf{A}^T의 열벡터는 A\mathbf{A}의 행벡터와 같음을 고려하면 다음의 4개의 벡터공간을 고려할 수 있다.

row space of Acolumn space of Anullspace of Anullspace of AT\text{row space of }\mathbf{A} \quad \text{column space of }\mathbf{A} \\ \text{nullspace of }\mathbf{A} \quad \text{nullspace of }\mathbf{A}^T

이 네 개의 행렬공간을 행렬 A\mathbf{A}의 주요 행렬공간(Fundamental Matrix Spaces)라고 한다.

Dimension Theorem

A\mathbf{A}nn열의 행렬일 때,

rank(A)+nullity(A)=n\text{rank}(\mathbf{A})+\text{nullity}(\mathbf{A})=n

을 만족하는데, 이를 차원정리(Dimension Theorem)이라고 한다. 다음 그림을 보자. 행렬 A\mathbf{A}nn차원 행공간을 Rn\mathbb{R}^n, mm차원 열공간을 Rm\mathbb{R}^m과 같이 표현한다. 이때 행공간의 차원과 열공간의 차원은 동일하게 rr이다. 아래 그림에서 행렬 A\mathbf{A}는 행공간의 벡터 x\mathbf{x}를 열공간의 벡터 b\mathbf{b}로 선형 변환하는 의미를 가짐을 알 수 있다. 이때 행렬 A\mathbf{A}의 영공간의 차원은 nrn-r이고, 행렬 AT\mathbf{A}^T의 영공간의 차원은 mrm-r이 된다.
Dimension Theorem

Orthogonal Matrix

Inner Product

내적에 대해 다시 한 번 살펴보자. 체 FF 위에서 정의된 벡터공간 VV의 원소 u,v,w\mathbf{u,v,w}에 대해 다음을 만족시키는 함수 ,:V×VF\langle\cdot,\cdot\rangle:V\times V\rarr F를 내적이라고 정의한다.
1. u,v=v,u\langle\mathbf{u},\mathbf{v}\rangle=\langle\mathbf{v},\mathbf{u}\rangle
2. u+v,w=u,w+u,w\langle\mathbf{u}+\mathbf{v},\mathbf{w}\rangle=\langle\mathbf{u},\mathbf{w}\rangle+\langle\mathbf{u} , \mathbf{w}\rangle
3.ku,v=ku,v\langle k\mathbf{u},\mathbf{v}\rangle=k\langle\mathbf{u},\mathbf{v}\rangle
4. v,v0where v,v    v=0\langle\mathbf{v,v}\rangle \ge 0\quad where \ \langle\mathbf{v, v}\rangle \iff \mathbf{v=0}
이 중 이전 포스트에서 다룬 것과 같이 정의되는 내적을 유클리드 내적(Euclidian Inner Product)라고 한다.

Inner Product Space

FF 위에서 정의된 벡터공간 VV에서 어떤 내적, 즉 ,:V×VF\langle\cdot,\cdot\rangle:V\times V\rarr F가 정의될 때, VV를 내적공간(Inner Product Space)라고 한다. F=CF=\mathbb{C}일 경우, VV를 복소내적공간(Complex Inner Product Space)라고 하고, F=RF=\mathbb{R}일 경우, VV를 실수내적공간(Real Inner Product Space)라고 한다.

Orthogonality

내적공간 VV의 원소 u,v\mathbf{u,v}에 대해, u,v=0\mathbf{\langle u, v \rangle}=0일 때 두 벡터 u,v\mathbf{u,v}가 직교한다(Orthogonal)고 한다. 또 내적공간의 부분공간 WW에 대해 u\mathbf{u}WW의 모든 벡터와 직교할 때, 벡터 u\mathbf{u}WW에 직교한다고 한다.

Orthonormal Basis

내적공간의 부분집합의 벡터가 모두 서로 직교하고, 각 벡터의 norm이 1인 경우, 이 집합을 정규 직교 집합(Orthonormal Set)이라고 한다. 기저가 orthonormal한 경우, 이를 정규 직교 기저(Orthonormal Basis)라고 한다.

Orthogonal Matrix

A1=AT\mathbf{A}^{-1}=\mathbf{A}^T인 행렬을 직교 행렬(Orthogonal Matrix)이라고 한다. 이를 다음과 같이 표현하기도 한다.

AAT=ATA=I\mathbf{A}\mathbf{A}^T=\mathbf{A}^T\mathbf{A}=\mathbf{I}

n×nn\times n 행렬 A\mathbf{A}에 대해, 다음은 모두 동치이다.
1. AA는 직교 행렬이다.
2. AA의 행벡터는 행공간의 정규 직교 기저를 이룬다.
3. AA의 열벡터는 열공간의 정규 직교 기저를 이룬다.

직교 행렬은 다음과 같은 성질을 가진다.
1. 직교 행렬의 전치 행렬은 직교 행렬이다.
2. 직교 행렬의 역행렬은 직교 행렬이다.
3. 직교 행렬끼리의 곱은 직교 행렬이다.
4. 직교 행렬의 행렬식은 1 또는 -1이다.

Eigenvalue & Eigenvector

일반적으로 n×nn\times n행렬 A\mathbf{A}Rn\mathbb{R}^n의 벡터 x\mathbf{x}에 대해 x\mathbf{x}Ax\mathbf{Ax} 사이에는 아무런 기하학적 연관성이 없다. 하지만 Ax\mathbf{Ax}x\mathbf{x}의 스칼라배가 되게 하는 0\mathbf{0}이 아닌 벡터 x\mathbf{x}가 존재하는 경우가 있는데, 이때 이 벡터를 고유 벡터(Eigenvector)라고 한다. 좀 더 자세히 알아보자.

Eigenvalue & Eigenvector

n×nn\times n행렬 A\mathbf{A}Rn\mathbb{R}^n0\mathbf{0}이 아닌 벡터 x\mathbf{x}에 대해 다음을 만족하는 x\mathbf{x}A\mathbf{A}의 고유 벡터(Eigenvector)라고 한다.

Ax=λx\mathbf{Ax}=\lambda\mathbf{x}

이때, λ\lambdaA\mathbf{A}의 고윳값(Eigenvalue)라고 한다. 고윳값은 다음 방정식의 해이다.

det(AλI)=0\det(\mathbf{A}-\lambda\mathbf{I})=0

다음 그림은 고유 벡터를 도시화한 것이다.

Eigenspace

고유 벡터의 해공간을 고유 공간(Eigenspace)라고 한다. 고유 벡터의 정의를 다시 한 번 보자.

Ax=λx\mathbf{Ax}=\lambda\mathbf{x}

양변에 I\mathbf{I}를 곱하고 이항하여 정리하면

(AλI)x=0(\mathbf{A}-\lambda\mathbf{I})\mathbf{x}=\mathbf{0}

를 얻는다. 이 방정식의 자명하지 않은 해 x\mathbf{x}의 집합을 고유공간이라고 한다.

Singular Value Decomposition

Similarity

두 행렬 A,B\mathbf{A,B}가 다음을 만족할 때, 두 행렬을 닮음(Similar)이라고 한다.

P1AP=B\mathbf{P}^{-1}\mathbf{AP}=\mathbf{B}

닮음인 두 행렬 사이에는 다음이 성립한다.
1. 동일한 행렬식을 가진다.
2. A\mathbf{A}가 가역 행렬이면 B\mathbf{B}도 가역 행렬이고, A\mathbf{A}가 가역 행렬이 아니면 B\mathbf{B}도 가역 행렬이 아니다.
3. 동일한 Rank를 가진다.
4. 동일한 Nullity를 가진다.
5. 동일한 고윳값을 가진다.
6. A\mathbf{A}B\mathbf{B}의 고윳값 λ\lambda에 대한 고유공간의 차원이 동일하다.
특히, P\mathbf{P}가 직교 행렬인 경우 B\mathbf{B}A\mathbf{A}에 직교 닮음(Orthogonally Similar)이라고 한다.

Orthogonal Diagonalization

직교 닮음에서, 다음을 만족하는 경우 직교 행렬 P\mathbf{P}A\mathbf{A}를 직교 대각화(Orthogonally Diagonalize)한다고 하고, A\mathbf{A}는 직교 대각화 가능(Orthogonally Diagonalizable)하다고 한다.

P1AP=D\mathbf{P}^{-1}\mathbf{AP}=\mathbf{D}

직교 대각화가 가능하려면 A\mathbf{A}는 대칭 행렬, 즉 다음을 만족하는 행렬이어야 한다.

AT=A\mathbf{A}^T=\mathbf{A}

P1AP\mathbf{P}^{-1}\mathbf{AP}nn차 대각 행렬일 때, A\mathbf{A}nn개의 일차독립인 고유벡터를 갖는다.

Eigenvalue Decomposition

고윳값 분해(Eigenvalue Decomposition)은 직교 대각화의 한 종류이다. 직교 대각화 식에서, 다음을 쉽게 도출할 수 있다.

A=PDPT\mathbf{A}=\mathbf{PD}\mathbf{P}^{T}

Ax=λx\mathbf{Ax}=\lambda\mathbf{x}에서 각각의 고윳값과 고유벡터를 모아둔 행렬을 다음과 같이 생각할 수 있다.

X=(x1x2xn)AX=(λ1x1λ2x2λnxn)Λ=(λ1000λ20000λn)\mathbf{X}=\begin{pmatrix}\mathbf{x}_1&\mathbf{x}_2&\cdots&\mathbf{x}_n\end{pmatrix} \\ \mathbf{AX}= \begin{pmatrix}\lambda_1\mathbf{x}_1&\lambda_2\mathbf{x}_2&\cdots&\lambda_n\mathbf{x}_n\end{pmatrix} \\ \mathbf{\Lambda} = \begin{pmatrix}\lambda_1&0&\cdots&0 \\ 0&\lambda_2&0&0 \\ \vdots&\vdots&\ddots&\vdots \\ 0&0&\cdots&\lambda_n\end{pmatrix}

위 식들을 이용하여, Ax=λx\mathbf{Ax}=\lambda\mathbf{x}을 다음과 같이 바꾸어 쓸 수 있다.

AX=XΛ\mathbf{AX=X\Lambda}

이때 XX가 대각화 가능, 즉 모든 고유벡터가 선형독립이라면 위 식을 다음과 같이 쓸 수 있다.

A=XΛX1\mathbf{A=X\Lambda X}^{-1}

위와 같이 정사각행렬을 고윳값과 고유 벡터로 이루어진 행렬의 곱으로 표현하는 것을 고윳값 분해(Eignevalue Decomposition)이라고 한다.

Singular Value Decomposition

특이값 분해(Singular Value Decomposition)란 고윳값 분해를 m×nm\times n행렬로 일반화시킨 것으로, 행렬의 차원 축소에 이용된다. 좀 더 자세히 알아보자.
먼저, 특이값(Singular Value)에 대해 알아보자. 행렬 A\mathbf{A}의 크기가 n×pn\times p라는 것은 pp차원에 nn개의 점이 존재한다고 생각할 수 있다. 행렬 A\mathbf{A}에 대한 차원 축소란, nn개의 점을 표현하는 기존의 pp보다 작은 차원 dd의 부분 공간을 찾는 문제라고 할 수 있다. 이때, 부분 공간은 각 점과의 수직 거리가 최소가 되어야 한다. 이때, 직선거리의 최소화는 제곱합의 최소화 문제로 바꾸어 볼 수 있다.
어떤 행렬의 제곱은 ATA\mathbf{A}^T\mathbf{A} 또는 AAT\mathbf{A}\mathbf{A}^T와 같이 표현할 수 있다. 행렬 A\mathbf{A}의 특이값(Singular Value)이란, ATA\mathbf{A}^T\mathbf{A}의 고우값에 루트를 씌운 값으로 다음과 같이 표현된다.

σi=λi\sigma_i = \sqrt{\lambda_i}

ATA\mathbf{A}^T\mathbf{A}는 직교 대각화가 가능한 행렬이므로, 이를 직교 대각화하여 고유값을 구하여 루트를 취하면 A\mathbf{A}의 특이값을 구할 수 있다. 이때 각 특이값은 Axi\mathbf{Ax}_i벡터의 길이로 생각할 수 있다.

앞서 고윳값 분해를 A=PDPT\mathbf{A}=\mathbf{PD}\mathbf{P}^{T}와 같은 형태로 나타내었다. 특이값 분해(Singular Value Decomposition)은 다음과 같은 꼴로 나타내어진다.

A=UΣVT\mathbf{A}=\mathbf{U\Sigma}\mathbf{V}^{T}

AAT\mathbf{A}\mathbf{A}^T의 고유 벡터가 u1,u2,,un\mathbf{u}_1,\mathbf{u}_2,\cdots,\mathbf{u}_n이고, ATA\mathbf{A}^T\mathbf{A}의 고유 벡터가 v1,v2,,vn\mathbf{v}_1,\mathbf{v}_2,\cdots,\mathbf{v}_n일 때 각각의 벡터는 다음과 같이 나타내어진다.

U=(u1u2un)Σ=(D0d×(pd)0(nd)×d0(nd)×(pd))where D=(σ1000σ2000σd)V=(v1v2vn)\mathbf{U} = \begin{pmatrix}\mathbf{u}_1&\mathbf{u}_2&\cdots&\mathbf{u}_n\end{pmatrix} \\ \mathbf{\Sigma} = \begin{pmatrix}\mathbf{D}&\mathbf{0}_{d\times(p-d)} \\ \mathbf{0}_{(n-d)\times d}&\mathbf{0}_{(n-d)\times(p-d)}\end{pmatrix} \quad where \ \mathbf{D}= \begin{pmatrix}\sigma_1&0&\cdots&0 \\ 0&\sigma_2&\cdots&0\\ \vdots&\vdots&\ddots&\vdots \\ 0&0&\cdots&\sigma_d\end{pmatrix} \\ \mathbf{V}=\begin{pmatrix}\mathbf{v}_1&\mathbf{v}_2&\cdots&\mathbf{v}_n\end{pmatrix}

특이값 분해를 그림으로 나타내면 다음과 같다.

그림에서 확인할 수 있는 것과 같이, 특이값 분해는 선형 변환 A\mathbf{A}를 회전, 팽창 또는 축소, 회전의 세 단계로 나누어 생각하게 하는 도구이다.

참고 자료

[1] 장철원, "Chapter 3: 머신러닝을 위한 선형대수" in 선형대수와 통계학으로 배우는 머신러닝. 비제이퍼블릭.
[2] Howard Anton, Elementary Linear Algebra, 7th edition, John Wiley & Sons, Inc.
[3] S. Friedberg et al., Linear Algebra, 4th edition, Pearson.
[4] David C. Lay et al., Linear Algebra And Its Applications, 5th edition, Pearson.
[5] 김창일 외, 고급 수학 II, 전라북도교육청.
[6] 공돌이의 수학정리노트 (Angelo's Math Notes), 고윳값 분해(eigen-value decomposition)[online]

profile
KAIST 24

0개의 댓글