제1원리 질문. 데이터 두 건이 ‘비슷하다’는 것을 어떻게 숫자로 말할 수 있는가. 데이터 한 건을 숫자 묶음(벡터)으로 보면 공간 속의 한 점이 되고, 두 점 사이의 거리를 재면 ‘얼마나 다른가’가 하나의 숫자로 나오기 때문이다.

핵심 — 피타고라스를 여러 칸으로 늘리기
로드맵은 17주차에 “데이터 한 건 = 벡터”를 정의하고, 19주차를 “화살표의 길이 = 두 데이터의 가까움”으로 요약한다. 벡터 v = (3, 4)의 길이는 피타고라스 정리로 √(32 + 42) = 5다. 칸이 몇 개로 늘어도 ‘각 칸을 제곱해 더한 뒤 제곱근’이라는 규칙은 같다. 이것을 L2 노름이라고 부른다.
| 이름 | 계산 규칙 | (1, 2)와 (4, 6) 사이 | 비유 |
|---|---|---|---|
| L2 거리 (유클리드) | √(Σ(bi − ai)2) | √(32 + 42) = 5 | 직선으로 날아간 거리 |
| L1 거리 (맨해튼) | Σ|bi − ai| | 3 + 4 = 7 | 바둑판 길을 걸은 거리 |
같은 두 점이라도 ‘거리의 정의’에 따라 값이 다르다. 어떤 거리를 쓸지도 모델 설계의 선택이다.
코드로 번역하기
노름은 np.linalg.norm 한 줄이지만, 먼저 정의대로 제곱·합·제곱근을 직접 써서 같은 값이 나오는지 확인한다. 두 점 사이 거리는 ‘차이 벡터의 노름’이다.
import numpy as np
v = np.array([3, 4])
# L2 노름: 각 성분을 제곱해서 더한 뒤 제곱근
print(np.sqrt(np.sum(v ** 2))) # 5.0
print(np.linalg.norm(v)) # 5.0 (같은 결과)
# 두 데이터 사이 거리 = 차이 벡터의 노름
a = np.array([1, 2])
b = np.array([4, 6])
print(np.linalg.norm(b - a)) # 5.0 (유클리드 거리)
print(np.sum(np.abs(b - a))) # 7 (L1 거리, 맨해튼 거리)
실행 결과
5.0
5.0
5.0
7
사례 적용 — 거리가 곧 비슷함의 척도
거리를 잴 수 있으면 ‘가장 가까운 데이터 찾기’가 가능해진다. 새 데이터가 들어왔을 때 기존 데이터 중 거리가 가장 짧은 것을 찾아 그 라벨을 따라가는 방식이 대표적이다. 이때 칸마다 단위가 다르면(예: 한 칸은 mm, 다른 칸은 kg) 큰 숫자를 가진 칸이 거리를 지배하므로, 로드맵 5주차의 ‘0~1 사이로 맞추기(정규화)’가 먼저 필요하다.
노름은 거리 말고도 쓰인다. 벡터를 자기 길이로 나누면 길이가 1인 ‘방향만 남은 벡터’가 되는데, 이것이 다음 편의 코사인 유사도로 이어진다.
1분 개념 체크
로드맵 교재 템플릿의 ‘1분 개념 체크’ 형식을 빌려 스스로 확인할 문제 두 개를 만들었다.
| 질문 | 답 | 근거 |
|---|---|---|
| 벡터 (6, 8)의 L2 노름은? | 10 | √(36 + 64) = √100 |
| (0, 0)과 (2, 3) 사이의 L1 거리는? | 5 | |2| + |3| |
내 해석 — Rhymbro가 읽은 것
L2와 L1의 차이는 가공 경로를 떠올리게 했다. 두 지점을 대각선으로 한 번에 이동하는 것과 X축, Y축을 따로 이동하는 것은 도착점이 같아도 이동 거리가 다르다. 3축 이송 장치에서 축을 하나씩 움직이면 L1에 가깝고, 보간으로 동시에 움직이면 L2에 가깝다는 비유가 이해에 도움이 됐다.
그리고 정규화 이야기를 읽으며, 치수(mm)와 무게(kg)를 섞은 벡터에서 거리를 재면 의미가 흐려진다는 점이 가장 실무적인 교훈이라고 느꼈다.
한계로, 칸(차원)이 수백 개로 늘어나면 모든 점 사이 거리가 비슷해지는 현상이 있어 거리만으로 비슷함을 판단하기 어려워진다는 점은 이번 정리 범위 밖이다.
요약
| 항목 | 정리 |
|---|---|
| L2 노름 | 각 성분 제곱의 합의 제곱근 |
| 두 점 거리 | 차이 벡터의 노름, np.linalg.norm(b – a) |
| L1 거리 | 성분 차이의 절댓값 합 |
| 주의 | 단위가 다른 칸은 정규화 후 거리 계산 |
그래서 나는 무엇을 하기로 했나
이번 주는 설비 사양 세 개(치수, 무게, 속도)를 벡터로 만들어 정규화 전과 후의 거리를 각각 계산하고, 어느 칸이 거리를 지배하는지 비교해 보기로 했다.
주제와 순서는 개인 학습용으로 정리한 104주 AI 수학 로드맵 목차를 따랐고, 설명과 예제는 그 목차를 바탕으로 내 언어로 다시 썼다. 코드는 Python 3 + NumPy 2.x에서 실행해 출력을 확인했으며, 예시 수치는 설명용 가정 값이다.
AI 수학 로드맵 노트 · 전체 10편
- AI 수학 로드맵 노트 1 — y = wx + b, 가중치와 편향의 정체
- AI 수학 로드맵 노트 2 — 지수와 로그, 폭발과 압축의 언어
- AI 수학 로드맵 노트 3 — Σ(시그마)는 그냥 for문이다
- AI 수학 로드맵 노트 4 — 벡터의 크기와 거리, 노름
- AI 수학 로드맵 노트 5 — 내적과 코사인 유사도, 방향이 비슷하면 취향도 비슷하다
- AI 수학 로드맵 노트 6 — 행렬곱, 신경망 한 층의 정체
- AI 수학 로드맵 노트 7 — 미분과 체인룰, 변화가 전달되는 법
- AI 수학 로드맵 노트 8 — 경사하강법과 학습률, 산을 내려가는 보폭
- AI 수학 로드맵 노트 9 — 손실함수 MSE, 얼마나 틀렸나를 숫자 하나로
- AI 수학 로드맵 노트 10 — 베이즈 정리, 검사 결과를 뒤집어 읽기
같은 카테고리에서 함께 읽기
강의자료 121편독일어 문법 노트 10 — 관계절, Die Maschine, die wir kauften
관계대명사의 성·수는 선행사를 따르고, 격은 관계절 안에서의 역할로 정해진다. 전치사 + 관계대명사, wo와 was·wer까지 설비·부품 예문으로 정리했다.
독일어 문법 노트 9 — 종속절과 동사 후치, weil·dass·wenn·als
weil·dass·wenn·obwohl·ob가 이끄는 절에서는 활용된 동사가 맨 끝으로 간다. 종속절이 앞에 오면 쉼표를 사이에 두고 동사가 마주 보는 구조, als…
독일어 문법 노트 8 — 형용사 어미변화, 다섯 칸의 -e와 나머지 -en
정관사가 성·격을 표시하면 형용사는 -e나 -en만 붙는다. -e가 오는 자리는 다섯 칸뿐이고 나머지는 전부 -en. 서술 용법에는 어미가 없다는 점까지 정리했다.



[…] AI 수학 로드맵 노트 4 — 벡터의 크기와 거리, 노름 […]
[…] AI 수학 로드맵 노트 4 — 벡터의 크기와 거리, 노름 […]