인공지능(AI)과 딥러닝의 세계로 입문하려는 분들이 가장 먼저 마주하는 거대한 벽, 바로 수학입니다. 그중에서도 선형대수학(Linear Algebra)은 인공지능의 언어라고 불릴 만큼 가장 기초적이면서도 필수적인 학문입니다. 많은 입문자가 복잡한 수식 기호 앞에서 좌절하곤 하지만, 사실 개발자나 데이터 사이언티스트에게 필요한 선형대수학은 수학과 전공자 수준의 증명 능력이 아닙니다. 데이터가 어떻게 흐르고, 공간상에서 어떻게 변환되는지를 이해하는 직관(Intuition)이 훨씬 중요합니다.
단순히 공식을 외우는 것이 아니라, 데이터가 신경망을 통과하며 어떻게 처리되는지를 이해하기 위해서는 선형대수학의 핵심 개념인 벡터와 행렬을 확실하게 잡고 넘어가야 합니다. 오늘 이 글에서는 복잡한 수식보다는 직관적인 개념 이해와 실무적 관점을 중심으로, 인공지능 선형대수학 기초: 벡터와 행렬 개념 완벽 정리를 도와드리겠습니다.
1. 인공지능에서 왜 선형대수학이 중요한가?
많은 분들이 "요즘은 텐서플로우(TensorFlow)나 파이토치(PyTorch) 같은 라이브러리가 알아서 계산해 주는데, 굳이 어려운 수학을 알아야 하나요?"라고 묻습니다. 물론, 단순히 남이 만든 코드를 복사해서 실행하는 수준이라면 몰라도 됩니다. 하지만 나만의 모델 구조를 설계하거나, 데이터의 차원을 맞추거나, 학습이 제대로 되지 않을 때 원인을 분석하기 위해서는 선형대수학적 사고가 필수입니다.
인공지능, 특히 딥러닝 모델은 본질적으로 거대한 행렬 연산의 집합입니다. 우리가 다루는 이미지, 텍스트, 음성 데이터는 컴퓨터 내부에서 모두 숫자들의 집합인 벡터와 행렬로 변환되어 처리됩니다. 예를 들어, 딥러닝 모델을 돌리다가 가장 많이 마주치는 에러 중 하나인 Shape Mismatch Error는 행렬 간의 차원이 맞지 않아 발생하는 문제입니다. 이때 선형대수학의 기초가 없다면 어디서부터 손을 대야 할지 막막해질 수밖에 없습니다. 즉, 인공지능 선형대수학 기초를 이해한다는 것은 AI가 데이터를 바라보고 처리하는 방식을 근본적으로 이해하는 것과 같습니다.
2. 데이터의 기본 단위: 스칼라, 벡터, 행렬, 텐서
선형대수학을 시작하기 위해 가장 먼저 정리해야 할 것은 데이터를 담는 그릇, 즉 데이터의 형태(Shape)에 대한 정의입니다. 차원이 늘어날수록 이름이 달라지는데, 이를 명확히 구분하는 것이 첫걸음입니다.
2.1 스칼라 (Scalar)
스칼라는 방향 없이 크기만 가지고 있는 하나의 숫자를 의미합니다. 예를 들어 온도가 25도라거나, 키가 175cm라는 것들은 모두 스칼라입니다. 프로그래밍적으로는 변수 하나에 담긴 상수값(int, float)이라고 생각하면 쉽습니다. 수학적으로는 0차원 텐서로 분류됩니다.
2.2 벡터 (Vector)
벡터는 숫자들을 일렬로 나열한 것입니다. 기하학적으로는 크기와 방향을 동시에 가지는 화살표로 표현됩니다. 하지만 AI 관점에서는 이를 특징(Feature)을 담은 리스트로 이해하는 것이 더 좋습니다.
- 특징: $n$개의 숫자가 모여 있으면 $n$차원 벡터라고 부릅니다.
- 예시: 어떤 사람의 정보를 분석할 때
[키, 몸무게, 나이]를 묶어서[175, 70, 30]이라는 리스트로 만들었다면, 이는 3차원 벡터가 됩니다. 이 벡터는 3차원 공간상의 한 점(Point)으로 표현될 수 있습니다.
2.3 행렬 (Matrix)
행렬은 숫자들을 직사각형 형태로 배열한 2차원 배열입니다. 엑셀 스프레드시트를 떠올리면 가장 이해하기 쉽습니다. 행렬은 벡터를 여러 개 쌓아 놓은 것으로 볼 수도 있습니다.
- 표기: $m$개의 행(row)과 $n$개의 열(column)을 가진 행렬을 $m imes n$ 행렬이라고 부릅니다.
- AI에서의 역할: 데이터셋 전체를 한 번에 나타내거나, 신경망의 가중치(Weight)를 저장하는 데 사용됩니다. 예를 들어 100명의 사람에 대한 3가지 특징(키, 몸무게, 나이)을 모아두면 $100 imes 3$ 행렬이 됩니다.
2.4 텐서 (Tensor)
텐서는 스칼라, 벡터, 행렬을 아우르는 가장 포괄적인 개념입니다. 3차원 이상의 배열을 통칭할 때 주로 사용됩니다. 딥러닝 프레임워크의 이름이 '텐서플로우'인 이유도 여기에 있습니다.
- 예시: 컬러 이미지는 높이(Height), 너비(Width) 외에도 RGB 채널(Channel)이라는 차원이 하나 더 필요하므로 3차원 텐서(Height $ imes$ Width $ imes$ 3)로 표현됩니다. 만약 이런 이미지를 64장씩 묶어서 한 번에 학습시킨다면(Batch Size), 이는 $(64 imes H imes W imes 3)$ 형태의 4차원 텐서가 됩니다.
3. 벡터의 연산과 기하학적 의미
인공지능 선형대수학 기초에서 벡터 연산은 데이터 간의 관계를 파악하는 핵심 도구입니다. 더하기, 빼기도 중요하지만 AI에서 가장 빈번하게 사용되는 것은 내적(Dot Product)입니다.
3.1 벡터의 덧셈과 뺄셈
같은 차원을 가진 두 벡터는 서로 더하거나 뺄 수 있습니다. 이는 기하학적으로 공간 상에서 위치를 이동시키는 것을 의미합니다. 벡터 A에 벡터 B를 더한다는 것은, 원점에서 A만큼 이동한 후 그 지점에서 다시 B만큼 이동한다는 뜻입니다. 이는 정보의 결합이나 누적을 표현할 때 사용될 수 있습니다.
3.2 벡터의 내적 (Dot Product)
내적은 딥러닝에서 가장 중요한 연산 중 하나입니다. 두 벡터의 각 성분을 곱한 뒤 모두 더한 값으로, 결과는 벡터가 아닌 스칼라가 나옵니다.
- 수식: $A \cdot B = \sum(ai imes bi)$
- 의미: 내적은 두 벡터가 얼마나 닮았는지(유사도)를 나타냅니다. 기하학적으로 내적은 한 벡터를 다른 벡터 위로 투영(Projection)한 길이와 관련이 있습니다.
- 유사도 측정: 두 벡터의 방향이 같으면 내적 값은 커지고(양수), 직각(90도)이면 0이 되며, 반대 방향이면 음수가 됩니다. 이를 정규화하여 사용하는 것이 바로 코사인 유사도(Cosine Similarity)입니다.
- 활용: 넷플릭스나 유튜브의 추천 시스템에서 사용자의 취향 벡터와 영화의 특성 벡터를 내적하여 점수가 높으면 추천하는 방식 등으로 활용됩니다. 또한, 신경망의 합성곱(Convolution) 연산 역시 본질적으로는 내적 연산의 반복입니다.
4. 행렬 연산과 선형 변환
행렬은 단순히 숫자를 담아두는 표가 아니라, 공간을 왜곡시키고 이동시키는 함수(Function)로서의 역할을 합니다. 이를 선형 변환(Linear Transformation)이라고 합니다.
4.1 행렬 곱셈 (Matrix Multiplication)
행렬 곱셈은 일반적인 숫자의 곱셈과는 다릅니다. 앞 행렬의 '행'과 뒤 행렬의 '열'을 내적하여 새로운 행렬을 만듭니다. 이때 중요한 조건은 앞 행렬의 열 개수와 뒤 행렬의 행 개수가 같아야 한다는 점입니다.
- 차원 확인의 중요성: $A$가 $(m imes k)$ 행렬이고 $B$가 $(k imes n)$ 행렬일 때, 결과 행렬 $C$는 $(m imes n)$ 크기를 가집니다. 딥러닝 모델을 짤 때 에러가 가장 많이 나는 부분이 바로 이 차원(Shape)이 맞지 않을 때입니다. $k$ 부분이 서로 일치해야 연산이 가능하다는 점을 반드시 기억해야 합니다.
4.2 행렬의 역할: 데이터의 변환
입력 데이터 벡터 $x$가 있을 때, 여기에 행렬 $W$를 곱한다는 것은 $x$라는 데이터를 새로운 공간으로 보낸다는 의미입니다. 행렬은 공간을 회전시키거나(Rotation), 늘리고 줄이거나(Scaling), 찌그러뜨릴(Shearing) 수 있습니다.
딥러닝은 결국 데이터들을 분류하기 좋은 형태로 공간을 비틀고 접는 과정의 연속인데, 이 역할을 행렬 곱셈이 수행합니다. 예를 들어, 강아지와 고양이 사진 데이터가 뒤섞여 있는 공간에 적절한 행렬을 곱해 변환하면, 강아지는 왼쪽으로 고양이는 오른쪽으로 모이게 만들 수 있습니다.
5. 인공지능 학습의 핵심: 역행렬과 고유값
조금 더 심화된 개념으로 넘어가면 역행렬과 고유값 분해 등이 등장합니다. 이들은 데이터의 압축이나 방정식을 푸는 데 사용됩니다.
5.1 역행렬 (Inverse Matrix)
어떤 행렬 $A$를 곱해서 변환된 데이터를 다시 원래대로 되돌리는 행렬을 역행렬이라고 합니다. $A^{-1}$로 표기합니다. $A imes A^{-1} = I$ (단위 행렬)가 성립합니다. 하지만 모든 행렬이 역행렬을 가지는 것은 아니며, 계산 비용이 매우 큽니다. 따라서 실제 AI 학습 과정에서는 역행렬을 직접 구하기보다는 경사 하강법(Gradient Descent)과 같은 최적화 방식을 통해 근사해를 찾는 방법을 주로 사용합니다.
5.2 고유값(Eigenvalue)과 고유벡터(Eigenvector)
행렬을 벡터에 곱했을 때, 벡터의 방향은 변하지 않고 크기만 변하는 특별한 벡터들이 존재합니다. 이때의 벡터를 고유벡터, 변하는 크기의 비율을 고유값이라고 합니다.
- 활용: 이는 주성분 분석(PCA) 등 차원 축소 기법에서 데이터의 주요 특징을 추출할 때 핵심적으로 사용됩니다. 데이터가 가장 넓게 퍼져 있는 방향(분산이 큰 방향)을 찾는 것이 바로 고유벡터를 찾는 과정과 연결됩니다. 이를 통해 불필요한 정보를 제거하고 핵심 정보만 남겨 AI 모델의 효율성을 높일 수 있습니다.
6. 딥러닝과 선형대수학의 연결 고리
이제까지 배운 개념들이 실제 딥러닝 공식에 어떻게 적용되는지 간단한 예시를 통해 확인해 보겠습니다. 가장 기초적인 선형 회귀(Linear Regression)나 뉴런(Perceptron)의 연산은 다음과 같이 표현됩니다.
$$Y = WX + b$$
- $X$ (입력): 우리가 분석할 데이터입니다. (벡터 또는 행렬)
- $W$ (가중치): 학습을 통해 업데이트되는 파라미터입니다. (행렬). 이 값이 변함에 따라 입력 데이터가 변환되는 방식이 달라집니다.
- $b$ (편향): 활성화 조건을 조절하는 값입니다. (벡터). 그래프상에서 절편에 해당하며, 원점을 지나지 않도록 평행이동을 시켜줍니다.
- $Y$ (출력): 모델이 예측한 결과값입니다.
우리가 "모델을 학습시킨다"라고 말하는 것은, 입력 $X$와 정답 $Y$ 사이의 관계를 가장 잘 설명하는 최적의 행렬 $W$와 벡터 $b$를 찾아내는 과정입니다. 이 과정에서 수많은 행렬 곱셈과 미분(기울기 계산)이 수행되며, 오차를 줄이는 방향으로 $W$의 숫자들이 조금씩 조정됩니다.
7. 효과적인 선형대수학 학습 로드맵
인공지능 선형대수학 기초를 마스터하기 위해 수학과 전공 서적을 처음부터 끝까지 증명하며 공부하는 것은 비효율적일 수 있습니다. 개발자와 데이터 사이언티스트를 위한 효율적인 학습 방법은 다음과 같습니다.
- 개념 위주의 학습: 복잡한 손계산은 컴퓨터가 합니다. '행렬 곱셈이 기하학적으로 무엇을 의미하는가?', '내적은 언제 쓰는가?'와 같은 의미와 직관을 기르는 데 집중하세요.
- 코드로 구현하기: 파이썬(Python)의 NumPy 라이브러리를 사용하여 직접 벡터와 행렬을 만들고 연산해보세요.
np.dot(),np.matmul()등을 직접 써보고,shape속성을 확인하며 차원 감각을 익히는 것이 수식을 눈으로 보는 것보다 훨씬 빠릅니다. - 시각화 자료 활용: 3Blue1Brown과 같은 유튜브 채널의 'Essence of Linear Algebra' 시리즈는 벡터와 행렬이 공간을 어떻게 움직이는지 눈으로 보여줍니다. 이런 시각적 자료는 추상적인 개념을 구체화하는 데 큰 도움이 됩니다.
결론: 수학은 AI의 언어다
오늘 우리는 인공지능을 지탱하는 가장 튼튼한 기둥인 선형대수학의 기초 개념들을 살펴보았습니다. 스칼라, 벡터, 행렬, 텐서의 정의부터 내적과 행렬 곱셈의 의미까지, 이 모든 것이 현대의 최첨단 AI 기술을 가능하게 하는 원동력입니다.
인공지능 선형대수학 기초: 벡터와 행렬 개념 완벽 정리를 통해 막연했던 수학에 대한 두려움을 조금이라도 덜어내셨기를 바랍니다. 수학적 기초가 탄탄해질수록 여러분이 설계하는 AI 모델은 더욱 정교해지고 강력해질 것입니다. 지금 바로 NumPy를 켜고, 행렬을 만들어보세요. 그것이 AI 전문가로 가는 첫걸음입니다.