[선형대수학] 벡터와 행렬

머신러닝에 필요한 선형대수학 벡터와 행렬 기초 개념, 특수한 형태의 벡터/행렬을 정리합니다.

선형대수 수식 연산을 사용하면 복잡한 계산 과정을 간단한 수식으로 서술이 가능하고, 기하학적 개념을 기반으로 머신러닝 방법론을 이해하는 데 도움이 된다. 머신러닝에 있어 필요한 선형대수 개념들을 요약해 정리하고자 한다.

머신러닝을 위한 선형대수학

  • 선형대수를 이해하는 관점은 2가지이다 : Numeric Operation, Geometric Intuitioon

Mindmap - Linear Algebra for Machine Learning

Linear Algebra Applications in the ML context

머신러닝에서 선형대수학이 활용되는 예시는 다음과 같다.

  1. Data and learned model representation

  2. Embeddings

  3. Dimensionality reduction

데이터의 유형

스칼라

Scala 스칼라 : 숫자 하나만으로 이루어진 데이터
$x \in \mathbb{R}$ : $x$ 는 실수값을 가진다. ($\mathbb{R}$ : 실수 스칼라에 대한 공간)

  • 수학적 표기 : $(x,y,z)$
  • 스칼라는 하나의 원소만 가지는 텐서로 표현할 수 있다.
import tensorflow as tf 
x = tf.constant(3.0) 
y = tf.constant(2.0) 
# 스칼라 연산 
x + y, x * y, x / y, x**y 
(<tf.Tensor: shape=(), dtype=float32, numpy=5.0>, 
<tf.Tensor: shape=(), dtype=float32, numpy=6.0>, 
<tf.Tensor: shape=(), dtype=float32, numpy=1.5>, 
<tf.Tensor: shape=(), dtype=float32, numpy=9.0>)

벡터

Vector 벡터 : a list of scalar values 여러 숫자가 특정한 순서대로 모여 있는 것

$x = \begin{bmatrix} x_{1} \\ x_{2} \\ x_{3} \\ x_{4} \ \end{bmatrix}$

  • 수학적 표기 : $(\mathbf{u},\mathbf{v},\mathbf{w})$
  • 예측 문제에서 입력 데이터로 사용되는 데이터 벡터를 Feature vector 특징벡터 라고 한다.
  • 디폴트는 열벡터이고 벡터는 1차원의 텐서로 표현할 수 있다.shape=(4,)
x 
<tf.Tensor: shape=(4,), dtype=int32, numpy=array([0, 1, 2, 3], dtype=int32)>

벡터의 기하학적 의미

벡터는 기하학적으로 공간의 점이나 방향으로 해석될 수 있다. 즉, $n$차원 벡터 $a$는 $n$차원 공간의 점(point) or 화살표(arrow) 이다.

행렬

Matrix 행렬 : 복수 차원의 데이터 레코드(벡터)를 합쳐서 표기한 것. 스칼라, 벡터도 수학적으로는 행렬에 해당한다.

$X = \begin{bmatrix} \boxed{\begin{matrix} x_{1, 1} & x_{1, 2} & x_{1, 3} & x_{1, 4}\end{matrix}} \\ \begin{matrix} x_{2, 1} & x_{2, 2} & x_{2, 3} & x_{2, 4}\end{matrix} \\ \begin{matrix} x_{3, 1} & x_{3, 2} & x_{3, 3} & x_{3, 4}\end{matrix} \\ \begin{matrix} x_{4, 1} & x_{4, 2} & x_{4, 3} & x_{4, 4}\end{matrix} \\ \begin{matrix} x_{5, 1} & x_{5, 2} & x_{5, 3} & x_{5, 4}\end{matrix} \\ \begin{matrix} x_{6, 1} & x_{6, 2} & x_{6, 3} & x_{6, 4}\end{matrix} \\ \end{bmatrix}$

$X \in \mathbf{R}^{6\times 4}$

행렬의 행 표기법과 열 표기법

행렬은 복수의 열벡터/행벡터를 쌓은 형태로 표기할 수 있다.
$X = \begin{bmatrix} c_1 & c_2 & \cdots & c_M \end{bmatrix} = \begin{bmatrix} r_1^T \\ r_2^T \\ \vdots \\ r_N^T \\ \end{bmatrix}$

텐서

Tensor 텐서 : 같은 크기의 행렬이 여러 개 같이 묶여 있는 것 (multidimensional array)

특수한 벡터와 행렬

영벡터

$0 \in \mathbf{R}^{N \times 1}$ 모든 원소가 0인 N차원 벡터
$\mathbf{0}_N = \mathbf{0} = 0 = \begin{bmatrix} 0 \\ 0 \\ \vdots \\ 0 \\ \end{bmatrix}$

일벡터

$1 \in \mathbf{R}^{N \times 1}$ 모든 원소가 1인 N차원 벡터

$\mathbf{1}_N = \mathbf{1} = 1 = \begin{bmatrix} 1 \\ 1 \\ \vdots \\ 1 \\ \end{bmatrix}$

정방행렬

$X \in \mathbf{R}^{N\times N}$ square matrix 행 개수와 열 개수가 같은 행렬

대각행렬

diagonal matrix 대각행렬 : 모든 비대각 요소가 0인 행렬 (반드시 정방행렬일 필요는 없다.)
$D = \begin{bmatrix} d_{1} & 0 & \cdots & 0 \\ 0 & d_{2} & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & d_{M} \\ 0 & 0 & \cdots & 0 \\ 0 & 0 & \cdots & 0 \\ 0 & 0 & \cdots & 0 \\ \end{bmatrix}$

항등행렬

$I \in \mathbf{R}^{N \times N}$ identity matrix 모든 대각 요소가 1인 행렬
$I = \begin{bmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \\ \end{bmatrix}$

대칭행렬

symmetric matrix 대칭행렬 : 전치연산으로 얻은 전치행렬과 원래 행렬이 같은 행렬
$S = \begin{bmatrix} 1 & 2 & \cdots & 5 \\ 2 & 1 & \cdots & 4 \\ \vdots & \vdots & \ddots & \vdots \\ 5 & 4 & \cdots & 1 \\ \end{bmatrix}$


Source & Reference
Mathematics for Machine Learning | How Machine Learning Uses Linear Algebra to Solve Data Problems | Principal Component Analysis in R