Intro
오늘은 선형대수학의 주요 개념 및 성질을 정리하겠습니다.
선형대수학은 선형인 함수가 갖는 성질에 대한 학문입니다. 함수가 선형이라는 것은 아래 조건을 만족하는 것입니다.
$$f(kp) = kf(p)$$
$$f(p+q) = f(p) + f(q)$$
$f$가 선형 함수라면, $f$가 뭔지 몰라도 $f(1)$을 알면 $f(10)$을 알 수 있고$\left(10\times f(1)\right)$, $f(2)$와 $f(3)$을 알면 $f(5)$를 알 수 있습니다$\left(f(2)+f(3)\right)$.
이번 글에서는 벡터, 행렬의 연산 및 역행렬에 대해서 알아보겠습니다.
벡터 공간과 기저
벡터 공간: 어떤 벡터 집합 $Q$가 있을 때, 집합 내의 벡터들로 만들 수 있는 공간
기저(basis): 벡터 공간을 구성하는 서로 선형 독립인 벡터들
부분 공간(subspace): 공간의 일부분 (차원이 더 낮을 수 있음)
span: 부분 공간 $W$를 구성하는 기저 벡터 집합 $S$가 있을 때, $W=span(S)$ 라고 표현
차원(dimension): 기저 벡터의 수, 즉, 공간을 구성하는 최소한의 백터 개수, 행공간의 차원과 열공간의 차원음 같음
랭크(rank): 열벡터에 의해 span된 벡터 공간의 차원
벡터의 연산
벡터는 어떤 공간의 원소입니다. 점이라고 생각할 수 있습니다. 1차원 공간에서의 점은 하나의 값을 갖는 스칼라(scala)이고, 2차원 이상의 공간상 점을 벡터라고 합니다.
벡터는 공간의 차원 수에 따라 길이가 달라지는데, 점의 위치를 표현하기 위해서는 공간의 차원수 만큼의 값이 필요합니다.
2차원 공간상의 점 a의 x좌표는 1, y좌표는 2라고 할 때, 이를 벡터로 표현하면 $\vec{a}=(1,2)$로 표현할 수 있고, 각 값을 성분이라고 합니다.
벡터는 스칼라, 벡터, 행렬과 연산할 수 있습니다.
벡터와 스칼라의 연산은 아래와 같이 이루어 집니다.
임의의 실수 $k, l$와 길이가 같은 벡터 $\vec{a}, \vec{b}$가 있으면
(1) $1 \times\vec{a}=\vec{a}\times 1=\vec{a}$
(2) $(-1)\vec{a}=-\vec{a}$
(3) $k(\vec{a}+\vec{b})=k\vec{a}+k\vec{b}$
(4) $(k+l)\vec{a}=k\vec{a}+l\vec{a}$
(5) $(k1)\vec{a}=k(l\vec{a})$
즉, 벡터와 스칼라의 연산에 대해서는 교환법칙(1), 분배법칙(3, 4), 결합법칙(5)이 성립함을 알 수 있습니다.
또한, 벡터와 벡터의 연산은 아래와 같이 이루어 집니다.
길이가 같은 벡터 $\vec{a},\vec{b},\vec{c},\vec{0}$가 있을 때 ($\vec{0}$은 모든 성분이 0)
(1) $\vec{a}+\vec{b}=\vec{b}+\vec{a}$
(2) $(\vec{a}+\vec{b})+\vec{c}=\vec{a}+(\vec{b}+\vec{c})$
(3) $\vec{a}+\vec{0}=\vec{0}+\vec{a}=\vec{a}$
(4) $\vec{a}+(-\vec{a})=(-\vec{a})+\vec{a}=\vec{0}$
즉, 벡터와 벡터의 연산 또한 교환법칙(1), 결합법칙(2)이 성립함을 알 수 있습니다.
내적
내적 (inner product, dot product) 길이가 같은 두 벡터 사이의 연산 중 하나 입니다. 두 벡터의 원소곱의 합으로 계산할 수 있고, 스칼라 값을 결과로 갖습니다.
길이가 $k$인 두 벡터 $\vec{u}, \vec{v}$의 $i$번째 성분을 각각 $u_i, v_i$라고 할 때, $\vec{u}, \vec{v}$의 내적은 아래와 같이 표현할 수 있습니다.
$\vec{u} \cdot \vec{v}=\sum_{i=1}^{k}u_i v_i$
벡터의 내적에 대해서는 아래와 같은 성질이 있습니다.
길이가 같은 벡터 $\vec{u},\vec{v},\vec{w}$가 있을 때
$\vec{u} \cdot \vec{v}=\vec{v} \cdot \vec{u}$
$\vec{u} \cdot (\vec{v}+\vec{w})=\vec{u} \cdot \vec{v}+\vec{u} \cdot \vec{w}$
$(k\vec{u}) \cdot \vec{v}=k(\vec{u} \cdot \vec{v})$
$\vec{u} \cdot \vec{v}=|\vec{u}| |\vec{v}| cos\theta$
4번째 성질에서, $|\vec{v}|$은 $\vec{v}$의 norm입니다.
식에서도 알 수 있듯이, 두 벡터가 이루는 값이 직각이면 내적 값은 0인 걸 알 수 있습니다.
반대로 내적 값이 0이면 두 벡터는 서로 직각이거나, 둘 중 하나가 영벡터 입니다.
또한 기하학적으로 내적의 의미를 생각해보면, 두 벡터 $\vec{u},\vec{v}$의 내적은
$\vec{u}$를 $\vec{v}$에 정사영시킨 값 ($\vec{v}cos\theta$)과 $\vec{v}$의 크기의 곱, 또는
$\vec{v}$를 $\vec{u}$에 정사영시킨 값 ($\vec{v}cos\theta$)과 $\vec{u}$의 크기의 곱을 의미합니다.
$\vec{u} \cdot \vec{v}=|\vec{u}| (|\vec{v}| cos\theta) = |\vec{v}| (|\vec{u}| cos\theta)=\vec{v} \cdot \vec{u}$
행렬의 연산
행렬(matrix)은 같은 공간 상에 있는 벡터의 집합이라고 볼 수 있습니다. 길이가 $m$인 벡터 $n$개는 $m\times n$ 또는 $n\times m$모양을 갖는 행렬로 표현할 수 있습니다.
이때 순서는 행렬의 원소인 벡터를 행벡터로 사용할 지, 열벡터로 사용할 지에 달려있습니다.
저는 행렬의 각 벡터를 행벡터로 취급해서 $m\times n$모양을 갖게 하겠습니다.
행렬의 덧셈, 뺄셈, 스칼라 곱은 벡터와 같은 방식으로 계산 가능한 반면, 행렬의 곱은 교환법칙이 성립하지 않는 차이점이 있습니다.
이는 간단한 $2\times 3$ 행렬 2개로 직접 계산해 보시면, 연산 순서에 따라 결과의 모양이 달라짐을 확인할 수 있습니다 (모양이 같아도 순서에 따라 값은 달라집니다).
행렬의 곱의 성질은 아래와 같습니다.
모양이 같은 행렬 $A,B,C$와 상수 $k$가 있을 때
$AB \ne BA$
$A(BC) = (AB)C$
$A(B+C)=AB+AC$
$k(AB) = (kA)B=A(kB)$
$(A+B)^2 = A^2+AB+BA+B^2 \ne A^2+2AB+B^2$
이와 같이, 행렬의 곱셉은 교환법칙은 성립하지 않지만, 결합법칙과 분배법칙은 성립합니다.
특수한? 행렬들
행렬은 모양과 특징에 따라 여러 종류가 있는데요, 아래에 대표적인 경우와 특징을 정리해보겠습니다
1. 정방행렬(square matrix)
행의 크기와 열의 크기가 같은 행렬입니다.
2. 대각행렬(diagonal matrix)
주대각성분 (왼쪽 위 부터 오른쪽 아래까지)을 제외한 모든 성분이 0인 정방행렬입니다.
나중에 정리하겠지만, 특정 조건에서 대각행렬이 아닌 정방행렬 $A$를 대각행렬 $D$로 변환할 수 있는데, 이 경우 행렬의 연산이 간단해지는 장점이 있습니다.
또한, 대각행렬의 _행렬식_은 모든 주대각성분의 곱과 같습니다.
3. 단위행렬(identity matrix)
주대각성분이 모두 1이고, 나머지 성분들은 모두 0인 대각행렬입니다. 당연히 정방행렬이죠.
단위행렬은 같은 모양인 모든 행렬에 대한 항등원입니다.
4. 전치행렬(transpose matrix)
행렬 $A$의 성분을 주대각성분을 기준으로 대칭했을 때 (열과 행을 바꿀 때) 나온 결과 $B$를 $A$의 전치행렬이라고, $A^T$로 표현할 수 있습니다.
행렬 $A$와 $A^T$는 몇가지 성질이 있습니다.
$AA^T$는 대칭행렬이다.
$det(A) = det(A^T)$
$(AB)^T=B^TA^T$
5. 대칭행렬(symmetric matrix)
주대각성분을 기준으로 행렬을 반으로 접었을 때, 만나게 되는 위치에 있는 두 성분의 값이 같은 정방행렬입니다. 즉, $A=A^T$인 행렬입니다.
위에서 대각행렬을 설명할 때, $A$를 $D$로 변환하기 위한 조건 중 하나가 바로 "$A$는 대칭행렬이다." 입니다.
대표적인 대칭행렬로는 여러 변수간의 상관관계를 표현한 공분산행렬이 있습니다.
6. 직교행렬(orthogonal matrix)
직교행렬이란 행렬을 구성하는 _각 행 또는 열 벡터의 크기가 1이고, 서로 수직인 벡터(orthonormal)_로 이루어진 정방행렬을 얘기합니다. 아래와 같은 성질이 있습니다.
1. $AA^T=A^TA=I$
2. $A^T=A^{-1}$
3. $det(A)=1 or -1$
또한, $A^T, A^{-1}$ 또한 직교 행렬이 됩니다.
행렬식
행렬식 (determinant)는 정방행렬의 특성을 하나의 숫자로 표현하는 방법입니다. 어떻게 구하는지 보다는, 어떤 성질이 있는지 파악하는게 중요합니다.
행렬식은 모든 정방행렬에 대해서 유일하게 존재하고, 주어진 정방행렬이 역행렬(행렬곱셈의 역원)이 존재하는지 판별하기 위해 쓰일 수 있습니다.
만약 어떤 정방행렬의 행렬식이 0이라면, 그 행렬은 역행렬이 없다는 뜻이고, 이는 반대로도 성립합니다.
또한 행렬식은 다음과 같은 기하학적 의미를 갖습니다.
좌표 공간에 있는 어떤 도형을 행렬 $A$로 일차변환 시킬 때, 변환 후의 도형의 넓이는 변환 전의 넓이에 $det(A)$의 절대값을 곱한 것과 같다.
행렬의 곱셈의 항등원인 단위행렬의 행렬식이 항상 1인 것도 이와 같은 이치라고 볼 수 있을 거 같습니다.
행렬식은 다음 몇가지 성질을 갖습니다.
1. $det(A^T)=det(A)$
2. $det(AB)=det(A)det(B)$
3. $det(A^{-1})=\frac{1}{det(A)}$
4. $det(AB)=det(BA)$
5. $det(A)\ne 0, det(B) \ne 0, det(P)=det(Q)=0$이면, $det(AB)\ne 0, det(AP)=det(AQ)=det(BP)=det(BQ)=0$이다.
6. 행렬 $A$가 삼각행렬 (대각행렬 포함)이면 $det(A)$는 $A$의 대각 원소의 곱이다.
7. 행렬 $A$의 적어도 한 행 또는 열의 모든 원소가 0이면, $det(A)$는 0이다.
8. $n\times n$행렬 $A$의 고유값이 ${\lambda}_1, {\lambda}_2, ..., {\lambda}_n$ 이면, $det(A)=\prod_{i=1}^{n}{\lambda}_i$이다.
9. 직교행렬의 행렬식은 1 또는 -1이다.
3, 4, 5번 규칙은 2번 규칙에 의해서 유도가 가능합니다. 7번 규칙에 의해 영행렬의 행렬식도 0이 됨을 알 수 있습니다.
역행렬
역행렬 (inverse matrix, non-singular matrix)는 정사각행렬 $A$에 대해서 $AB=I$를 만족하는 행렬 $B(=A^{-1})$입니다.
행렬식이 0인 행렬은 역행렬이 존재하지 않습니다. 또한, 정사각행렬이 아닌 행렬도 역행렬이 존재하지 않습니다.
또한, 대부분의 임의의 값으로 채워진 행렬은 대부분 역행렬을 갖습니다. 역행렬이 없는 경우가 적다는 뜻이지요
$n\times n$이고 역행렬이 존재하는 행렬 (invertible matrix) $A$는 다음 몇가지 성질을 갖습니다.
1. $AA^{-1}=A^{-1}A=I$ (교환법칙 성립)
2. $A^T$ 또한 invertible 하다.
3. $(A^T)^{-1}=(A^{-1})^{T}$
4. $(AB)^{-1}=B^{-1}A^{-1}$
5. $(A^{-1})^{-1}=A$
6. $Ax=0$을 만족하는 $x$는 0뿐이다.
7. $A$의 열(행)들은 linearly independent하다. 즉, 한 열(행)을 나머지 열(행)들의 선형 조합으로 만들 수 없다.
마무리
이 글에서는 선형대 수학의 벡터와 행렬에 대해서 정리해봤습니다. 다음 글에서는 고유벡터, 고윳값에 대해서 정리하겠습니다.
읽어주셔서 감사합니다!
References
선형대수와 통계학으로 배우는 머신러닝 with 파이썬
다크 프로그래머님 블로그
삶은 달걀님 블로그