-
[Linear Algebra] 3. MatricesMathematics for Machine Learning(1)/1. Linear Algebra 2026. 4. 7. 20:00
행렬(Matrix)이란 무엇일까?

수학적으로 행렬은 실수를 가로(행, rows)와 세로(열, columns)로 배치한 직사각형 형태의 숫자의 묶음이다.$$A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} \in \mathbb{R}^{m \times n}$$
수식적 정의는 $m \times n$ 행렬 $A$는 $m$개의 행과 $n$개의 열로 이루어져 있으며, 각 원소 $a_{i,j}$는 $i$번째 행과 $j$번째 열에 위치한 숫자이다.
기하학적 해석은 단순한 숫자 표가 아니라, 데이터를 담는 그릇이자 공간을 변형시키는 명령어라고 생각해도 된다.

예를 들어, 하나의 열 벡터(column vector)는 다차원 공간의 한 점 또는 원점에서 뻗어나가는 화살표로 볼 수 있다. 행렬은 이러한 화살표들을 여러 개 묶어 놓은 것이다. 즉, 행렬 하나가 하나의 데이터 셋 전체를 대표할 수 있다.

Matrix Addition
행렬 덧셈의 수식적인 정의는 다음과 같다.
$A, B \in \mathbb{R}^{m \times n}$의 합은 같은 위치에 있는 원소끼리 더하는 성분별(Element-wise) 합으로 정의된다.
$$A + B = \begin{bmatrix} a_{11} + b_{11} & \cdots & a_{1n} + b_{1n} \\ \vdots & \ddots & \vdots \\ a_{m1} + b_{m1} & \cdots & a_{mn} + b_{mn} \end{bmatrix}$$연산을 위한 핵심 조건은, 먼저 두 행렬의 크기(Dimension)가 반드시 같아야 한다.
또한 위 그림으로 보면 행렬을 '점들의 구름'으로 보았는데, 행렬의 덧셈은 공간상의 모든 점을 $B$라는 행렬이 가진 벡터만큼 일제히 이동(Translation) 시키는 것과 같다.

Matrix Multiplication
행렬의 곱셈은 덧셈보다는 까다롭지만, 머신 러닝의 모든 연산 중 가장 중요하다고 할 수 있다.
수식적 정의는 다음과 같다.
$A \in \mathbb{R}^{m \times n}$과 $B \in \mathbb{R}^{n \times k}$의 곱 $C = AB$에서 각 원소 $c_{ij}$는 다음과 같이 계산된다.$$c_{ij} = \sum_{l=1}^{n} a_{il}b_{lj}$$
$A$의 $i$번째 행과 $B$의 $j$번째 열을 꺼내어, 대응하는 원소끼리 곱한 뒤 모두 더한다. 이를 나중에 설명하겠지만 내적(Dot-product)라고 한다.
곱셈 연산을 하기 위해서도 중요한 핵심 조건이 있다.
먼저, 곱하는 행렬의 열 개수와 행 개수가 반드시 같아야한다. ($n \times k) \times (k \times m) \rightarrow (n\times m)$
$A$가 내보내는 정보의 차원($k$)과 $B$가 받아들이는 정보의 차원($k$)이 일치해야 '연결'될 수 있다는 의미로 해석하면 될 것 같다.
또한 중요한 것 중 하나가, 교환 법칙이 성립하지 않는다.는 점이다.
$AB$는 정의되어도 $BA$는 정의되지 않을 수 있다.($m \ne n$) 설령 둘 다 정의되더라도, 일반적으로 $AB \ne BA$이다.
쉽게 말해, 정사각형을 늘리고 나서 회전하는 것과, 회전하고 나서 늘리는 것과 다르다. 행렬은 '순서'가 있는 변환이다.

