AI를 위한 수학
머신러닝과 딥러닝 설명에 자꾸 나오는 벡터·행렬, 미분과 연쇄 법칙, 확률과 베이즈, 엔트로피, 최적화를 작은 숫자 예로 직접 계산해 보고, 각각이 AI의 어디에 쓰이는지 잇는다.
목차 (16)
벡터와 내적: 비슷함을 재는 방법
AI는 글자·그림·소리를 모두 숫자 목록, 곧 벡터로 바꿔 다룬다. 벡터는 공간의 한 점이자 원점에서 그 점으로 가는 화살표다. 두 벡터의 내적 a·b = a₁b₁ + a₂b₂ + …는 성분끼리 곱해 더한 값이고, 기하학적으로는 ‖a‖‖b‖cos θ, 곧 길이 두 개와 사이 각의 코사인을 곱한 것과 같다.
그래서 내적을 두 길이로 나누면 방향만 남는다. 이것이 코사인 유사도다. 같은 방향이면 1, 직각이면 0, 반대면 −1이다. 문장 임베딩끼리 비교할 때 길이(문장이 길어서 커진 값 등)에 흔들리지 않고 "무엇에 관한 글인가"만 보고 싶어 이 값을 쓴다. 아래 장난감 벡터에서 축구 경기 결과과 야구 중계은 0.98, 축구 경기 결과과 라면 맛집은 0.38다. 임베딩이 어떻게 학습되는지는 딥러닝 노트, 임베딩을 모아 빠르게 찾는 벡터 검색은 데이터베이스 노트에 있다.
행렬: 공간을 바꾸는 함수
행렬은 숫자를 직사각형으로 늘어놓은 표지만, 더 쓸모 있는 관점은 "벡터를 받아 다른 벡터를 돌려주는 함수"다. 2×2 행렬의 첫 열은 x축 단위 벡터 e₁이, 둘째 열은 y축 단위 벡터 e₂가 옮겨 가는 곳이다. 나머지 모든 점은 이 둘의 조합이므로 따라 움직이고, 격자는 평행을 유지한 채 늘고 기운다. 이렇게 직선과 원점을 보존하는 변환을 선형 변환이라 한다.
행렬식(det)은 이 변환이 넓이를 몇 배로 바꾸는지다. 0이면 평면이 선이나 점으로 짓눌려 정보가 사라지고, 음수면 앞뒤가 뒤집힌다.
행렬 곱 AB는 "B를 먼저 하고 그다음 A를 하는" 변환 하나다. 순서가 중요하다. 90° 회전 R = [0 -1; 1 0]과 가로 2배 늘이기 S = [2 0; 0 1]에서 RS = [0 -1; 2 0]지만 SR = [0 -2; 1 0]로 다르다. 신경망의 한 층은 입력 벡터에 가중치 행렬을 곱하고(선형 변환) 비선형 함수를 씌운 것이며, GPU가 하는 일의 대부분이 이 행렬 곱이다.
연립방정식과 계수
미지수 여러 개를 식 여러 개로 푸는 연립방정식은 Ax = b로 쓸 수 있다. 행렬 A가 x를 b로 보내는 변환이니, "어떤 x가 b로 가는가"를 묻는 셈이다. 식 하나가 평면 위의 직선 하나이므로, 해는 직선들이 만나는 점이다.
계수(rank)는 행렬의 열(또는 행) 가운데 서로 독립인 것의 수, 곧 변환 뒤에 남는 차원의 수다. 2×2 행렬의 계수가 2이면 평면이 평면으로 가서 해가 하나 있고, 계수가 1이면 한 식이 다른 식의 배수라 직선이 겹치거나(해가 무수히 많음) 평행하다(해가 없음). 머신러닝에서는 특징끼리 거의 겹치는(다중공선성) 자료가 계수가 모자란 행렬을 만들어 선형 회귀의 해가 불안정해지고, 이를 규제(릿지)로 다스린다.
고윳값과 고유벡터, 그리고 PCA
변환을 해도 방향이 바뀌지 않고 길이만 λ배가 되는 벡터를 고유벡터, 그 배율 λ를 고윳값이라 한다(Av = λv). 행렬이 하는 일을 "이 방향으로는 λ₁배, 저 방향으로는 λ₂배"로 쪼개 보여 주는 셈이다. 대칭 행렬이면 고유벡터들이 서로 직각이다.
주성분 분석(PCA)은 이를 자료에 쓴다. 자료의 공분산 행렬(특징끼리 함께 변하는 정도)은 대칭이고, 그 고유벡터가 자료가 가장 넓게 퍼진 방향(주축), 고윳값이 그 방향의 분산이다. 고윳값이 큰 축 몇 개만 남기고 그 위로 투영하면 정보를 크게 잃지 않고 차원을 줄일 수 있다. 시각화, 노이즈 줄이기, 임베딩 압축에 쓴다.
SVD와 저랭크 근사
고윳값 분해는 정사각 행렬에만 쓸 수 있다. 특이값 분해(SVD)는 어떤 m×n 행렬도 A = UΣVᵀ로 쪼갠다. 회전(Vᵀ) → 축마다 늘이기(Σ, 대각선의 특이값 σ) → 회전(U)이다. 특이값을 큰 순서로 k개만 남기면, 계수 k인 행렬 가운데 원래 행렬에 가장 가까운 것이 된다(에커트–영 정리).
아래 6×6 표(값 36개)는 랭크 1이면 오차 35.6%, 랭크 2면 4.6%로 줄어든다. 랭크 2 근사는 u·v 벡터와 σ 두 벌, 값 26개면 된다. 큰 그림일수록 아끼는 비율이 커진다.
LLM을 미세 조정하는 LoRA가 이 생각을 쓴다. 4096×4096 가중치(16,777,216개)를 통째로 고치는 대신, 바뀌는 양이 저랭크라고 보고 4096×8과 8×4096 행렬 두 개(65,536개, 0.39%)만 학습한다. 자세한 이야기는 LLM 노트에 있다.
미분, 편미분, 기울기
미분은 입력을 아주 조금 바꿨을 때 출력이 몇 배로 바뀌는지다. f(x) = x²이면 f′(x) = 2x라서, x = 3에서 x를 0.001 늘리면 f는 약 0.006 는다. 입력이 여러 개면 하나만 움직이고 나머지는 고정한 미분, 곧 편미분 ∂f/∂x, ∂f/∂y를 구한다. 이를 모은 벡터가 기울기(gradient) ∇f다.
기울기는 함수가 가장 가파르게 오르는 방향을 가리키고, 그 길이가 가파른 정도다. 등고선과는 늘 직각이다. 학습이란 손실 함수의 기울기를 구해 그 반대쪽(−∇f)으로 조금씩 가는 경사 하강이며, 학습률과 미니배치 같은 실제 요령은 머신러닝 노트에서 다룬다.
연쇄 법칙과 계산 그래프
함수를 이어 붙인 합성 함수의 미분은 각 단계 미분의 곱이다. y = f(g(x))면 dy/dx = f′(g(x)) · g′(x). 이것이 연쇄 법칙이다. "x를 조금 바꾸면 g가 g′배로 바뀌고, 그 변화가 다시 f′배로 불어난다"고 읽으면 된다.
신경망은 곱하기·더하기·활성화 함수 같은 작은 연산을 수백만 개 이어 붙인 것이다. 이 연산들을 노드로 그린 계산 그래프에서, 각 노드는 자기 입력에 대한 국소 미분만 알면 된다. 출력에서 출발해 뒤에서 온 기울기에 국소 미분을 곱해 앞으로 넘기면 모든 입력의 기울기가 한 번에 나온다. 이것이 딥러닝 노트의 역전파이고, PyTorch 같은 프레임워크의 자동 미분이 하는 일이다.
입력 x = 2, w = −3, b = 4. 계산을 작은 연산(곱하기·더하기·제곱)의 그래프로 쪼갠다.
미분이 곱으로 이어진다는 점이 깊은 신경망의 오랜 골칫거리를 설명한다. 시그모이드 σ의 도함수 σ(1 − σ)는 σ = 1/2일 때 가장 큰 0.25이다(산술–기하 평균 부등식). 층마다 이 값 이하를 곱하면 10층만 지나도 기울기가 0.95 × 10⁻⁶배 이하로 줄어 앞쪽 층이 거의 배우지 못한다. 이것이 기울기 소실이다. 반대로 층마다 1보다 큰 배율이 곱해지면 1.5배씩 10층에 57.7배로 불어나는 기울기 폭발이 된다. 한쪽으로만 포화되는 ReLU, 기울기가 그대로 지나가는 지름길을 둔 잔차 연결, 배치 정규화, 기울기 길이를 문턱에서 잘라 내는 기울기 클리핑이 이를 다스리는 표준 도구다.
확률 변수, 기댓값, 분산
확률 변수는 결과가 우연에 달린 수다. 주사위 눈, 내일 기온, 모델이 내놓는 다음 토큰이 모두 그렇다. 확률 변수가 각 값을 가질 확률을 모은 것을 분포라 한다.
- 기댓값 E[X] = Σ x·p(x): 값에 확률을 곱해 더한 무게 중심. 주사위 하나는 3.5이다. 손실 함수는 보통 "자료 분포에 대한 오차의 기댓값"이고, 미니배치 평균은 그 추정값이다.
- 분산 Var[X] = E[(X − E[X])²]: 평균에서 얼마나 퍼졌는지. 주사위 하나는 2.92, 그 제곱근인 표준편차는 1.71다.
- 독립인 확률 변수를 더하면 기댓값도 분산도 더해진다. 주사위 두 개의 합은 기댓값 7, 분산이 하나일 때의 2배다. 반대로 n개를 평균 내면 분산이 1/n로 준다. 미니배치를 키우면 기울기 추정이 덜 흔들리는 까닭이다.
자주 쓰는 분포: 베르누이와 정규 분포
- 베르누이 분포: 1(성공)이 확률 p, 0이 확률 1 − p인 동전 던지기. 기댓값 p, 분산 p(1 − p). 이진 분류 모델의 출력(스팸일 확률)이 이 분포의 p를 예측하는 것이다. 클래스가 여럿이면 범주형(카테고리) 분포가 되고, 그 확률을 소프트맥스가 만든다.
- 정규(가우스) 분포: 평균 μ와 표준편차 σ로 정해지는 종 모양. 작은 독립 효과가 많이 더해지면 무엇이든 이 꼴에 가까워진다(중심 극한 정리). 그래서 측정 오차, 가중치 초기값, 확산 모델이 그림에 더하는 노이즈가 모두 정규 분포다(생성 모델 노트). 제곱 오차 손실은 "오차가 정규 분포를 따른다"는 가정의 최대 가능도와 같다.
베이즈 정리: 증거로 믿음을 고치기
조건부 확률 P(A | B)는 "B가 일어났다는 걸 알 때 A일 확률"이다. 베이즈 정리는 이것을 거꾸로 뒤집는다.
P(가설 | 증거) = P(증거 | 가설) × P(가설) / P(증거)
P(가설)이 증거를 보기 전 믿음(사전 확률), P(가설 | 증거)가 본 뒤의 믿음(사후 확률)이다. 유병률 1%인 병을, 환자의 99%를 양성으로 잡고 건강한 사람의 5%를 잘못 양성으로 내는 검사로 본다고 하자. 양성이 나왔을 때 실제 환자일 확률은 99%가 아니라 16.7%다. 1만 명으로 세면 바로 보인다. 양성 594명 가운데 진짜 환자는 99명뿐이다.
사후 확률은 다음 증거의 사전 확률이 된다. 같은 검사를 독립적으로 한 번 더 해서 또 양성이면 16.7% → 79.8%로 오른다. 스팸 필터(나이브 베이즈), 모델 불확실성을 다루는 베이즈 신경망, 그리고 이상 탐지처럼 드문 사건을 맞히는 분류기의 정밀도가 낮게 나오는 현상(머신러닝 노트의 평가 지표)이 모두 이 계산이다.
최대 가능도: 자료가 가장 그럴듯해지는 파라미터
동전을 10번 던져 앞면이 7번 나왔다. 앞면 확률 p는 얼마로 보는 게 좋을까? 가능도(likelihood) L(p)는 "p가 이 값일 때 지금 본 자료가 나올 확률"이다. 이 경우 L(p) = p⁷(1 − p)³이다. 이것을 가장 크게 만드는 p를 고르는 것이 최대 가능도 추정(MLE)이고, 답은 직관대로 7/10이다.
곱은 다루기 불편하고 작은 수를 많이 곱하면 0으로 뭉개지므로, 보통 로그를 씌워 합으로 바꾼다. 로그는 커지는 순서를 바꾸지 않아 최댓값 자리가 같다. 그리고 최적화 도구는 최소화를 하므로 부호를 바꾼 음의 로그 가능도(NLL)를 손실로 쓴다. 분류의 교차 엔트로피, 회귀의 제곱 오차, LLM의 다음 토큰 예측 손실이 모두 어떤 분포의 NLL이다.
정보 이론: 엔트로피, 교차 엔트로피, KL 발산
- 엔트로피 H(P) = −Σ p log p: 결과를 미리 알 수 없는 정도, 또는 결과를 전하는 데 드는 평균 비트 수. 공정한 동전은 1비트, 앞면이 90%인 동전은 0.47비트다. 결과가 뻔할수록 작다.
- 교차 엔트로피 H(P, Q) = −Σ p log q: 실제 분포는 P인데 Q라고 믿고 부호를 짰을 때의 평균 비트 수. P = (0.5, 0.3, 0.2), Q = (0.4, 0.4, 0.2)면 H(P) = 1.485비트, H(P, Q) = 1.522비트다.
- KL 발산 KL(P‖Q) = H(P, Q) − H(P): 틀린 믿음 때문에 더 쓰는 비트. 위 예는 0.036비트다. 늘 0 이상이고 P = Q일 때만 0이다. 순서를 바꾸면 값이 달라(KL(Q‖P) = 0.037) 거리가 아니다. VAE의 손실, RLHF에서 원래 모델에서 너무 멀어지지 않게 묶는 항, 지식 증류에 쓰인다.
분류에 교차 엔트로피를 쓰는 까닭: 정답이 원-핫 P = (1, 0, 0)이면 H(P) = 0이라, 교차 엔트로피를 줄이는 것이 곧 KL을 줄이는 것이자 정답 확률의 NLL −ln q를 줄이는 것이다. 예측이 (0.7, 0.2, 0.1)이면 손실은 −ln 0.7 = 0.357내트다. 또 하나, 기울기가 좋다. 시그모이드(또는 소프트맥스) 출력에 교차 엔트로피를 붙이면 로짓에 대한 기울기가 깔끔하게 q − 1이 되어, 틀릴수록 크게 고친다. 제곱 오차를 붙이면 시그모이드의 기울기 q(1 − q)가 곱해져, 정답 확률이 0에 가까운 크게 틀린 예에서 오히려 기울기가 0에 가까워지고 학습이 멈춘다.
소프트맥스와 log-sum-exp
모델의 마지막 층은 클래스(또는 토큰)마다 아무 실수나 내놓는다. 이를 로짓이라 한다. 소프트맥스 softmax(z)ᵢ = ezᵢ / Σ ezⱼ는 로짓을 모두 양수로 만들고 합이 1이 되게 나눠 확률로 바꾼다. 로짓 (2, 1, 0.1)은 (0.659, 0.242, 0.099)이 된다. 로짓을 온도 T로 나누고 소프트맥스하면 T가 작을수록 가장 큰 값에 쏠리고, 클수록 고르게 퍼진다. LLM의 샘플링 온도가 이것이다.
컴퓨터에서 그대로 계산하면 탈이 난다. 64비트 실수로 e710쯤부터는 무한대가 되어, 로짓이 1000 근처면 ∞/∞ = NaN이 나온다. 모든 로짓에서 최댓값 m을 빼고 계산하면 결과는 똑같고(분자·분모에 같은 e−m이 곱해질 뿐) 가장 큰 항이 e⁰ = 1이라 넘치지 않는다. 손실에 필요한 log Σ ezᵢ도 m + log Σ ezᵢ − m으로 계산한다. 이것이 log-sum-exp 요령이고, 프레임워크가 소프트맥스와 교차 엔트로피를 한 함수로 묶어 제공하는 이유다.
최적화: 볼록성, 학습률, 모멘텀
함수 그래프 위 두 점을 이은 선분이 늘 그래프 위(또는 위쪽)에 있으면 볼록 함수다. 볼록 함수는 골짜기가 하나뿐이라 경사 하강이 어디서 출발하든 같은 최솟값에 닿는다. 선형 회귀의 제곱 오차, 로지스틱 회귀의 교차 엔트로피가 볼록이다. 신경망의 손실은 볼록이 아니어서 국소 최솟값과 안장점이 수없이 많지만, 실제로는 충분히 좋은 곳에 잘 닿는다는 것이 경험적으로 알려져 있다.
학습률 η는 한 걸음의 크기다. f(x) = x²에서 한 걸음은 x ← x − η·2x = (1 − 2η)x이므로, η가 0.5보다 작으면 부드럽게 줄고, 0.5~1 사이면 부호를 바꾸며 줄고, 1을 넘으면 튀어 나간다. 실제 손실은 방향마다 곡률이 달라 가장 가파른 방향이 학습률의 상한을 정한다.
모멘텀은 지난 걸음을 속도처럼 쌓아 두고 거기에 새 기울기를 더한다. 꾸준히 같은 쪽을 가리키는 완만한 방향으로는 가속하고, 부호가 번갈아 바뀌는 가파른 방향의 흔들림은 서로 상쇄된다. 한 방향이 25배 가파른 골짜기 ½(x² + 25y²)에서 같은 학습률 0.035로 손실을 0.001 아래로 떨어뜨리는 데 보통 경사 하강은 152걸음, 모멘텀 0.9는 92걸음이 걸렸다. SGD·모멘텀·Adam의 경로 비교 그림은 딥러닝 노트에 있다.
손실에 가중치 크기에 대한 벌점을 더하는 것이 규제(regularization)다. 가중치 제곱합 λ‖w‖₂²를 더하는 L2 규제(릿지)는 모든 가중치를 0 쪽으로 고르게 줄이지만 정확히 0으로 만들지는 않는다. 절댓값 합 λ‖w‖₁을 더하는 L1 규제(라소, Tibshirani 1996)는 일부 가중치를 정확히 0으로 만들어 쓸모없는 특징을 저절로 골라낸다. λ가 크면 단순한 모델 쪽으로, 작으면 자료에 더 맞추는 쪽으로 기운다.
어디에 쓰이나
| 수학 | AI에서 쓰이는 자리 |
|---|---|
| 내적·코사인 유사도 | 임베딩 검색, 추천, 어텐션 점수(질의·키의 내적) |
| 행렬 곱 | 신경망의 모든 층, 어텐션, GPU 연산의 대부분 |
| 계수·연립방정식 | 선형 회귀의 정규 방정식, 다중공선성과 릿지 규제 |
| 고윳값·PCA | 차원 축소, 시각화, 손실 지형의 곡률(헤시안) 분석 |
| SVD·저랭크 근사 | LoRA, 모델 압축, 추천 시스템의 행렬 분해 |
| 기울기·연쇄 법칙 | 경사 하강, 역전파, 자동 미분 |
| 기댓값·분산 | 손실 함수의 정의, 미니배치 노이즈, 초기화·정규화 |
| 정규 분포 | 가중치 초기화, 확산 모델의 노이즈, VAE의 잠재 공간 |
| 베이즈 정리 | 나이브 베이즈, 불확실성 추정, 드문 사건 탐지의 정밀도 |
| 최대 가능도 | 거의 모든 손실 함수의 유도, LLM 사전 학습 |
| 엔트로피·교차 엔트로피·KL | 분류 손실, 퍼플렉서티, VAE, RLHF의 KL 제약, 지식 증류 |
| 소프트맥스·log-sum-exp | 분류 출력, 어텐션 가중치, 샘플링 온도 |
| 볼록성·학습률·모멘텀 | 최적화기 선택(SGD·Adam), 학습률 스케줄 |
핵심 자료
| 자료 | 요지 | 링크 |
|---|---|---|
| Mathematics for Machine Learning (Deisenroth · Faisal · Ong) | 선형대수, 해석 기하, 행렬 분해, 미적분, 확률, 최적화를 머신러닝에 필요한 만큼 묶은 교재. PDF를 무료로 공개한다. | 책 누리집 |
| 3Blue1Brown — Essence of linear algebra | 행렬을 공간을 바꾸는 함수로 보는 관점을 애니메이션으로 보여 준다. 행렬식·고윳값의 그림이 이 노트의 바탕이다. | 3Blue1Brown |
| 3Blue1Brown — Essence of calculus | 미분과 적분, 연쇄 법칙을 공식보다 "조금 바꾸면 얼마나 바뀌나"라는 직관으로 설명한다. | 3Blue1Brown |
| Stanford CS229 강의 노트 | 선형 회귀·로지스틱 회귀·지수족·EM 등을 최대 가능도와 경사 하강으로 유도한다. 확률과 최적화가 실제 학습 알고리즘이 되는 과정을 볼 수 있다. | Stanford |
| Goodfellow · Bengio · Courville — Deep Learning, 2~4장 | 선형대수, 확률과 정보 이론, 수치 계산(넘침·조건수·경사 기반 최적화)을 딥러닝에 필요한 범위로 정리했다. | 공개 교재 |
| Seeing Theory (Brown 대학) | 확률·분포·베이즈 추론·회귀를 직접 조작하는 그림으로 보여 준다. | Brown |
| Visual Information Theory (Christopher Olah) | 엔트로피·교차 엔트로피·KL 발산을 부호 길이로 해석해 그림으로 설명한다. | 저자 블로그 |
| Why Momentum Really Works (Gabriel Goh) | 모멘텀이 길쭉한 골짜기에서 왜 빨라지는지 이차 함수의 고윳값으로 분석하고, 조작할 수 있는 그림을 붙였다. | Distill |
| Wikipedia — Vanishing gradient problem | 역전파에서 층마다 미분이 곱해져 기울기가 지수로 줄거나 불어나는 문제와 ReLU·잔차 연결·정규화·클리핑 같은 대책. | Wikipedia |
| Wikipedia — Lasso (statistics) | L1 벌점이 일부 계수를 정확히 0으로 만들어 변수를 고르고, L2(릿지)는 줄이기만 한다는 차이를 다룬 항목. | Wikipedia |
- Mathematics for Machine Learning (Deisenroth · Faisal · Ong)
- 3Blue1Brown — Essence of linear algebra
- 3Blue1Brown — Essence of calculus
- Stanford CS229 강의 노트
- Goodfellow · Bengio · Courville — Deep Learning, 2~4장
- Seeing Theory (Brown 대학)
- Visual Information Theory (Christopher Olah)
- Why Momentum Really Works (Gabriel Goh)
- Wikipedia — Vanishing gradient problem
- Wikipedia — Lasso (statistics)