콘텐츠로 이동

행렬은 어려운 기호를 더 많이 붙이기 위해 만든 것이 아닙니다. 같은 모양의 계산이 여러 번 반복될 때, 그 반복을 한 장의 표로 묶기 위해 만든 언어입니다. 이 강의에서는 행렬을 먼저 숫자 표로 보고, 그다음 계산 규칙을 한꺼번에 적는 도구로 읽겠습니다.

먼저 알아둘 말

  • 행렬: 숫자를 가로줄과 세로줄에 맞추어 적은 표다.
  • 행: 표의 가로줄이다.
  • 열: 표의 세로줄이다.
  • 벡터: 숫자를 한 줄로 세운 대상이다.
  • 행렬곱: 한 행렬의 행과 다른 대상의 열을 맞추어 새 숫자를 만드는 계산이다.
  • 단위행렬: 곱해도 대상을 바꾸지 않는 행렬이다.
  • 역행렬: 어떤 행렬의 작용을 되돌리는 행렬이다.
  • 선형시스템: 여러 개의 일차방정식을 한꺼번에 묶은 식이다.

이 강의에서 답할 질문

  • 왜 여러 식을 표로 적으면 더 잘 보일까?
  • 행렬과 벡터를 곱한다는 말은 정확히 어떤 계산일까?
  • 여러 방정식을

$$ Ax=b $$

처럼 쓰면 무엇이 좋아질까?

먼저 떠올릴 장면

  • 학생 세 명의 국어, 영어, 수학 점수를 문장으로 적으면 길지만 표로 적으면 한눈에 보인다.
  • 연립방정식도 마찬가지다. 식을 하나씩 길게 쓰는 대신 계수만 뽑아 표로 놓으면 구조가 드러난다.
  • 신경망의 한 층도 입력 숫자 여러 개를 받아 출력 숫자 여러 개를 만든다. 이 반복 계산을 한 번에 적는 데 행렬이 쓰인다.

생각의 순서

  • 먼저 행렬을 숫자 표로 이해한다.
  • 그다음 행렬과 벡터의 곱이 왜 여러 가중합을 한 번에 계산하는 일인지 본다.
  • 그다음 행렬과 행렬의 곱이 왜 규칙 두 개를 이어 붙인 계산인지 본다.
  • 마지막으로 연립방정식을

$$ Ax=b $$

로 묶어 읽으면서 선형시스템을 이해한다.

본문

행렬을 처음 보면 네모 괄호와 숫자가 많아서 낯설 수 있습니다. 하지만 출발점은 단순합니다. 행렬은 숫자를 질서 있게 적어 놓은 표입니다.

예를 들어 두 학생의 두 과목 점수를 한 번에 적으면 다음처럼 쓸 수 있습니다.

$$ \begin{bmatrix} 80 & 90 \ 75 & 95 \end{bmatrix} $$

첫째 행은 첫 번째 학생의 정보이고, 둘째 행은 두 번째 학생의 정보입니다. 첫째 열은 첫 번째 과목, 둘째 열은 두 번째 과목입니다. 즉 행과 열은 숫자의 의미를 잃지 않게 자리를 정해 주는 장치입니다.

연립방정식에서도 같은 일이 일어납니다. 예를 들어

$$ x+y=3 $$

$$ 2x-y=0 $$

라는 두 식이 있으면, 중요한 숫자는 각 식의 계수입니다. 이 계수를 표로 모으면

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

가 됩니다. 행렬은 이렇게 반복되는 식의 뼈대를 꺼내 보여 줍니다.

이제 행렬과 벡터의 곱을 봅시다. 벡터

$$ \begin{bmatrix} x \ y \end{bmatrix} $$

는 두 입력값을 세로로 모아 놓은 것입니다. 여기에 행렬

$$ \begin{bmatrix} a & b \ c & d \end{bmatrix} $$

를 곱하면 결과는

$$ \begin{bmatrix} ax+by \ cx+dy \end{bmatrix} $$

가 됩니다.

이 식을 그냥 외우면 안 됩니다. 왜 이런 모양이 나오는지 읽어야 합니다. 첫째 행

$$ \begin{bmatrix} a & b \end{bmatrix} $$

