본문 바로가기
Python/Algorithm

Linear Algebra for AI_1

by skwkiix 2025. 2. 23.
728x90

Introductory Linear Algebra for AI

AI에서 선형대수는 핵심적인 역할을 한다. 벡터와 행렬을 다룰 수 있어야 머신러닝과 딥러닝의 수학적 원리를 이해할 수 있다.

이 포스팅에서는 선형대수의 기본 개념부터 AI에서 어떻게 활용되는지까지 개괄적으로 정리한다.


1. Fundamental Concepts of Linear Algebra

선형대수에서 중요한 개념(연산)

크게 Addition 과 Scaler Multiplication(Scailing) 이 있다.

  • Addition (벡터/행렬의 덧셈과 뺄셈) : 벡터나 행렬의 요소별로 더하고 빼는 연산
  • Scalar Multiplication (스칼라 곱셈) : 하나의 숫자(스칼라)를 벡터 또는 행렬에 곱해서 크기를 조정
  • Linear Combination (선형결합) : 여러 벡터의 가중합을 의미한다. (즉, 벡터들의 스칼라배와 덧셈으로 새로운 벡터를 만들 수 있다.

2. Dimension of Data

데이터는 데이터의 차원에 따라 벡터, 행렬, 텐서 등으로 구분된다.

아래로 내려갈수록 차원이 한 차원씩 늘어난다.

 

Point [0,1] : 존재한다 / 존재하지 않는다 p는 R^0 공간에 속함 (p ∈ R^0)
Scalar 수 자체 (1차원) : -1, 0, 1, 2, 3 (수직선) s는 R^1 공간에 속함 (s ∈ R^1)
Vector 2차원 이상의 데이터: 수직선 두 개(x 정보, y 정보 이상) a는 R^n 공간에 속함 (a ∈ R^n)
Matrix 2차원 벡터 A는 m×n 크기의 행렬 (A ∈ R^(m×n))
Tensor 다차원 벡터 T는 d1 × d2 × ... × dn 크기의 텐서 (T ∈ R^(d1×d2×...×dn))

 

예를 들어, a = [ 1,3,5] 라는 벡터가 있다면, a ∈ R^3 이라고 표현한다. 

또는, 매트릭스로도 표현이 가능하다 a  R^1*3


3. 벡터의 독립성과 Basis, Span

벡터의 개념을 정확히 이해하려면 선형독립(Linear Independence), Basis, Span 개념을 알아야 한다.

(1) 선형독립(Linear Independence)

벡터 집합 {v1,v2,...,vn}\{v_1, v_2, ..., v_n\}이 선형독립이라는 것은 어떤 벡터도 다른 벡터들의 선형결합으로 표현될 수 없다는 의미이다.

즉, c1v1+c2v2+...+cnvn=0c_1 v_1 + c_2 v_2 + ... + c_n v_n = 0 이 성립할 때, 모든 cic_i가 0이어야 한다.

  • 선형독립 벡터의 특징
    • 하나의 벡터가 다른 벡터들의 조합으로 나타나지 않는다.
    • 독립적인 정보량을 가지므로 중복되지 않는다.
    • 차원이 nn인 공간에서는 최대 nn개의 선형독립 벡터가 존재한다.
  • 선형종속(Linear Dependence)
    반대로, 벡터들 중 하나라도 다른 벡터들의 조합으로 표현될 수 있으면 선형종속(Linear Dependence) 이라고 한다.

(2) Basis 와 Span

  • Basis
    한 공간에서 가장 작은 독립적인 벡터들의 집합을 의미한다. 즉, 공간을 생성(Span)하는 최소한의 벡터 집합이다.
    • 예를 들어, 2D 평면에서는 [1,0],[0,1][1,0], [0,1] 두 개의 벡터가 basis 역할을 한다. 이 벡터들의 선형결합으로 모든 2차원 벡터를 표현할 수 있다면 선형 독립이라고 본다.
  • Span(생성, 확장 공간)
    주어진 벡터들의 선형결합으로 만들 수 있는 모든 벡터들의 집합이다. 만약 이 두 벡터가 선형독립이라면, 2차원 평면 전체를 Span할 수 있다.
    • 예를 들어, 벡터 [1,2][1, 2][3,4][3, 4] 가 주어졌을 때,
      이 두 벡터의 선형결합으로 생성할 수 있는 모든 벡터들이 Span이다.

4. 행렬의 Rank와 크기의 차이

행렬의 크기(Size)와 Rank(계수 행렬의 차원)은 다르다.

  • 행렬의 크기(Size)
    행렬이 몇 개의 행(Row)과 열(Column) 을 가지는지를 나타낸다.A=[123456]
    • A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix}이 행렬의 크기는 2×3 (2행, 3열)
  • Rank(계수)
    행렬에서 선형독립인 행이나 열 벡터의 개수를 의미한다.
    즉, 행렬의 벡터들이 만들어낼 수 있는 공간의 차원이다.
    • Rank가 크기보다 작은 경우
      • 행렬의 열(또는 행) 중 일부가 다른 열(또는 행)들의 선형결합으로 표현될 수 있으면 Rank는 줄어든다.
      • 예를 들어, 어떤 행렬의 크기가 3×33 \times 3 이더라도 Rank가 2일 수 있다. 이는 3개의 열 중 하나가 나머지 두 개의 선형조합이라는 뜻이다.
    • Full Rank(최대 랭크)
      • 행렬의 Rank가 행 개수 또는 열 개수 중 작은 값과 같으면 Full Rank이다.
      • 정방행렬(행과 열 개수가 같은 행렬)의 경우, Full Rank이면 역행렬이 존재한다.

행렬의 Rank 가 항상 매트릭스의 크기와 같을까? 아니다.

A = \begin{bmatrix} 1 & 2 & 3 \\ 2 & 4 & 6 \\ 3 & 6 & 9 \end{bmatrix}

이 행렬은 3×33 \times 3 이지만, Rank는 1이다.
왜냐하면 모든 행이 첫 번째 행의 배수로 이루어져 있어 선형독립한 행이 1개뿐이다.

 


5. 선형대수가 AI에서 중요한 이유

AI에서는 벡터, 행렬, 텐서를 자유자재로 다룰 줄 알아야 한다.

벡터 연산이 신경망의 기본 : 입력 데이터, 가중치, 출력 모두 벡터로 표현됨

행렬과 Rank의 개념이 모델의 성능과 연결

  • 신경망에서 가중치 행렬이 Full Rank를 유지해야 모델의 학습이 원활하다.
  • Rank가 낮으면 모델이 불필요한 차원을 학습할 가능성이 높음.

딥러닝에서는 텐서 연산이 필수

  • CNN에서는 3D 텐서 연산
  • RNN에서는 시계열 데이터 사용
  • TensorFlow, PyTorch 딥러닝 라이브러리 > 텐서연산이 기본