Notice
Recent Posts
Recent Comments
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Today
Total
관리 메뉴

기록하며 공부하는 Vision AI

[Linear Algebra] Part 01. Notation, Matrix multiplication, Operation and Properties 본문

Pre-requisite/Linear Algebra

[Linear Algebra] Part 01. Notation, Matrix multiplication, Operation and Properties

woogie_s 2021. 8. 4. 18:16

머신러닝/딥러닝 공부를 하는 데 있어서 매우 중요하다고 할 수 있는 <선형대수>의 개념을 살펴보겠습니다.

 

개념을 정리하기 위해 2019년도 Stanford University에서 진행한 CS229: Machine Learning - The Summer Edition 강의와 강의 노트를 참고하였고, 본 코스에 들어가기 전에 진행되는 Pre-requisties review 파트를 통해 공부하고 정리했습니다.

 

우선, Lecture 1에서는 선형대수의 기본적인 개념 및 notation, matrix multiplication, operation and properties (~orthogonal matrices) 부분에 대해 설명하고 있습니다.

 

그럼 내용을 살펴보겠습니다.

 

1. Basic Concepts and Notation

선형대수는 여러 개의 선형 방정식들을 간결하고 쉽게 표현하고 연산할 수 있는 방법을 제공합니다.

$4x_1-5x_2=-13$

$-2x_1+3x_2=9$

다음과 같은 2개의 변수에 대한 2개의 방정식을 행렬로 표현하면 아래와 같이 표현할 수 있습니다.

$Ax=b$

$A=\begin{bmatrix} 4 & -5 \\ -2 & 3 \end{bmatrix},\quad x=\begin{bmatrix} x_1 \\ x_2 \end{bmatrix},\quad b=\begin{bmatrix} -13 \\ 9 \end{bmatrix}$

 

기본적으로 실수들로 이루어진 m개의 행과 n개의 행을 가진 행렬을 $A \in \mathbb{R}^{m\times n}$ 로 표현하고,

n개의 실수들로 이루어진 벡터를 $x \in \mathbb{R}^{n}$ 으로 표현합니다. 기본적인 벡터의 표현은 아래와 같습니다.

  • column vector (열 벡터 : $x$) : n개의 행과 1개의 열
  • row vector (행 벡터 : $x^T$) : 1개의 행과 n개의 열

 

2. Matrix Multiplication

두 행렬 $A \in \mathbb{R}^{m\times n}$, $B \in \mathbb{R}^{n\times p}$의 곱은 아래와 같이 나타낼 수 있을 것입니다.

$C=AB \in \mathbb{R}^{m\times p}$

이는 다음을 의미한다는 것을 알고 계실 것입니다. (이때, A의 열과 B의 행의 수가 같아야 함) 

$C_{ij}=\sum_{k=1}^{n}A_{ik}B_{kj}$

이러한 표준적인 정의 외에도 행렬, 벡터 간의 곱셈을 다르게 접근할 수도 있는데, 간단히 살펴보도록 하겠습니다.

- Vector-Vector Product

  • inner product or dot product

$ \quad  x,y \in \mathbb{R}^{n}$가 주어질 때, $x^Ty$ ($=y^Tx$) 형태로 행렬 연산을 하는 것을 의미합니다. 각 elements들에 대응하는 것끼리 곱하여 더해준 실수 scalar 값을 결과로 가지게 됩니다.

$x^Ty \in \mathbb{R} = \begin{bmatrix} x_1 & x_2 & \cdots & x_n \end{bmatrix} \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix}=\sum_{i=1}^{n}x_iy_i$

  • outer product

$ \quad  x \in \mathbb{R}^{m}, y \in \mathbb{R}^{n}$가 주어질 때, $xy^T$ 형태로 행렬 연산을 하는 것을 의미합니다. $(xy^T)_{ij}=x_iy_j$를 만족하는 $m \times n$ 행렬을 결과로 가지게 됩니다.

$xy^T \in \mathbb{R}^{m \times n} = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_m \end{bmatrix} \begin{bmatrix} y_1 & y_2 & \cdots & y_n \end{bmatrix}=\begin{bmatrix}
x_1y_1 & x_1y_2 & \cdots & x_1y_n\\ 
x_2y_1 & x_2y_2 & \cdots & x_2y_n\\ 
\vdots & \vdots & \ddots & \vdots\\ 
x_my_1 & x_my_2 & \cdots & x_my_n
\end{bmatrix}$