은 첫 번째 출력을 만드는 규칙입니다. 입력

$$ \begin{bmatrix} x \ y \end{bmatrix} $$

를 받아

$$ ax+by $$

를 만듭니다. 둘째 행도 같은 방식으로 두 번째 출력

$$ cx+dy $$

를 만듭니다. 즉 행렬-벡터 곱은 입력 여러 개를 섞어서 출력 여러 개를 만드는 가중합 계산입니다.

이 관점은 AI에서 바로 이어집니다. 입력 특성이 여러 개 있을 때, 한 층의 뉴런 여러 개가 각각 다른 가중합을 계산합니다. 그 계산을 한 번에 적은 것이 행렬-벡터 곱입니다.

이제 행렬과 행렬의 곱을 봅시다. 이것도 본질은 같습니다. 규칙 하나를 적용한 뒤, 그 결과에 다시 다른 규칙을 적용하는 것입니다.

먼저

$$ y=Bx $$

라고 놓고, 그다음

$$ z=Ay $$

라고 하면, 두 식을 이어서

$$ z=A(Bx)=(AB)x $$

로 쓸 수 있습니다. 그래서 행렬곱

$$ AB $$

규칙 B를 먼저 적용하고, 그다음 규칙 A를 적용한 전체 결과를 한 번에 적은 것입니다.

여기서 중요한 사실 하나가 나옵니다. 일반적으로

$$ AB \ne BA $$

입니다. 이유는 적용 순서가 다르면 결과도 달라질 수 있기 때문입니다. 신발을 신고 양말을 신는 것과, 양말을 신고 신발을 신는 것이 다른 것과 같습니다. 행렬곱은 순서를 가진 연산입니다.

단위행렬은 아무것도 바꾸지 않는 규칙입니다. 2차원에서는

$$ I= \begin{bmatrix} 1 & 0 \ 0 & 1 \end{bmatrix} $$

입니다. 아무 벡터

$$ \begin{bmatrix} x \ y \end{bmatrix} $$

에 대해

$$ I \begin{bmatrix} x \ y \end{bmatrix} = \begin{bmatrix} x \ y \end{bmatrix} $$

가 됩니다.

역행렬은 적용한 규칙을 되돌릴 수 있을 때 등장합니다. 어떤 행렬

$$ A $$

에 대해

$$ A^{-1}A=I $$

가 되는 행렬

$$ A^{-1} $$

가 있으면, 우리는

$$ Ax=b $$

에서 양변에

$$ A^{-1} $$

를 곱해

$$ x=A^{-1}b $$

처럼 해를 구할 수 있습니다. 물론 모든 행렬이 역행렬을 가지는 것은 아닙니다. 어떤 규칙은 되돌릴 수 없기 때문입니다.

이제 선형시스템을 봅시다. 여러 개의 일차방정식을 한꺼번에 적으면

$$ Ax=b $$

가 됩니다. 여기서

$$ A $$

는 계수행렬이고,

$$ x $$

는 미지수를 모아 놓은 벡터,

$$ b $$

는 오른쪽 상수항을 모아 놓은 벡터입니다.

예를 들어

$$ x+y=3 $$

$$ 2x-y=0 $$

$$ \begin{bmatrix} 1 & 1 \ 2 & -1 \end{bmatrix} \begin{bmatrix} x \ y \end{bmatrix} = \begin{bmatrix} 3 \ 0 \end{bmatrix} $$

처럼 쓸 수 있습니다.

이렇게 쓰면 좋은 점이 분명합니다. 식을 낱개로 볼 때는 계산만 보이지만, 행렬로 묶으면 구조가 보입니다. 어떤 계수가 반복되는지, 어떤 규칙이 입력을 출력으로 바꾸는지, 해가 존재하려면 어떤 조건이 필요한지를 더 잘 따질 수 있습니다.

결국 행렬은 숫자를 예쁘게 적는 장식이 아닙니다. 반복되는 선형 계산을 구조로 읽게 해 주는 언어입니다. 그리고 선형시스템은 그 언어가 왜 필요한지 보여 주는 가장 기본적인 예입니다.

