AI공부 · 선형대수
벡터란 무엇인가
1장. 벡터란 무엇인가
이 장을 마치면 벡터를 화살표와 숫자 목록 두 가지로 동시에 떠올리고, 벡터 덧셈과 스칼라 곱을 그림과 계산 양쪽으로 할 수 있습니다.
1.1 벡터를 보는 세 가지 관점
벡터는 선형대수의 가장 기본 단위입니다. 문제는 분야마다 “벡터”라는 말을 조금씩 다르게 쓴다는 것입니다. 셋 다 틀린 게 아니라, 같은 대상을 다른 각도에서 본 것입니다.
| 관점 | 벡터란 | 무엇이 벡터를 정하나 | 생활 속 예시 |
|---|---|---|---|
| 물리학 | 공간 속 화살표 | 길이와 방향 (위치는 상관없음) | 바람: 북동쪽으로 초속 5m |
| 컴퓨터과학 | 순서가 있는 숫자 목록 | 숫자의 개수와 각 자리의 값 | 집 한 채 = [면적 84, 가격 9억] |
| 수학 | 더하기와 숫자 곱하기가 말이 되는 모든 것 | 두 연산의 규칙 | 화살표, 숫자 목록, 심지어 함수까지 |
물리학 관점 자세히 보기. 화살표를 책상 위 어디로 옮겨도, 길이와 방향만 같으면 같은 벡터로 봅니다. 서울에서 부는 북동풍 초속 5m와 부산에서 부는 북동풍 초속 5m는 “같은 바람 벡터”입니다. 종이 위에 그리는 2차원 화살표는 2차원 벡터, 우리가 사는 공간 속 화살표는 3차원 벡터입니다.
컴퓨터과학 관점 자세히 보기. 부동산 데이터를 분석하는데 면적과 가격만 본다고 합시다. 집 한 채를 숫자 두 개로 적으면 [84, 9]처럼 됩니다. 여기서 중요한 것은 순서입니다. 첫 칸은 면적, 둘째 칸은 가격이라는 약속이 있어야 [84, 9]와 [9, 84]가 완전히 다른 집이 됩니다. 숫자가 두 개이므로 2차원 벡터라고 부릅니다. 이 관점에서 “벡터”는 사실상 “목록”을 멋있게 부르는 말입니다.
수학 관점 자세히 보기. 수학자는 앞의 두 관점을 하나로 묶으려 합니다. “벡터끼리 더할 수 있고, 벡터에 숫자를 곱할 수 있으면 그게 벡터다”라고 정의해버립니다. 추상적이라 지금은 넘어가도 됩니다. 다만 여기서 얻을 힌트가 하나 있습니다. 덧셈과 숫자 곱하기, 이 두 연산이 선형대수 전체의 중심이라는 점입니다.
이 교재에서 “벡터”라고 하면 떠올릴 그림: xy 평면 위에, 꼬리를 원점에 붙인 화살표. 물리학 관점과 달리 선형대수에서는 화살표를 아무 데나 두지 않고 거의 항상 원점에서 시작시킵니다. 새 개념이 나오면 먼저 이 화살표로 이해하고, 그다음 숫자 목록으로 옮겨 계산합니다.
1.2 좌표계 기초
좌표계는 화살표 세계와 숫자 세계를 이어주는 다리입니다. 선형대수에서 두 관점을 오가는 일은 전부 이 위에서 일어납니다.
- x축: 가로로 놓인 직선. 오른쪽이 +, 왼쪽이 −
- y축: 세로로 놓인 직선. 위쪽이 +, 아래쪽이 −
- 원점: 두 축이 만나는 점. 공간의 중심이자 모든 벡터의 출발점
- 눈금: “1만큼의 길이”를 아무렇게나 하나 정하고, 그 간격으로 각 축에 표시한 것
- 격자선: 눈금을 평면 전체로 늘려 그은 선. 2차원 공간 전체를 한눈에 보고 싶을 때 씁니다
건축 도면을 떠올리면 쉽습니다. 도면 왼쪽 아래 기준점을 정하고, 가로·세로 치수로 모든 위치를 적습니다. 좌표계는 공간 전체에 그런 기준점과 치수선을 깔아둔 것입니다.
1.3 벡터의 좌표
벡터의 좌표는 “원점에서 화살표 끝까지 어떻게 걸어가라”는 길 안내입니다. 2차원 벡터는 숫자 두 개로 적습니다.
- 첫째 숫자: x축을 따라 얼마나 걸을지. 양수면 오른쪽, 음수면 왼쪽
- 둘째 숫자: 그다음 y축 방향으로 얼마나 걸을지. 양수면 위, 음수면 아래
예를 들어 벡터 (−2, 3)은 “왼쪽으로 2칸, 위로 3칸”입니다. 원점에서 그 자리까지 그은 화살표가 바로 이 벡터입니다.
표기법. 벡터는 점과 헷갈리지 않도록 숫자를 세로로 쓰고 대괄호로 감쌉니다. 교과서에서는 아래처럼 씁니다.
3
점 (−2, 3)은 “위치”이고, 벡터 [−2, 3]은 “원점에서 그 위치까지의 화살표”입니다. 같은 숫자지만 뜻이 다릅니다. 이 글 본문에서는 편의상 [−2, 3]처럼 가로로도 씁니다.
일대일 대응. 숫자 쌍 하나를 주면 화살표가 딱 하나 정해지고, 화살표 하나를 주면 숫자 쌍이 딱 하나 정해집니다. 그래서 화살표와 숫자 목록을 자유롭게 바꿔 생각할 수 있습니다.
3차원으로 확장. x축과 y축 모두에 수직인 z축을 하나 더 세웁니다. 방 바닥이 xy 평면이라면 z축은 천장 방향입니다. 이제 벡터는 숫자 세 개로 적습니다.
1
3
“x축으로 2, y축 방향으로 1, z축 방향으로 3″만큼 이동한 지점까지의 화살표입니다. 2차원과 마찬가지로 숫자 세 개 묶음과 공간 속 화살표는 정확히 일대일로 대응합니다.
미리 보기. 숫자를 4개, 100개, 4096개 쓰면 4차원, 100차원, 4096차원 벡터가 됩니다. 머릿속에 그릴 수는 없지만 계산 규칙은 2차원과 똑같습니다. LLM이 단어 하나를 수천 차원 벡터로 다루는 것이 바로 이것입니다.
1.4 벡터 덧셈
두 벡터를 더하는 방법은 그림으로 한 줄이면 끝납니다. 둘째 벡터의 꼬리를 첫째 벡터의 끝에 갖다 붙이고, 첫째 벡터의 꼬리에서 둘째 벡터의 끝까지 새 화살표를 긋습니다. 그 새 화살표가 합입니다. 이를 “꼬리-끝 잇기(tip-to-tail)”라고 부릅니다.
참고로 이 덧셈에서만 예외적으로 벡터(w)를 원점에서 떼어 옮겨 그립니다. 선형대수에서 벡터가 원점을 떠나는 거의 유일한 장면입니다.
왜 이렇게 더할까? 벡터를 “이동 한 번”으로 생각하면 자연스럽습니다. v만큼 걷고 이어서 w만큼 걸으면, 처음부터 v + w만큼 한 번에 걸은 것과 도착점이 같습니다. 현장에서 “입구에서 동쪽으로 10m, 거기서 북쪽으로 5m”라고 안내하는 것과 같습니다. 두 번의 안내를 합치면 “입구에서 대각선으로 바로 가는 길” 하나가 됩니다.
수직선 덧셈의 확장. 초등학교에서 2 + 5를 “오른쪽으로 2칸, 다시 5칸 가면 7칸”이라고 배웁니다. 벡터 덧셈은 이걸 평면으로 넓힌 것입니다.
숫자로 계산하기. 위 그림의 경로를 걸음 단위로 풀면 “오른쪽 1 → 위 2 → 오른쪽 3 → 아래 1″입니다. 순서를 바꿔 가로 이동을 먼저 모으면 오른쪽으로 1 + 3, 세로는 2 + (−1)입니다. 그래서 결과는 [4, 1]입니다.
2 + 3
−1 = 1 + 3
2 + (−1) = 4
1
일반적으로는 같은 자리끼리 더합니다.
y1 + x2
y2 = x1 + x2
y1 + y2
보충: 순서를 바꿔도 같다. v + w와 w + v는 같은 벡터입니다. w를 먼저 걷고 v를 걸어도 도착점은 같기 때문입니다. 두 경로를 함께 그리면 평행사변형이 생기고, 합 벡터는 그 대각선입니다. 그래서 이 방법을 “평행사변형법”이라고도 부릅니다.
1.5 스칼라 곱
두 번째 기본 연산은 벡터에 숫자 하나를 곱하는 것입니다. 곱하는 숫자에 따라 화살표가 이렇게 변합니다.
| 곱하는 수 | 화살표의 변화 | 예: [2, 1]에 곱하면 |
|---|---|---|
| 1보다 큰 수 (예: 2) | 같은 방향으로 늘어난다 | [4, 2], 길이 2배 |
| 0과 1 사이 (예: 1/3) | 같은 방향으로 줄어든다 | [2/3, 1/3], 길이 1/3 |
| 음수 (예: −1.8) | 방향이 정반대로 뒤집힌 뒤 1.8배로 늘어난다 | [−3.6, −1.8] |
| 0 | 길이 0, 원점에 찍힌 점이 된다 | [0, 0] |
스칼라라는 이름. 이렇게 늘이고 줄이고 뒤집는 일을 스케일링(scaling)이라 하고, 그 일을 하는 숫자를 스칼라(scalar)라고 부릅니다. 지도의 “축척(scale)”과 같은 어원입니다. 선형대수에서 숫자가 하는 주된 일이 벡터를 스케일링하는 것이라서, “스칼라”와 “숫자”를 거의 같은 뜻으로 씁니다.
숫자로 계산하기. 화살표를 2배로 늘리면 가로 이동도 2배, 세로 이동도 2배가 됩니다. 그래서 각 성분에 같은 수를 곱하면 됩니다.
y = kx
ky 예) 2 3
1 = 6
2
주의할 점. 스칼라 곱으로는 방향을 “정반대”로만 바꿀 수 있고, 비스듬히 돌릴 수는 없습니다. 화살표는 늘 같은 직선 위에 머뭅니다. 이 성질이 다음 장의 “스팬(span)” 개념으로 이어집니다.
1.6 왜 두 관점을 오가야 하는가 — AI와의 연결
선형대수가 쓸모 있는 이유는 화살표 관점이나 숫자 관점 중 하나가 옳아서가 아니라, 둘 사이를 자유롭게 번역할 수 있기 때문입니다.
- 데이터를 다루는 사람에게: 숫자 목록 수천 개를 공간 속 점과 화살표로 “보게” 해줍니다. 비슷한 데이터가 모여 있는 패턴, 어떤 연산이 데이터 전체를 어떻게 바꾸는지가 그림으로 보입니다.
- 공간을 다루는 사람에게: 물리학자, 그래픽 프로그래머, 건축 설계자는 공간 속 움직임을 숫자로 바꿔 컴퓨터에 계산시킵니다. 3D 모델링 프로그램이 화면에 물체를 그리는 것도 전부 벡터 계산입니다.
AI에서는 이렇게 쓰입니다.
- 모든 입력은 벡터가 됩니다. 사진 한 장은 픽셀 밝기값을 늘어놓은 긴 벡터이고, 설비 센서 데이터 한 시점은 [온도, 진동, 전류, …] 벡터입니다.
- 단어도 벡터가 됩니다. LLM은 “사과”, “배”, “자동차” 같은 단어를 각각 수천 차원 벡터로 바꿉니다. 뜻이 비슷한 단어는 비슷한 방향을 가리키도록 학습됩니다. 그래서 “사과” 벡터와 “배” 벡터는 가깝고, “자동차”와는 멉니다.
- 신경망 계산의 밑바닥은 덧셈과 스칼라 곱입니다. 신경망의 한 층은 입력 벡터의 각 성분에 가중치(스칼라)를 곱하고 더하는 일을 수백만 번 반복합니다. 이 장에서 배운 두 연산이 AI 엔진의 가장 작은 부품입니다.
정리하면: 새 개념이 나오면 먼저 화살표로 그려서 “무슨 일이 일어나는지” 이해하고, 그다음 숫자로 바꿔 “계산하는 법”을 익힙니다. 이 습관이 선형대수 전체를 관통합니다.
1.7 코드 실습
맥북 터미널에서 pip install numpy matplotlib로 설치한 뒤, Jupyter나 VS Code에서 실행합니다.
실습 1 — 벡터 만들고 계산하기
import numpy as np
v = np.array([1, 2])
w = np.array([3, -1])
print(v + w) # [4 1] 같은 자리끼리 더하기
print(w + v) # [4 1] 순서를 바꿔도 같다
print(2 * v) # [2 4] 2배로 늘이기
print(-1.8 * v) # [-1.8 -3.6] 뒤집고 1.8배
print(np.array([2, 1, 3])) # 3차원 벡터도 똑같이
실습 2 — 화살표로 그려보기
import numpy as np
import matplotlib.pyplot as plt
v = np.array([1, 2])
w = np.array([3, -1])
s = v + w
fig, ax = plt.subplots()
# quiver(시작x, 시작y, 이동x, 이동y)
ax.quiver(0, 0, *v, angles='xy', scale_units='xy', scale=1, color='tab:blue', label='v')
ax.quiver(*v, *w, angles='xy', scale_units='xy', scale=1, color='tab:green', label='w (v 끝에 붙임)')
ax.quiver(0, 0, *s, angles='xy', scale_units='xy', scale=1, color='tab:red', label='v + w')
ax.set_xlim(-1, 6); ax.set_ylim(-2, 4)
ax.set_aspect('equal'); ax.grid(True)
ax.axhline(0, color='gray'); ax.axvline(0, color='gray')
ax.legend()
plt.show()
한글 라벨이 깨지면 맨 위에 plt.rcParams['font.family'] = 'AppleGothic'을 추가합니다.
실습 3 — 직접 바꿔보기
- v와 w 값을 바꿔서 그림의 합 벡터가 예상한 자리에 오는지 확인
s = -1.8 * v로 바꿔서 방향이 뒤집히는지 확인- k를 −2부터 2까지 바꾸며
k * v를 여러 개 그려보고, 전부 한 직선 위에 있는지 관찰
1.8 용어 정리
| 한국어 | 영어 | 뜻 |
|---|---|---|
| 벡터 | vector | 원점에서 시작하는 화살표 = 순서 있는 숫자 목록 |
| 차원 | dimension | 벡터를 이루는 숫자의 개수 |
| 성분 | component | 벡터를 이루는 각각의 숫자 |
| 원점 | origin | 축이 만나는 점, 모든 벡터의 출발점 |
| 좌표 | coordinates | 원점에서 화살표 끝까지 가는 길 안내 숫자 |
| 벡터 덧셈 | vector addition | 꼬리-끝 잇기 = 같은 자리끼리 더하기 |
| 스칼라 | scalar | 벡터를 늘이거나 줄이거나 뒤집는 숫자 |
| 스칼라 곱 | scalar multiplication | 모든 성분에 같은 수를 곱하기 |
| 스케일링 | scaling | 스칼라 곱으로 화살표 길이를 바꾸는 일 |
영어 강의를 볼 때 이 영어 단어들이 들리면 표의 뜻을 떠올리면 됩니다.
1.9 연습문제
종이에 좌표계를 그리고 직접 화살표를 그려가며 풉니다. 해설은 다 푼 뒤에 펼쳐보세요.
기본
- 벡터 [−3, 2]를 좌표계에 그려라. 원점에서 어느 쪽으로 얼마나 가는가?
- [2, 5] + [−3, 1]을 계산하고, 꼬리-끝 잇기로 그림에서도 확인하라.
- −2 × [1, −4]를 계산하라. 원래 벡터와 비교해 방향과 길이가 어떻게 변했나?
- [1, 2, 3] + [4, 0, −1]을 계산하라.
응용
- 집을 [면적, 가격]으로 적을 때, [84, 9]와 [9, 84]가 왜 다른 집인지 설명하라.
- 어떤 벡터 v에 대해 v + v는 무엇과 같은가? 그림과 계산 두 가지로 설명하라.
- [a, 3] + [2, b] = [5, −1]일 때 a와 b를 구하라.
- 벡터 [2, 1]에 어떤 스칼라를 곱해도 [1, 2]를 만들 수 없는 이유를 그림으로 설명하라.
해설 펼치기
- 왼쪽으로 3칸, 위로 2칸. 원점에서 왼쪽 위(제2사분면)를 가리키는 화살표입니다.
- [2 + (−3), 5 + 1] = [−1, 6]. 그림에서 [2, 5] 끝에 [−3, 1]의 꼬리를 붙이면 끝점이 (−1, 6)에 옵니다.
- [−2, 8]. 방향은 정반대로 뒤집혔고 길이는 2배가 됐습니다.
- [5, 2, 2]. 3차원도 같은 자리끼리 더하면 됩니다.
- 벡터는 순서가 의미를 가집니다. 첫 칸이 면적이라는 약속 아래 [9, 84]는 “면적 9, 가격 84억”인 전혀 다른 집입니다.
- 2v와 같습니다. 그림으로는 같은 화살표를 이어 붙이면 같은 방향으로 두 배 길이가 되고, 계산으로는 [x + x, y + y] = [2x, 2y]입니다. 덧셈과 스칼라 곱이 서로 연결돼 있다는 첫 단서입니다.
- a + 2 = 5이므로 a = 3, 3 + b = −1이므로 b = −4.
- 스칼라 곱은 화살표를 늘이고 줄이고 뒤집기만 할 뿐 원점을 지나는 같은 직선 위에서만 움직입니다. [1, 2]는 [2, 1]과 다른 직선 위에 있으므로 닿을 수 없습니다. 두 벡터를 “섞어야” 닿을 수 있는데, 이것이 2장의 주제인 선형결합과 스팬입니다.
다음 장 예고: 2장 “선형결합, 스팬, 기저”