- Matrix-Vector Product

$A \in \mathbb{R}^{m \times n}, x \in \mathbb{R}^n$이 주어졌을 때, $y=Ax$와 같은 행렬과 벡터 간의 곱 연산을 할 때, 두가지의 관점으로 바라볼 수 있습니다. 행렬 A의 행 또는 열 관점으로 표현할 수 있을 것입니다. 굳이 행렬과 벡터간의 곱 연산을 두 경우로 살펴보는 것은 꽤 의미가 있을 것이라 생각합니다.

 

  • In terms of rows of A

$ \quad $행렬 A를 행 벡터들이 모여 이루어진 형태로 나누어 표현한다면, A의 행 벡터들과 열 벡터 x와의 inner product 결과로 이루어진 벡터를 결과로 가지게 됩니다. 

$y=Ax=\begin{bmatrix}
- & {a_1}^{T} & - \\ 
- & {a_2}^{T} & - \\
 &  \vdots & \\ 
- & {a_m}^{T} & - \\
\end{bmatrix}x=\begin{bmatrix}
{a_1}^{T}x\\ 
{a_2}^{T}x\\ 
\vdots\\ 
{a_m}^{T}x
\end{bmatrix}$

  • In terms of columns of A

$ \quad $행렬 A를 열 벡터들이 모여 이루어진 형태로 나누어 표현한다면, A의 열 벡터들에 x 벡터의 element들이 순서에 맞게 scalar 곱을 취해진 벡터들의 linear combination으로 이루어진 결과를 가지게 됩니다. 식으로 보면 다음과 같이 표현됩니다.

$y=Ax=\begin{bmatrix}
| & | &  & | \\ 
a^1 & a^2 & \cdots & a^n\\ 
| & | &  & |
\end{bmatrix}\begin{bmatrix}
x_1\\ 
x_2\\ 
\cdots \\ 
x_n
\end{bmatrix}=\begin{bmatrix}a^1\end{bmatrix}x_1+\begin{bmatrix}a^2\end{bmatrix}x_2+ \cdots+ \begin{bmatrix}a^n\end{bmatrix}x_n$

-Matrix-Matrix Product

$C=AB (A \in \mathbb{R}^{m \times n}, B \in \mathbb{R}^{n \times p})$라는 matrix-matrix multiplication에 대해 살펴볼 것입니다. 앞서 Matrix-Vector Product에서 보셨다시피, matrix는 vector들로 이루어져 있다고 할 수 있습니다. 따라서, Matrix-Matrix Product도 Vector-Vector 또는 Matrix-Vector Product 관점에서 접근할 수 있습니다.

 

  • In terms of vector-vector products

$ \quad $ 행 벡터들로 이루어진 A와 열 벡터들로 이루어진 B로 표현할 수 있을 것이고, 순서에 맞는 A의 행벡터와 B의 열벡터 간의 inner-product를 통해 $C \in \mathbb{R}^{m \times p}$ 를 구할 수 있습니다.

$C=AB=\begin{bmatrix}
- & {a_1}^{T} & - \\ 
- & {a_2}^{T} & - \\
 &  \vdots & \\ 
- & {a_m}^{T} & - \\
\end{bmatrix}\begin{bmatrix}
| & | &  & | \\ 
b^1 & b^2 & \cdots & b^p\\ 
| & | &  & |
\end{bmatrix}=\begin{bmatrix}
{a_1}^{T}b_1 & {a_1}^{T}b_2 & \cdots & {a_1}^{T}b_p\\ 
{a_2}^{T}b_1 & {a_2}^{T}b_2 & \cdots & {a_2}^{T}b_p\\ 
\vdots & \vdots & \ddots & \vdots\\ 
{a_m}^{T}b_1 & {a_m}^{T}b_2 & \cdots & {a_m}^{T}b_p
\end{bmatrix}$

$ \quad $ 또한, 열 벡터들로 이루어진 A와 행 벡터들로 이루어진 B로 표현할 수 있을 것이고, 각 벡터들의 outer-products의 결과들의 합으로 $C \in \mathbb{R}^{m \times p}$ 를 구할 수 있습니다.