예제

  1. 행렬과 벡터를 곱해 출력 만들기 문제: 다음 값을 구하라.

$$ A= \begin{bmatrix} 1 & 2 \ 3 & 4 \end{bmatrix}, \qquad x= \begin{bmatrix} 1 \ 1 \end{bmatrix} $$

$$ Ax $$

풀이: 첫째 행은 첫 번째 출력을 만들고, 둘째 행은 두 번째 출력을 만든다.

$$ Ax= \begin{bmatrix} 1 & 2 \ 3 & 4 \end{bmatrix} \begin{bmatrix} 1 \ 1 \end{bmatrix} = \begin{bmatrix} 1\cdot 1 + 2\cdot 1 \ 3\cdot 1 + 4\cdot 1 \end{bmatrix} = \begin{bmatrix} 3 \ 7 \end{bmatrix} $$

해설: 각 행은 입력 벡터를 받아 출력 한 성분을 만든다. 그래서 행렬의 행 수만큼 출력 성분이 생긴다.

  1. 연립방정식을 행렬식으로 묶기 문제: 다음 연립방정식을

$$ Ax=b $$

형태로 써라.

$$ x+y=3 $$

$$ 2x-y=0 $$

풀이: 계수만 표로 모으면 된다.

$$ A= \begin{bmatrix} 1 & 1 \ 2 & -1 \end{bmatrix}, \qquad x= \begin{bmatrix} x \ y \end{bmatrix}, \qquad b= \begin{bmatrix} 3 \ 0 \end{bmatrix} $$

따라서

$$ \begin{bmatrix} 1 & 1 \ 2 & -1 \end{bmatrix} \begin{bmatrix} x \ y \end{bmatrix} = \begin{bmatrix} 3 \ 0 \end{bmatrix} $$

해설: 행렬은 식을 줄여 쓰는 도구이기도 하지만, 더 중요한 역할은 구조를 한꺼번에 보이게 하는 것이다.

  1. 단위행렬이 왜 아무것도 바꾸지 않는지 보기 문제: 다음을 계산하라.

$$ I= \begin{bmatrix} 1 & 0 \ 0 & 1 \end{bmatrix}, \qquad v= \begin{bmatrix} 2 \ 5 \end{bmatrix} $$

$$ Iv $$

풀이:

$$ Iv= \begin{bmatrix} 1 & 0 \ 0 & 1 \end{bmatrix} \begin{bmatrix} 2 \ 5 \end{bmatrix} = \begin{bmatrix} 1\cdot 2 + 0\cdot 5 \ 0\cdot 2 + 1\cdot 5 \end{bmatrix} = \begin{bmatrix} 2 \ 5 \end{bmatrix} $$

해설: 각 성분을 그대로 통과시키기 때문에 단위행렬은 곱해도 대상을 바꾸지 않는다.

스스로 점검

연습 문제

  1. 다음 행렬과 벡터의 곱을 구하라.

$$ \begin{bmatrix} 2 & 1 \ 0 & 3 \end{bmatrix} \begin{bmatrix} 1 \ 2 \end{bmatrix} $$

  1. 다음 연립방정식을

$$ Ax=b $$

형태로 써라.

$$ x-2y=1 $$

$$ 3x+y=7 $$

  1. 왜 일반적으로

$$ AB $$

$$ BA $$

가 같지 않을 수 있는지 설명하라. 4. 신경망의 한 층 계산이 왜 행렬-벡터 곱으로 표현되는지 설명하라.

복습 질문

  1. 행렬은 왜 단순한 숫자 표를 넘어 계산 규칙을 담는 언어가 되는가?
  2. 행렬-벡터 곱은 어떤 계산을 한 번에 묶는가?
  3. 선형시스템을

$$ Ax=b $$

로 적으면 무엇이 더 잘 보이는가?

체크포인트

  1. 행렬의 행과 열이 어떤 뜻을 가지는지 설명할 수 있다.
  2. 간단한 행렬-벡터 곱을 직접 계산할 수 있다.
  3. 연립방정식을 행렬 형태로 옮길 수 있다.
  4. 행렬곱이 규칙의 합성이란 뜻을 말로 설명할 수 있다.