머신러닝을 위한 수학
벡터 · 내적 · 코사인, 행렬 곱과 shape, 기울기 · 연쇄 법칙을 손계산으로 익히는 수학 최소한
먼저 알아야 할 것
다루는 내용
『머신러닝을 위한 수학』의 선형대수 · 해석기하 · 벡터 미적분 부분을 바탕으로, 딥러닝 수식을 읽는 데 필요한 최소한을 자체 해설로 정리했습니다. 내적 · 노름 · 코사인 유사도, 행렬 곱의 모양 규칙과 신경망 층 크기 읽기, 미분 · 편미분 · 기울기 벡터, 연쇄 법칙과 역전파의 관계, 고윳값 직관을 작은 숫자로 직접 계산합니다.
해설
머신러닝을 위한 수학: 벡터 · 행렬 · 미분 · 연쇄 법칙 최소한
딥러닝 논문의 수식은 대부분 "벡터를 곱해 더하고(선형대수), 손실을 미분해 내려간다(미적분)" 두 가지로 읽힙니다. 이 수업은 『머신러닝을 위한 수학(Mathematics for Machine Learning)』이 다루는 내용 가운데 이 섹션을 읽는 데 꼭 필요한 부분 — 벡터 · 내적 · 노름 · 코사인 유사도, 행렬 곱과 모양(shape), 미분 · 편미분 · 기울기 · 연쇄 법칙, 고윳값 직관 — 을 손계산으로 익힙니다.
| 항목 | 내용 |
|---|---|
| 출처 | Mathematics for Machine Learning · Marc Peter Deisenroth · A. Aldo Faisal · Cheng Soon Ong · Cambridge University Press 2020 · mml-book.github.io |
| 트랙 · 수준 | 수학 · 기초 |
| 이 수업의 범위 | 책 2장(선형대수) · 3장(해석기하: 노름 · 내적) · 4장(행렬 분해) 일부 · 5장(벡터 미적분)의 핵심 개념을 자체 해설로 정리 |
| 먼저 알면 좋은 것 | 일차함수, 곱셈 · 덧셈, 함수 그래프의 기울기 |
들어가기 전에
- 최대우도 추정과 MAP: 손실 함수는 어디서 오나 — 가우시안→MSE · 베르누이→교차 엔트로피 · MAP=L2/L1 정규화를 유도하는 수업
- 구글 머신러닝 단기 집중 과정으로 배우는 머신러닝 첫걸음 — 이 수업은 그 수업에서 "일단 믿고 쓴" 기울기 공식 가 어디서 나오는지 보여 줍니다. 선형 회귀 · 손실 · 경사 하강법이라는 말이 익숙하면 충분합니다.
한눈에 보기
- 벡터의 내적 · 길이(노름) · 코사인 유사도를 계산하고, 그것이 "두 대상이 얼마나 비슷한가"를 재는 데 쓰인다는 것을 압니다.
- 행렬 곱을 손으로 계산하고, 모양(shape) 규칙 로 신경망 층의 크기를 읽을 수 있습니다.
- 미분 · 편미분 · 기울기(gradient) 벡터의 뜻과, 왜 기울기 반대 방향이 '가장 빨리 내려가는 방향'인지 압니다.
- 연쇄 법칙(chain rule)으로 합성 함수를 미분하고, 그것이 역전파(backpropagation)의 전부라는 것을 봅니다.
- 고윳값 · 고유벡터가 "행렬이 방향을 바꾸지 않고 늘이기만 하는 축"이라는 직관을 얻습니다.
1. 벡터: 숫자 여러 개를 한 묶음으로
직관(해설용 비유): 벡터는 "특성을 순서대로 적은 카드"입니다. 집 한 채를 (면적, 방 수, 역까지 거리)로 적으면 숫자 세 개짜리 벡터가 됩니다. 단어 하나를 숫자 768개로 적은 것이 임베딩 벡터입니다.
| 기호 | 뜻 |
|---|---|
| 굵은 소문자는 벡터 | |
| 번째 성분(숫자 하나) | |
| 실수 개로 된 벡터 전체 — "차원" |
벡터끼리는 같은 자리끼리 더하고, 숫자 하나를 곱하면 모든 성분에 곱합니다. , 입니다.
내적: 두 벡터를 숫자 하나로
단계: ① 같은 자리 성분끼리 곱합니다. ② 그 곱을 모두 더합니다.
선형 회귀의 예측 는 사실 내적 입니다. 신경망의 뉴런 하나도 같은 계산을 합니다.
노름: 벡터의 길이
는 피타고라스 정리로 잰 보통의 길이(L2 노름), 은 성분 절댓값의 합(L1 노름)입니다. 의 L2 노름은 , L1 노름은 입니다. 뒤에서 배우는 L2 정규화는 가중치 벡터의 L2 노름 제곱을 손실에 더하는 것입니다.
코사인 유사도: 방향이 얼마나 같은가
| 값 | 뜻 |
|---|---|
| 같은 방향 — 아주 비슷함 | |
| 직각 — 관련 없음 | |
| 반대 방향 |
숫자로 해 보기(해설용): , 이면 내적은 , 길이는 , 입니다. 코사인은 입니다.
이번에는 지어낸 2차원 '단어 벡터'로 해 봅니다. 고양이 , 강아지 , 자동차 라고 합시다. 고양이-강아지의 코사인은 , 고양이-자동차는 입니다. 의미가 가까운 단어끼리 코사인이 큽니다.
왜 내적을 그냥 쓰지 않고 길이로 나누나: 내적은 벡터가 길수록 커집니다. 긴 문서의 벡터가 무조건 "더 비슷하다"고 나오면 곤란하므로, 길이를 나눠 방향만 비교합니다. 검색 · RAG에서 문서 유사도를 잴 때 코사인을 주로 쓰는 이유입니다.
2. 행렬: 벡터를 다른 벡터로 바꾸는 표
직관: 행렬은 "입력 벡터를 받아 출력 벡터를 내는 변환 규칙표"입니다. 신경망 한 층은 행렬 하나와 편향 벡터 하나입니다.
행렬 곱의 단계: 결과의 칸 = 왼쪽 행렬의 번째 행과 오른쪽 행렬의 번째 열의 내적입니다.
| 기호 | 뜻 |
|---|---|
| 굵은 대문자는 행렬 | |
| 행 열의 숫자 | |
| 행 개, 열 개라는 모양(shape) | |
| 전치 — 행과 열을 뒤집은 행렬 |
모양 규칙: 왼쪽의 열 수와 오른쪽의 행 수가 같아야 곱할 수 있고, 결과는 (왼쪽 행 수) × (오른쪽 열 수)입니다. 코드에서 가장 흔한 오류 "shape mismatch"가 이 규칙을 어긴 것입니다.
숫자로 해 보기(해설용):
입니다. 3차원 입력을 2차원 출력으로 바꾸는 '층'이라고 볼 수 있습니다. 같은 에 를 곱하면 입니다( 곱하기 = ).
신경망 층 읽기: 입력 784개(28×28 이미지)를 은닉 뉴런 128개로 보내는 층의 가중치 행렬은 이고, 가중치 수는 개, 편향은 128개입니다. 미니배치 64장을 한꺼번에 넣으면 입력 에 을 곱해 이 나옵니다.
왜 행렬로 쓰나: 뉴런 수천 개의 내적을 한 줄로 적을 수 있고, GPU는 행렬 곱을 아주 빠르게 처리하도록 만들어져 있습니다. 딥러닝이 GPU로 빨라진 이유가 여기에 있습니다.
3. 미분 · 편미분 · 기울기
직관: 미분은 "입력을 아주 조금 바꿨을 때 출력이 몇 배로 변하는가"입니다. 그래프에서 그 점의 접선 기울기입니다.
숫자로 해 보기(해설용): 이면 , 에서 입니다. 정의대로 을 넣어 보면 로 거의 같습니다. 이렇게 작은 로 근사하는 방법(수치 미분)은 코드로 기울기를 검사할 때도 씁니다.
자주 쓰는 미분 규칙은 많지 않습니다.
| 함수 | 미분 |
|---|---|
편미분과 기울기 벡터
변수가 여럿이면 하나만 움직이고 나머지는 상수로 둔 채 미분합니다. 이것이 편미분(partial derivative) 입니다. 모든 편미분을 모은 벡터가 기울기(gradient) 입니다.
숫자로 해 보기(해설용): 에서 , 입니다. 에서 기울기는 입니다. 수치 미분으로도 이 나옵니다.
왜 기울기 반대 방향으로 가나: 기울기 벡터는 함수가 가장 빨리 커지는 방향을 가리킵니다. 따라서 그 반대 가 가장 빨리 작아지는 방향입니다. 경사 하강법 은 이 사실 하나에 기대고 있습니다. 위 예에서 쪽 기울기(8)가 쪽(3)보다 크므로, 을 바꾸는 것이 손실에 더 큰 영향을 줍니다.
4. 연쇄 법칙: 역전파의 전부
직관(해설용 비유): 톱니바퀴 세 개가 맞물려 있을 때, 첫 바퀴를 1도 돌리면 마지막 바퀴는 (1→2 비율) × (2→3 비율)만큼 돕니다. 단계마다의 변화율을 곱하면 전체 변화율이 됩니다.
단계: ① 계산을 작은 조각으로 나눕니다. ② 조각마다 미분합니다(위 표로 충분합니다). ③ 출력 쪽에서 입력 쪽으로 곱해 나갑니다.
숫자로 해 보기(해설용) — 첫걸음 수업의 공식 확인: 예제 하나 , 모델 , 손실 입니다. 조각으로 나누면 , 입니다.
- ,
- 따라서
이면 , 입니다. 수치 미분 과 맞습니다. 예제가 개면 평균을 내므로 가 됩니다. 첫걸음 수업에서 쓴 공식 그대로입니다.
한 단계 더 — 시그모이드 뉴런: , 일 때 입니다. , 이면 , , , 입니다.
flowchart LR
W[w] --> Z["z = w·x"]
X[x] --> Z
Z --> P["p = σ(z)"]
P --> L["손실 L"]
L -. "∂L/∂p" .-> P
P -. "× ∂p/∂z" .-> Z
Z -. "× ∂z/∂w = x" .-> W실선은 앞으로 계산하는 순전파, 점선은 미분값을 곱하며 거꾸로 전하는 역전파입니다.
왜 이것이 중요한가: 신경망은 수백 층짜리 합성 함수입니다. 연쇄 법칙을 출력 쪽에서부터 한 번 훑으면 모든 가중치의 기울기가 한꺼번에 나옵니다. 이것이 역전파이고, 파이토치(PyTorch)의 loss.backward()가 하는 일입니다. 변수가 벡터일 때는 곱하는 값이 야코비안(Jacobian) 행렬이 될 뿐 원리는 같습니다.
5. 고윳값 · 고유벡터 직관 (짧게)
직관: 행렬을 곱하면 대부분의 벡터는 방향이 바뀝니다. 그런데 어떤 특별한 방향의 벡터는 방향은 그대로이고 길이만 늘거나 줄어듭니다. 그 방향이 고유벡터(eigenvector), 늘어나는 배율이 고윳값(eigenvalue)입니다.
숫자로 해 보기(해설용): 에서 이므로 고윳값 3, 이므로 고윳값 1입니다. 이 행렬은 방향은 3배로 늘이고, 방향은 그대로 둡니다.
어디에 쓰이나: 데이터가 가장 많이 퍼진 방향을 찾는 주성분 분석(PCA)은 공분산 행렬의 고유벡터를 구하는 일입니다. 손실 곡면이 어떤 방향으로 가파르고 어떤 방향으로 완만한지(최적화가 어려운 이유)도 고윳값으로 설명합니다. 책 4장 행렬 분해가 이 내용을 다룹니다.
연습 문제
1. , 의 내적, 각 L2 노름, 코사인 유사도를 구하세요.
풀이: 내적 , , , 코사인 입니다(45도).
2. 입력 512차원, 출력 10차원인 층의 가중치 행렬 모양과 가중치 · 편향 개수는?
풀이: 행렬, 가중치 개, 편향 개, 합 개입니다.
3. 의 에서 기울기는? 학습률 로 경사 하강법 한 걸음을 가면 어디로 가나요?
풀이: 입니다. 입니다. 는 에서 로 줄었습니다.
4. 를 로 미분한 식을 연쇄 법칙으로 쓰세요.
풀이: 입니다.
스스로 점검
- 행렬과 행렬은 곱할 수 있나요?
- 답: 없습니다. 왼쪽 열 수 4와 오른쪽 행 수 3이 다릅니다. 한쪽을 전치해 으로 만들면 곱할 수 있습니다.
- 코사인 유사도가 0이면 두 벡터는 어떤 관계인가요?
- 답: 직각(직교)입니다. 한 벡터 방향으로 다른 벡터의 성분이 전혀 없어 '관련 없음'으로 읽습니다.
- 역전파는 미적분의 어떤 규칙을 반복 적용하는 것인가요?
- 답: 연쇄 법칙입니다. 출력 쪽에서부터 단계별 미분값을 곱해 각 가중치의 기울기를 구합니다.
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 벡터(vector) | 숫자를 순서대로 묶은 것 |
| 내적(dot product) | 같은 자리끼리 곱해 모두 더한 값 |
| 노름(norm) | 벡터의 길이(L2) 또는 성분 절댓값의 합(L1) |
| 코사인 유사도(cosine similarity) | 두 벡터의 방향이 얼마나 같은지, −1~1 |
| 행렬(matrix) | 숫자를 행과 열로 배열한 표 · 선형 변환 |
| 모양(shape) | 행렬 · 텐서의 크기, 예: |
| 전치(transpose) | 행과 열을 뒤바꾸기 |
| 미분(derivative) | 입력을 조금 바꿀 때 출력이 변하는 비율 |
| 편미분(partial derivative) | 변수 하나만 움직일 때의 미분 |
| 기울기(gradient) | 모든 편미분을 모은 벡터, 가장 가파르게 오르는 방향 |
| 연쇄 법칙(chain rule) | 합성 함수의 미분 = 단계별 미분의 곱 |
| 역전파(backpropagation) | 연쇄 법칙으로 출력에서 입력 쪽으로 기울기를 전하는 계산 |
| 야코비안(Jacobian) | 벡터 함수의 편미분을 모은 행렬 |
| 고윳값 · 고유벡터(eigenvalue · eigenvector) | 행렬이 방향을 안 바꾸고 늘이기만 하는 축과 그 배율 |
더 깊이 보려면
책은 1부 수학의 기초(2장 선형대수, 3장 해석기하, 4장 행렬 분해, 5장 벡터 미적분, 6장 확률과 분포, 7장 연속 최적화)와 2부 머신러닝의 핵심 문제(8장 모델이 데이터를 만날 때, 9장 선형 회귀, 10장 PCA, 11장 가우시안 혼합 모델, 12장 SVM)로 되어 있습니다. 이 수업의 1~2절은 2 · 3장, 3~4절은 5장, 5절은 4장에 해당합니다. 6장 확률은 이 섹션의 확률과 통계 최소한, 9장 선형 회귀는 CS229 수업의 정규 방정식과 이어 읽으면 좋습니다.
다음에 볼 것
- 중간 점검: 수학 트랙 (문제 12개와 풀이) — 수학 트랙을 마쳤다면 12문제로 이해를 점검합니다
- 확률과 통계 최소한 — 기댓값 · 분산 · 베이즈 정리 등, 손실 함수와 강화학습을 읽는 데 필요한 확률 언어를 배웁니다.
- 스탠퍼드 CS229 머신러닝 강의 노트 — 이 수업의 벡터 · 미분 도구로 로지스틱 회귀의 기울기를 직접 유도합니다.
- 신경망과 딥러닝 — 행렬 곱과 연쇄 법칙이 실제 신경망의 순전파 · 역전파로 어떻게 쓰이는지 봅니다.
라이선스
책의 저작권은 저자 세 사람에게 있고(Copyright 2020) 케임브리지 대학 출판부에서 펴냈습니다. 저자들이 PDF를 무료로 공개하지만 번역 · 재배포 허락은 아닙니다. 이 글은 원문 번역이 아니라 KAITABASE가 직접 쓴 해설이며, 숫자 예는 모두 설명용으로 만든 것입니다.
출처
- 원문: https://mml-book.github.io/ (2020 · Deisenroth · Faisal · Ong)
AI 원리부터 이해하기 · 수학 모듈
수학 모듈 학습
이 글은 수학 모듈의 학습 자료입니다. 전체 9개 자료 중 8번째입니다.
출처·원문
원문 보기요약만