$C=AB=\begin{bmatrix}
| & | &  & | \\ 
a^1 & a^2 & \cdots & a^n\\ 
| & | &  & |
\end{bmatrix}\begin{bmatrix}
- & {b_1}^{T} & - \\ 
- & {b_2}^{T} & - \\
 &  \vdots & \\ 
- & {b_n}^{T} & - \\
\end{bmatrix}=\sum_{i=1}^{n}a^i{b_i}^{T}$

  • In terms of matix-vector products

$ \quad $ 위에서 계속 해왔듯이, 행렬과 벡터 간의 곱으로 표현할 수 있습니다. 행렬 A와 B의 열 벡터들 간의 곱으로 표현한다면 다음과 같이 접근할 수 있습니다.

$C=AB=A\begin{bmatrix}
| & | &  & | \\ 
b^1 & b^2 & \cdots & b^p\\ 
| & | &  & |
\end{bmatrix}=\begin{bmatrix}
| & | &  & | \\ 
Ab^1 & Ab^2 & \cdots & Ab^p\\ 
| & | &  & |
\end{bmatrix}$

$ \quad $ 또한, A의 행 벡터들과 행렬 B와의 곱으로 표현할 수 있고 다음과 같이 접근합니다.

$C=AB=\begin{bmatrix}
- & {a_1}^{T} & - \\ 
- & {a_2}^{T} & - \\
 &  \vdots & \\ 
- & {a_m}^{T} & -
\end{bmatrix}B=\begin{bmatrix}
- & {a_1}^{T}B & - \\ 
- & {a_2}^{T}B & - \\
 &  \vdots & \\ 
- & {a_m}^{T}B & -
\end{bmatrix}$

- Matrix multiplication properties

사실 행렬 간의 곱 연산에 적용되는 속성들이 많이 존재하지만, 추후에 유용하게 쓰일만한 속성들 몇 가지만 간략하게 정리하고 넘어갈 것입니다. 소개하는 속성들의 증명과 이 외에 다른 속성들은 추가적인 검색을 통해서 쉽게 찾을 수 있을 거라 생각합니다.

  • 결합 법칙 (associative) : $(AB)C=A(BC)$
  • 분배 법칙 (distributive) : $A(B+C)=AB+AC$
  • 교환 법칙은 성립하지 않음 (not commutative) : $AB \ne BA$

 

3. Operation and Properties

- The diagonal matrices and identity matrix (대각 행렬과 단위행렬)

$ \quad $ Diagonal matrix는 행렬의 대각 성분 외의 모든 성분들이 0인 행렬을 의미합니다.