주의할 점이 하나가 있는데, 우리가 흔히 프로그래밍(Python의
*연산 등)에서 하는 '같은 위치끼리의 곱'은 수학적 행렬 곱셈이 아니다.- Hadamard Product : $c_{ij} = a_{ij}b_{ij}$ (같은 위치끼리 곱함)
- Matrix Multiplication : $c_{ij} = \sum a_{il}b_{lj}$ (행과 열의 내적)
성분별 곱과 수학적 행렬 곱을 엄격히 구분할 필요가 있다.
Identity Matrix: $I_n$)
단위 행렬(Identity Matrix)는 행렬계의 숫자 "1"이라고 생각하면 된다.
수식적 정의는 다음과 같다.
$n \times n$ 크기의 정사각 행렬(Square matrix)로, 왼쪽 위에서 오른쪽 아래로 내려오는 주대각선(diagonal) 원소는 모두 1이고 나머지는 모두 0인 행렬이다.
$$I_n = \begin{bmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \end{bmatrix}$$단위 행렬을 어떤 벡터나 행렬에 곱한다는 것은 아무런 변형을 가하지 않는다.라는 의미이다. $x,y,z$ 축의 방향과 길이를 그대로 유지하는 '무색무취'의 변환이라고 할 수 있다.
$A \in \mathbb{R}^{m \times n}$일 때, 왼쪽에서 곱할 때는 $m \times m$ 크기의 $I_m$이 필요하고, 오른쪽에서 곱할 때는 $n\times n$크기의 $I_n$이 필요하다.(행렬 곱셈의 차원 맞추기 규칙 때문)
아무튼, 단위 행렬은 행렬계의 숫자 "1"이므로, 곱하나 마나 자기 자신 그대로 동일하다.
$$I_m A = A I_n = A$$
그럼 언제쓰느냐?실제로 수식 정리 중에 $A$라는 행렬을 $AI$로 바꾸어 써서 차원을 맞추거나 역행렬 유도 과정을 시작할 때 아주 유용하게 쓰인다.
Asscociativity
$$(AB)C = A(BC)$$
세 행렬을 곱할 때, 앞의 두개($AB$)를 먼저 곱하고 $C$를 곱하나, 뒤의 두 개($BC$)를 먼저 곱하고 $A$를 앞에 곱하나 결과는 동일하다. 즉, 결합 법칙(Associativity)가 성립한다.기하학적으로 생각하면, 변환을 세 번 연속으로 할 때, '첫 번째와 두 번째 변환을 합친 후 세 번째를 하는 것'과 '두 번째와 세 번째 변환을 합친 후 첫 버째 변환에 이어 붙이는 것'의 최종 결과(공간의 최종 모습)는 동일하다는 의미이다.
하지만 여기서 순서($A \to B \to C$) 자체를 바꾸면 안된다. 묶는 괄호 위치만 바꿀 수 있다.
Distributivity
$$(A+B)C = AC + BC$$
$$A(C+D) = AC + AD$$
두 행렬을 먼저 다한 후 다른 행렬을 곱하는 것은, 각각 곱한 결과를 나중에 더하는 것과 같다. 즉, 분배 법칙(Distributivity)가 성립한다는 의미이다.기하학적으로 생각해보면, 두 개의 '점들의 구름'($A, B$)을 합친 뒤 공간 변환($C$)을 가하는 것이나, 각각 변환한 뒤 합치는 것이나 결과가 동일하다는 의미이다. 선형 변환(Linear Mapping)의 아주 중요한 성질 중 하나이다.

Inverse and Transpose
Inverse
역행렬(Inverse)는 정사각 행렬 $A \in \mathbb{R}^{n \times n}$에 대해, $AB = I_n = BA$를 만족하는 행렬 $B$가 존재한다면, 이 $B$를 $A$의 역행렬이라고 부르고 $A^{-1}$이라고 쓴다.
기하학적으로는 행렬 $A$가 공간을 회전시키거나 늘리는 '명령어'라면, 역행렬 $A^{-1}$은 그 변화를 완벽하게 되돌려서 원래의 상태(단위행렬 $I$)로 복구하는 명령어 인 것이다.
중요한 특징이 하나 있는데, 역행렬이 존재한다면, 그 행렬은 오직 하나 뿐이라는 의미이다. 즉, 되돌리는 방법은 딱 한 가지라는 의미인 것이다.(Uniqueness)
하지만, 모든 행렬에 역행렬이 있는 것은 아니다.
- 가역/정칙 행렬 (Regular/Invertible/Nonsingular) : 역행렬이 존재하는 행렬이다. 공간을 변형 시켰지만 정보가 파괴되지 않아 다시 펼 수 있는 상태라고 보면 된다.
- 특이/비가역 행렬 (Sigular/Noninvertible) : 역행렬이 존재하지 않는 행렬이다. 공간을 납작하게 눌러버린 경우이다. 예를 들어 3차원 입체를 2차원 평면으로 눌러버렸다면, 사라진 높이 정보를 알 수 없으므로 다시 3차원으로 되돌릴 수 없다.

$2\times 2$ 행렬의 역행렬과 행렬식(Determinant)
$2\times 2$ 행렬로 예시를 들어 역행렬이 존재할 조건을 생각해보자.$$A = \begin{bmatrix} a_{11} & a_{12} \ a_{21} & a_{22} \end{bmatrix} \implies A^{-1} = \frac{1}{a_{11}a_{22} - a_{12}a_{21}} \begin{bmatrix} a_{22} & -a_{12} \ -a_{21} & a_{11} \end{bmatrix}$$
- 행렬식(Determinant) : 분모에 있는 $a_{11}a_{22} - a_{12}a_{21}$이 바로 행렬식이다.
- 존재 조건 : 이 값이 0이 아닐 때만 역행렬이 존재한다.
- $2\times 2$에서 행렬식은 평행사변형의 넓이가 된다. 넓이가 0이라는 것은 도형이 점이나 선으로 찌그러졌다는 의미이고, 그래서 되돌릴 수(역행렬을 가질 수) 없는 것이다.

아래 예시처럼 $A$와 $B$를 곱했을 때, 단위 행렬 $I$가 나온다는 것은 $A$라는 변환을 거친 뒤 $B$라는 변환을 적용하면 아무 일도 없었던 것처럼 원상 복구된다는 의미이다. 즉, $A$의 역행렬은 $B$가 되고, $B$의 역행렬은 $A$가 된다는 의미이다.

Transpose
$m\times n$ 행렬 $A$의 전치 행렬(Transpose) $B$는 $B = A^\top$ $n\times m$ 행렬이며, 원소 $b_{ij}$는 원래 행렬 $a_{ji}$와 같다.($b_{ij} = a_{ji}$).
행렬의 주대각선(Main diagonal)을 축으로 삼아 행렬을 180도 뒤집는다고 생각하면 쉽다. $A$의 '열'들을 가져다가 $A^\top$의 '행'으로 차례대로 써넣은 것과 같다.
3차원 공간에서 본다면 $x$축 성분과 $y$축 성분의 역할을 서로 바꾸는 일종의 대칭 이동과 같다. 데이터 측면에서는 "특성(Feature)"과 "샘플(Sample)"의 시점을 전환하는 의미를 가진다.
Properties
역행렬의 곱셈 법칙 : $(AB)^{-1} = B^{-1}A^{-1}$
순서가 반대로 바뀐다. 직관적으로 생각해보면, 신발을 신고($A$) 양말을 신는($B$) 동작의 역과정은, 양말을 벗고($B^{-1}$) 신발을 벗는($A^{-1}$) 것이 아니라, 나중에 한 동작부터 거꾸로 풀어내야 하기 때문이다.전치행렬의 곱셈 법칙 : $(AB)^\top = B^\top A^\top$
역시 순서가 반대로 바뀐다. 행렬 곱셈의 차원(Dimension)을 맞추기 위한 수학적 필연성 때문이다.덧셈에 대한 성질 :
Transpose $(A+B)^\top = A^\top + B^\top$ 각각 뒤집어서 더해도 동일하다.
Inverse $(A+B)^{-1} \neq A^{-1} + B^{-1}$ 절대 성립하지 않는다.대칭 행렬(Symmetric Matrix) : $A = A^\top$를 만족하는 정사각 행렬
주대각선을 기준으로 원소들이 거울처럼 완벽하게 대칭을 이룬다. 머신러닝에서 매우 중요한 분산-공분산 행렬(Covariance Matrix)이나 거리 행렬 등이 모두 대칭 행렬이다. 공간적으로는 어느 한쪽으로 치우치지 않은 균형 잡힌 변환을 의미하기도 한다.
몇가지 주의할 점이 있다.
- 합 : 대칭행렬끼리 더하면 여전히 대칭행렬이다.
- 곱 : 대칭행렬 $A, B$를 곱한다고 해서 결과가 항상 대칭행렬인 것은 아니다.($AB \neq (AB)^\top$)
예시에서 볼 수 있듯이 연산 순서에 따라 대칭성이 깨질 수도 있다. 이는 행렬 곱셈이 '교환 법칙'이 성립하지 않기 때문에 발생하는 것이다.

- $(A^{-1})^\top = (A^\top)^{-1} = A^{-\top}$ :역행렬을 구하고 뒤집나, 뒤집고 나서 역행렬을 구하나 결과는 동일하다.
Multiplication by a Scalar
행렬 $A$에 실수 $\lambda$를 곱한다는 것은, 행렬의 모든 원소에 각각 $\lambda$를 곱하는 것을 의미한다. ($K_{ij} = \lambda a_{ij}$)
기하학적으로 생각해보면, 공간의 균등한 팽창과 수축으로 이야기할 수 있다.
- $\lambda > 1$ : 공간에 있는 모든 화살표(벡터)들이 같은 비율로 길어진다. 풍선에 그림을 그려놓고 풍선을 부는 것과 비슷하다고 볼 수 있다.
- $ 0 < \lambda < 1$ : 공간이 전체적으로 쪼그라든다.
- $\lambda < 0$ : 모든 화살표가 원점을 지나 반대 방향으로 뻗어나가며 크기가 조절된다.

주요 성질은 다음과 같다.
- 결합법칙: $(\lambda \psi)C = \lambda (\psi C)$. 숫자를 먼저 곱하나 나중에 곱하나 결과는 같다.
- 자유로운 이동: $\lambda(BC) = (\lambda B)C = B(\lambda C)$. 스칼라는 행렬 곱셈 사이를 자유롭게 드나들 수 있다. 이는 복잡한 머신러닝 수식을 정리할 때 매우 편리한 도구가 된다.
- 전치와의 관계: $(\lambda C)^\top = \lambda C^\top$. 행렬을 뒤집고 숫자를 곱하나, 곱하고 뒤집나 똑같다. (숫자 $\lambda$는 전치해도 그대로 $\lambda$이기 때문이다!)
- 분배법칙: 숫자를 더해서 행렬에 곱하는 것이나, 각각 곱해서 더하는 것이나 같다.

Compact Representations
이제 오늘 포스팅의 마지막 ,연립방정식의 행렬 표현 방법을 살펴보자. 사실 이 파트가 선형대수학이 왜 이렇게 복잡한 머신러닝에 쓰이는지를 보여준다고 해도 과언이 아니다.(아마도...)
우리가 중학교 때 배웠던 복잡한 연립방정식을 행렬을 이용하면 $Ax = b$라는 아주 짧은 단어로 표현할 수 있다.
$$\begin{bmatrix} 2 & 3 & 5 \\ 4 & -2 & -7 \\ 9 & 5 & -3 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} = \begin{bmatrix} 1 \\ 8 \\ 2 \end{bmatrix}$$기하학적으로 생각해보면, "열 벡터의 선형 조합(Linear Combinaction)"이라고 할 수 있다. 즉, $Ax$라는 곱셈은 아래와 같이 보는 것이다.
$$x_1 \begin{bmatrix} 2 \\ 4 \\ 9 \end{bmatrix} + x_2 \begin{bmatrix} 3 \\ -2 \\ 5 \end{bmatrix} + x_3 \begin{bmatrix} 5 \\ -7 \\ -3 \end{bmatrix} = \begin{bmatrix} 1 \\ 8 \\ 2 \end{bmatrix}$$여기서 행렬 $A$의 각 열(Column)들은 우리가 가진 "재료(Base)"라고 할 수 있다.
변수 $x_1, x_2, x_3$는 그 재료들을 얼마나 사용할지 결정하는 양(Weight)이다.
결과 $b$는 재료들을 섞어 만든 최종 요리라고 생각하면 되겠다.머신 러닝 모델(예: 선형 회귀)에서 $A$는 데이터(특성)이고, $x$는 우리가 학습을 통해 찾아야 할 가중치(Weight)이며, $b$는 우리가 예측하고 싶은 정답(Target)이라고 할 수 있다.
우리는 수많은 데이터($A$)를 어떻게 조합($x$)해야 정답($b$)에 가장 가까워질 수 있는지를 찾는 것이다. 연립방정식을 푼다는 것은 정답 $b$를 만들기 위해 각 재료(열 벡터)를 어떤 비율($x$)로 섞어야 하는가?에 대한 해듭을 찾는 과정이라고 할 수 있다.
다음 포스팅은 그래서 이 복잡한 연립 방정식을 어떻게 풀 것인가를 올리도록 하겠다:)
'Mathematics for Machine Learning(1) > 1. Linear Algebra' 카테고리의 다른 글
[Linear Algebra] 2. Systems of Linear Equations (0) 2026.04.03 [Linear Algebra] 1. Introduction of Linear Algebra (0) 2026.03.30