欲速不達

일을 급히 하고자 서두르면 도리어 이루지 못한다.

Fantastic AI, Fantastic World

DS | Data Science/Statistics & Math

[Linear Algebra] Part1. 행렬과 벡터 그리고 선형대수학

_껀이_ 2024. 1. 2. 09:55
728x90
반응형

1. 들어가며

딥러닝, 머신러닝 등 인공지능 분야에서는 주로 행렬, 벡터를 사용하는 알고리즘으로 선형대수학 개념이 중요하게 작용한다. 그러므로 선형대수학의 정리가 필수적이며, 단순하게 수학적 개념 뿐만 아니라 컴퓨터의 연산과정과 데이터의 구조 등까지 연결될 수 있는 개념이다.

 

인공지능 분야에 대한 공부를 시작한지 몇년이 지났지만, 그동안 기초개념을 제대로 복습하지 않아 다시 정리를 시작한다.

머신러닝, 딥러닝, 나아가 컴퓨터가 하는 데이터 연산 과정에 녹아있는 선형대수학을 정리하여, 기초에 대한 이해를 다지고자 한다.


2. 정의

선형대수학은 간단하게 숫자를 대신하여 문자를 사용하는 수학으로, 너무 크거나 작은 숫자를 표현하는 것 대신 문자를 사용함으로써 개념 정리를 용이하게 할 수 있다는 장점이 있다. 즉, 문자로 대신하여 작성한 방정식을 통해 N차원의 공간에  데이터를 모델링함으로써 문제를 해결할 수 있다는 것이다.

일반적으로 고교과정까지 학습했던 연립방정식 또한 N차원의 공간에 데이터(숫자)를 모델링하는 방정식이라고 할 수 있으나, 선형대수학에서는 대다수의 문제를 더 간단한 1차 선형방정식의 관점으로 해결하려고 한다.

 

즉, 

$ a x^2 + b x + c = 0 $라는 수식을 $ a x_1 + b x_2 + c = 0 $처럼 1차항으로 이루어진 선형방정식으로 표현하여 문제를 해결하려는 것이다.

 

또, 위와 같이 1차항으로 구성된 선형방정식이 여러개 존재하고 이를 한번에 표현하거나 연산할때 행렬과 벡터의 개념이 적용된다.

 

정리하자면,

선형대수학은
복잡한 방정식을 1차항으로 구성된 단순한 선형방정식으로 표현하고
이를 행렬과 벡터로 취급하는 형태로 연산함으로써
하나의 큰 문제를 여러 개의 작은 문제로 풀이하는 것이다.

 


3. 행렬과 벡터

(1) $ x + 2 y = 4 $

(2) $ 2 x + 5 y = 9 $

 

이러한 연립방정식을 풀이한다고 해보자.

우리는 (1) 식에 2를 곱하여 (2) 식에 대입하면 y를 알 수 있으며, 연립방정식의 해는 (2, 1)라는 것을 알고 있다.

 

하지만,

이러한 연립방정식이 10,000개, 1,000,000개 등 무수히 많다고 한다면 대입법을 통해서 해결하기가 매우 어렵다.

(물론, 시간을 많이 투자하여 천천히 풀면 가능은 하겠지만..)

 

이렇게 무수히 많은 연립방정식이 존재할때, 어떻게 해야 할까.

 

 

일단 방정식을 다시 보자.

 

방정식에는 상수부분인 계수와, x,y 등으로 표현되는 변수가 존재한다.

(1) 식의 계수에 2를 곱하여 (2) 식에 대입하면, (2) 식을 y 변수 하나의 식으로 표현할 수 있고, 이렇게 되면 바로 y를 알 수 있다. 즉, 연립방정식의 풀이에서는 계수가 중요하다는 것이고 문제 풀이를 위해 조작이 가능하다는 것이다.

 

그럼 계수를 조작해서 위의 연립방정식을 다시 표현해보자.

 

$$ \begin{bmatrix} 1 & 2\\ 2 & 5 \end{bmatrix} $$

 

방정식의 계수를 행렬로 표현한 것이다.

 

이처럼 방정식 전체를 행렬로 표현한 식은 다음과 같다.

 

$$ \begin{bmatrix} 1 & 2\\ 2 & 5 \end{bmatrix} \begin{bmatrix} x\\ y \end{bmatrix} = \begin{bmatrix} 4\\ 9 \end{bmatrix} $$

 

 

이런 방법으로 무수히 많은 N개의 계수와 변수를 가진 식을 표현하면

 

(1) $$ \begin{bmatrix} 1 & \cdots & 5\\ \vdots & \ddots & \vdots\\ 4 & \cdots & 8 \end{bmatrix} \begin{bmatrix} a\\ \vdots\\ z \end{bmatrix} = \begin{bmatrix} 0\\ \vdots\\ 8 \end{bmatrix} $$ (2) $$ \begin{bmatrix} 1 & \cdots & 5 & 0\\ \vdots & \ddots & \vdots & \vdots\\ 4 & \cdots & 8 & 8 \end{bmatrix} \begin{bmatrix} a\\ \vdots\\ z \end{bmatrix} = \begin{bmatrix} 0\\ \vdots\\ 0 \end{bmatrix} $$

 

이렇게 표현된다.

이때 계수들이 모인 NxN 모양을 '행렬', 변수들이 모인 Nx1 모양을 '벡터'라고 한다.

표현 방식에 따라 (2)처럼 상수항까지 계수 행렬에 포함하여 표현할 수 있다.

 

행렬의 크기는 NxN으로 표현하며, N(행 개수) x N(열 개수)로 표현한다.

행렬 내부의 각각의 값은 이제 계수가 아닌 성분(또는 N행 N열의 값)라고 표현한다.

 

위의 행렬식을 간단한 수식으로 표현하면 다음과 같다.

 

$$ A \vec{x} = \vec{y} $$

 

벡터 표현은 스칼라와 분별하기 위에 선을 추가하여 표현한다.

또, 후에 나오는 노름(norm)과는 달리 방향이 있기 때문에(주로 물리학에서) 화살표로 표시하기도 한다. 

 


 

이렇게 간단한 선형대수학의 개념과 행렬, 벡터에 대한 기본적인 설명이 끝났다.

물론, 깊은 이해를 위해서는 벡터 공간(Vector Space), 행렬연산 등 많은 개념이 있으나 추후 정리하도록 하고

기본적인 이해부터 정리하고자 한다. 

 

728x90
반응형