$D_{ij}=\left\{\begin{matrix}
d_i \quad(i=j)\\ 
0 \quad(i \ne j)
\end{matrix}\right.$

$ \quad $ Identity matrix는 square matrix(정방 행렬)이며, 모든 대각 성분이 1이고 그 외의 성분은 모두 0인 행렬을 의미합니다. 이는 $I=diag(1, 1, \cdots, 1)$로 나타낼 수 있습니다. 또한, $AI=A=IA$라는 특징을 가지고 있습니다.

$I_{ij}=\left\{\begin{matrix}
1 \quad(i=j)\\ 
0 \quad(i \ne j)
\end{matrix}\right.$

- The Transpose (전치 행렬)

$ \quad $ 행렬 A의 transpose는 A의 행과 열을 바꾼 결과를 의미하고, 다음과 같이 표현할 수 있습니다.

${(A^T)}_ij={(A)}_ji$

$ \quad $ transpose와 관련된 속성들을 살펴보면,

  • ${(A^T)}^T=A$
  • ${(AB)}^T=B^TA^T$
  • ${(A+B)}^T = A^T+B^T$

- Symmetric Matrices (대칭행렬)

$ \quad $ square matrix인 A가 $A=A^T$라면 행렬 A를 symmetric 하다 라고 하며, $A=-A^T$라면 행렬 A를 anti-symmetric하다 라고 하고 있습니다. 여기서, 어떤 행렬 $A \in \mathbb{R}^{n \times n}$에 대해, $A+A^T$는 symmetric 하고, $A-A^T$는 anti-symmetric 하다는 특징을 가진다는 것에 주목해야 합니다. 이를 통해, 행렬 A는 다음과 같이 표현될 수 있습니다. 이는 유용하게 사용될 것입니다.

$A=\frac{1}{2}(A+A^T)+\frac{1}{2}(A-A^T)$

- The Trace (대각합)

$ \quad $ square matrix $A \in \mathbb{R}^{n \times n}$에서 trace는 행렬의 대각 성분들의 합을 의미합니다. 이를 $tr(A)$ 혹은 $trA$ 라고 표기합니다.

$tr(A)=\sum_{i=1}^{n}A_{ij}$

$ \quad $ trace와 관련된 속성들을 살펴보면, 

  • $A \in \mathbb{R}^{n \times n}$ 일 때, $ \quad $ $trA=trA^T$
  • $A, B \in \mathbb{R}^{n \times n}$ 일 때, $ \quad $ $tr(A+B)=trA+trB$
  • $A \in \mathbb{R}^{n \times n}, t \in \mathbb{R}$ 일 때, $ \quad $ $tr(tA)= t \; trA$
  • $AB$ 가 square matrix일 때, $ \quad $ $trAB=trBA$
  • $ABC$ 가 square matrix일 때, $ \quad $ $trABC=trBCA=trCAB=\cdots$

- Norms

$ \quad $ 벡터의 norm이라는 것은 일반적으로 벡터의 "길이" 또는 "크기"라고 할 수 있습니다. norm을 측정하는 방식은 L1, L2, L∞ 등이 있고, 일반적으로 우리가 벡터의 길이를 구할 때 유클리디언 혹은 L2 norm을 이용합니다. 또한, 벡터 x의 L2 norm을 $ \left \| x \right \|_{2}=x^Tx $ 라고 표현할 수 있습니다. Lp norm을 구하는 식은 다음과 같습니다.

$\left \| x \right \|_{p}=(\sum_{i=1}^{n}{x_i}^p)^{\frac{1}{p}}$

$ \quad $ norm과 관련된 속성들을 살펴보면,

  • 모든 $x \in \mathbb{R}^{n}$ 에 대해, $ \quad $ $f(x) \ge 0$ $ \quad $ : non-negativity
  • x가 영 벡터라면, $ \quad $ $f(x) = 0$ $ \quad $ : definitness
  • 모든 $x \in \mathbb{R}^{n}, x \in \mathbb{R}$ 에 대해, $ \quad $  $f(tx) = |t|f(x)$ $ \quad $ : homogenity
  • 모든 $x, y \in \mathbb{R}^{n}$ 에 대해, $ \quad $ $f(x+y) \le f(x)+f(y)$ $ \quad $ : triangle inequality

$ \quad $ 추가적으로 L1, L2, ..., L∞ norm들에 대해 조금 더 알아보겠습니다. 위에서 정의한 Lp norm 공식에 의한 L1, L2, L∞ norm은 다음과 같고, $x \in \mathbb{R}^2$ 에서 $\left \| x \right \|_{p}=1$ 라고 할 때, 각 Lp norm이 그리는 그래프를 나타내 보았습니다. L∞ norm으로 갈수록 점점 정사각형에 가까워지는 모습을 볼 수 있습니다.

$\left \| x \right \|_{1}=\sum_{i=1}^{n}|x_i|$

$\left \| x \right \|_{2}=\sqrt{\sum_{i=1}^{n}x_i^2}$

$\left \| x \right \|$∞ $=max_i|x_i|$

 

Lp norm (출처: 위키피디아:Lp space)

- Linear Independence (선형 독립)

$ \quad $ 집합을 이루고 있는 벡터 $\left \{x_1, x_2, \cdots, x_n  \right \} \subset \mathbb{R}^m$ 에 대해서, 어느 한 벡터가 나머지 벡터들의 linear combination(선형 조합)으로서 표현될 수 없다면 이 벡터들은 linearly independent(선형 독립) 라고 합니다. 반대로, 어느 한 벡터가 나머지 벡터들의 linear combination으로서 표현될 수 있다면, 이 벡터들은 linearly dependent(선형 종속) 라고 할 수 있습니다.

 

$\sum_{i=1}^{n}\alpha_ix_i=0$ 

 

  • 다시 말하자면, 위의 식을 만족시키는 벡터 x 들의 집합이 영 벡터뿐이라면, linearly independent
  • 위의 식을 만족시키는 벡터 x 들의 집합이 영벡터 이외에 다른 경우가 있다면, linearly dependent

- Rank

$ \quad $ Rank는 벡터들의 집합에서 linearly independent 한 벡터들의 수를 의미합니다. 즉, 행렬 $A \in \mathbb{R}^{m \times n}$에 대해, column rank는 linearly independent를 이루는 열벡터들의 부분 집합 중 가장 크기가 큰 부분 집합의 수를 말하고, row rank는 linearly independent를 이루는 행벡터들의 부분 집합 중 가장 크기가 큰 부분 집합의 수를 말합니다.

$ \quad $ rank와 관련된 속성들을 살펴보면, 다음과 같습니다.

  • $A \in \mathbb{R}^{m \times n}$에 대해, $ \quad $ $rank(A) \le min(m, n)$
  • 이때, $rank(A) = min(m, n)$이면, A는 full rank
  • $A \in \mathbb{R}^{m \times n}$에 대해, $ \quad $ $rank(A) = rank(A^T)$
  • $A \in \mathbb{R}^{m \times n}, B \in \mathbb{R}^{n \times p}$에 대해, $ \quad $ $rank(AB) \le min(rank(A), rank(B))$
  • $A, B \in \mathbb{R}^{m \times n}$에 대해, $ \quad $ $rank(A+B) \le rank(A)+rank(B)$

- The Inverse of a Square Matrix (역행렬)

$ \quad $ $A \in \mathbb{R}^{n \times n}$에 대해, A의 역행렬(the inverse of A)은 $A^{-1}$라고 표기하고 다음 식을 만족합니다.

$A^{-1}A=I=AA^{-1}$

$ \quad $ 역행렬은 모든 행렬에 대해서 존재하는 것은 아닙니다. non-square matrix에 대해서는 역행렬이 존재하지 않고, square matrix라 해도 역행렬이 존재하지 않는 경우가 있습니다. 행렬 $A$에 대해 역행렬 $A^{-1}$이 존재하면 A는 invertible(가역) 또는 non-singular 이라고 하고, 역행렬이 존재하지 않는다면 A는 non-invertible(비가역) 또는 singular 이라고 정의하고 있습니다.

$ \quad $ 역행렬과 관련된 속성들을 살펴보면, 다음과 같습니다. $ \quad (A, B \in \mathbb{R}^{n \times n})$

  • ${(A^{-1})}^{-1}=A$
  • ${(AB)}^{-1}=B^{-1}A^{-1}$
  • ${(A^{-1})}^{T}={(A^{-T})}^{-1}=A^{-T}$

- Orthogonal Matrices (직교 행렬)

$ \quad $ 두 벡터 $x, y \in \mathbb{R}^{n}$ 가 존재하고 두 벡터가 수직을 이루고 있다고 가정하면, $x+y$ 벡터는 다음과 같이 나타날 것입니다. 이때, 우리는 이미 알고 있던 피타고라스 정리를 이용해 아래 식을 유도할 수 있습니다. 

$\left \| x \right \|^{2}+\left \| y \right \|^{2} = \left \| x+y \right \|^{2}$

$0=2xy$

$\therefore x^Ty=0$

$ \quad $ 이를 통해, 두 벡터 $x, y$가 orthogonal(직교) 하면 $ x^Ty=0$ 이라는 것을 알 수 있습니다. 또한, $\left \| x \right \|_{2}=1$ 이면 벡터 x가 normalized 되었다고 합니다. 그리고, square matrix $U \in \mathbb{R}^{n \times n}$에 대해, 각 column vecotor가 다른 column vector들에 대해 orthogonal 하면 U는 orthogonal (직교)라고 하고, 이때 모든 column vector들이 normalized까지 되어있으면 orthonormal (정규 직교)이라고 합니다.

 

  • orthogonal matrix의 inverse(역행렬)는 transpose 한 것과 같습니다. $ \quad $ $U^TU=I=UU^T$
  • orthogonal matrix U와 벡터 x의 연산 결과는 벡터 x의 Euclidean norm 값을 변화시키지 않습니다. $ \quad $ $\left \| Ux \right \|_{2}=\left \| x \right \|_{2}$

 

 

* 이해가 되지 않거나 수정해야 할 부분이 있다면, 언제든지 댓글 부탁드립니다. 감사합니다.

Comments