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이다.
- 예를 들어, 벡터 [1,2][1, 2] 와 [3,4][3, 4] 가 주어졌을 때,
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가 크기보다 작은 경우
행렬의 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 딥러닝 라이브러리 > 텐서연산이 기본
'Python > Algorithm' 카테고리의 다른 글
항등 함수와 소프트맥스 함수 (0) | 2024.09.23 |
---|---|
신경망과 활성화함수 (0) | 2024.09.21 |
퍼셉트론과 논리회로 1 (1) | 2024.09.18 |
[Algorithm] 자료구조와 알고리즘 - 3. 자료구조 - 스택(Stack) (0) | 2023.09.07 |
[Algorithm] 자료구조와 알고리즘 - 2. 자료구조 - 큐(Queue) (0) | 2023.09.06 |