검색
← 모듈 로드맵

스탠퍼드 CS229 머신러닝 강의 노트

강의 · 입문자 · Andrew Ng · Tengyu Ma

원제 · CS229 Lecture Notes

CS229 노트로 정규 방정식, 로지스틱 회귀 기울기 유도, 편향-분산을 손계산하는 수업

먼저 알아야 할 것

경사 하강법행렬 곱 · 전치편미분 · 연쇄 법칙조건부 확률 · 정규분포

다루는 내용

스탠퍼드 CS229 강의 노트의 표기와 유도 방식을 따라, 선형 회귀를 정규 방정식으로 한 번에 풀고 최소제곱이 정규분포 잡음의 최대우도임을 확인합니다. 로지스틱 회귀의 로그 우도에서 기울기 (y−h)x를 한 줄씩 유도해 경사 상승으로 갱신해 보고, 편향² · 분산을 숫자로 계산해 과소적합 · 과적합을 구별합니다.

해설

스탠퍼드 CS229로 배우는 로지스틱 회귀 · 정규 방정식 · 편향-분산

CS229 강의 노트는 머신러닝 알고리즘을 "확률 모델을 세우고 → 우도를 쓰고 → 미분해 최적화한다"는 한 가지 방법으로 유도합니다. 이 수업은 노트 1부의 핵심인 선형 회귀의 정규 방정식, 로지스틱 회귀의 로그 우도와 기울기 (y−h)x(y - h)x 유도, 3부의 편향-분산 트레이드오프를 원문 없이 따라갈 수 있게 풀어 씁니다.

항목내용
출처CS229 Lecture Notes · Andrew Ng · Tengyu Ma (Stanford) · cs229.stanford.edu/main_notes.pdf
트랙 · 수준머신러닝 · 기초
이 수업의 범위1장 선형 회귀(LMS · 정규 방정식 · 확률적 해석), 2장 로지스틱 회귀, 8장 편향-분산 트레이드오프의 핵심을 자체 해설로 정리
먼저 알면 좋은 것경사 하강법, 행렬 곱 · 전치, 편미분 · 연쇄 법칙, 조건부 확률

들어가기 전에

한눈에 보기

  • CS229 노트의 표기(hθ(x)h_\theta(x), θ\theta, J(θ)J(\theta), ℓ(θ)\ell(\theta), :=:=)를 읽을 수 있습니다.
  • 선형 회귀를 경사 하강법 없이 정규 방정식 θ=(X⊤X)−1X⊤y\theta = (X^\top X)^{-1}X^\top y로 한 번에 풀고, 첫걸음 수업의 경사 하강법 결과와 같은지 확인합니다.
  • 최소제곱이 "오차가 정규분포를 따른다"는 가정의 최대우도라는 것을 압니다.
  • 로지스틱 회귀의 로그 우도를 쓰고, 기울기가 (y−hθ(x)) xj(y - h_\theta(x))\,x_j가 되는 과정을 한 줄씩 유도합니다.
  • 편향(bias)과 분산(variance)을 숫자로 계산해, 모델이 너무 단순하거나 너무 복잡할 때 무엇이 나빠지는지 구별합니다.

1. 노트의 표기 먼저 익히기

CS229 노트는 다음 표기를 일관되게 씁니다. 이 표만 알면 노트 대부분의 식을 읽을 수 있습니다.

기호뜻
x(i), y(i)x^{(i)},\ y^{(i)}ii번째 학습 예제의 입력 벡터와 정답 (위첨자 괄호는 거듭제곱이 아님)
nn학습 예제 수
x0=1x_0 = 1절편을 가중치처럼 다루려고 붙이는 상수 특성
θ\theta매개변수 벡터 (첫걸음 수업의 w,bw, b를 묶은 것: θ0=b\theta_0 = b)
hθ(x)h_\theta(x)가설(hypothesis), 모델의 예측
J(θ)J(\theta)최소화할 비용 함수
ℓ(θ)\ell(\theta)최대화할 로그 우도
α\alpha학습률
:=:=프로그램식 대입(덮어쓰기)

2. 선형 회귀를 한 번에 푸는 정규 방정식

직관: 경사 하강법이 "기울기를 느끼며 한 걸음씩" 내려가는 방법이라면, 정규 방정식은 "기울기가 정확히 0이 되는 지점"을 식으로 바로 구하는 방법입니다.

단계

  1. 모든 예제를 행렬로 쌓습니다. 설계 행렬 XX의 ii번째 행은 (x(i))⊤(x^{(i)})^\top, 정답 벡터 y⃗\vec{y}의 ii번째 칸은 y(i)y^{(i)}입니다.
  2. 비용을 행렬로 씁니다: J(θ)=12∥Xθ−y⃗∥2J(\theta) = \frac{1}{2}\lVert X\theta - \vec{y} \rVert^2.
  3. θ\theta로 미분하면 ∇θJ=X⊤Xθ−X⊤y⃗\nabla_\theta J = X^\top X\theta - X^\top\vec{y}입니다.
  4. 이것을 0으로 두고 풉니다.
X⊤X θ=X⊤y⃗⟹θ=(X⊤X)−1X⊤y⃗X^\top X\,\theta = X^\top \vec{y} \quad\Longrightarrow\quad \theta = (X^\top X)^{-1} X^\top \vec{y}
기호뜻
XX설계 행렬, n×(d+1)n \times (d+1) (첫 열은 모두 1)
y⃗\vec{y}정답을 세로로 쌓은 벡터
X⊤XX^\top X(d+1)×(d+1)(d+1)\times(d+1) 정사각 행렬
(⋅)−1(\cdot)^{-1}역행렬

숫자로 해 보기(해설용): 첫걸음 수업의 데이터 (1,2),(2,4),(3,5)(1,2), (2,4), (3,5)를 씁니다.

X=(111213),X⊤X=(36614),X⊤y⃗=(1125)X = \begin{pmatrix} 1 & 1 \\ 1 & 2 \\ 1 & 3 \end{pmatrix},\quad X^\top X = \begin{pmatrix} 3 & 6 \\ 6 & 14 \end{pmatrix},\quad X^\top\vec{y} = \begin{pmatrix} 11 \\ 25 \end{pmatrix}

2×22\times2 역행렬은 (abcd)−1=1ad−bc(d−b−ca)\begin{pmatrix} a & b \\ c & d \end{pmatrix}^{-1} = \frac{1}{ad - bc}\begin{pmatrix} d & -b \\ -c & a \end{pmatrix}입니다. ad−bc=42−36=6ad - bc = 42 - 36 = 6이므로

θ=16(14−6−63)(1125)=16(49)≈(0.6671.5)\theta = \frac{1}{6}\begin{pmatrix} 14 & -6 \\ -6 & 3 \end{pmatrix}\begin{pmatrix} 11 \\ 25 \end{pmatrix} = \frac{1}{6}\begin{pmatrix} 4 \\ 9 \end{pmatrix} \approx \begin{pmatrix} 0.667 \\ 1.5 \end{pmatrix}

절편 θ0≈0.667\theta_0 \approx 0.667, 기울기 θ1=1.5\theta_1 = 1.5입니다. 첫걸음 수업에서 경사 하강법을 수천 번 돌려 도착한 w≈1.5, b≈0.667w \approx 1.5,\ b \approx 0.667과 정확히 같습니다.

왜 늘 이걸 쓰지 않나: 특성이 dd개면 X⊤XX^\top X의 역행렬 계산에 대략 d3d^3에 비례하는 비용이 듭니다. 특성이 수백만 개면 감당할 수 없고, 신경망처럼 비선형인 모델에는 이런 닫힌 해가 아예 없습니다. 또 특성끼리 거의 겹치면 X⊤XX^\top X의 역행렬이 불안정합니다. 그래서 실무 대부분은 경사 하강법을 씁니다.

최소제곱의 확률적 해석

노트 1장은 왜 하필 "제곱" 오차인지를 확률로 설명합니다. 정답이 y(i)=θ⊤x(i)+ϵ(i)y^{(i)} = \theta^\top x^{(i)} + \epsilon^{(i)}이고 오차 ϵ(i)\epsilon^{(i)}가 서로 독립인 정규분포 N(0,σ2)\mathcal{N}(0, \sigma^2)를 따른다고 가정하면, 로그 우도는

ℓ(θ)=∑i=1nlog⁡p(y(i)∣x(i);θ)=nlog⁡12πσ−1σ2⋅12∑i=1n(y(i)−θ⊤x(i))2\ell(\theta) = \sum_{i=1}^{n}\log p(y^{(i)} \mid x^{(i)}; \theta) = n\log\frac{1}{\sqrt{2\pi}\sigma} - \frac{1}{\sigma^2}\cdot\frac{1}{2}\sum_{i=1}^{n}\big(y^{(i)} - \theta^\top x^{(i)}\big)^2

입니다. 첫 항은 θ\theta와 무관하므로, ℓ\ell을 최대화하는 것은 오차 제곱합을 최소화하는 것과 같습니다. 즉 최소제곱 = 정규분포 잡음 가정의 최대우도입니다. 이 관점은 확률적 머신러닝 입문에서 더 넓게 씁니다.

3. 로지스틱 회귀: 로그 우도와 기울기 유도

직관: 이진 분류에서 직선 θ⊤x\theta^\top x를 그대로 쓰면 예측이 0~1을 벗어납니다. 시그모이드로 감싸 확률로 만들고, "데이터에 준 확률"을 최대화합니다.

hθ(x)=g(θ⊤x)=11+e−θ⊤x,g′(z)=g(z)(1−g(z))h_\theta(x) = g(\theta^\top x) = \frac{1}{1 + e^{-\theta^\top x}}, \qquad g'(z) = g(z)\big(1 - g(z)\big)

단계 1 — 확률 모델: P(y=1∣x;θ)=hθ(x)P(y = 1 \mid x; \theta) = h_\theta(x), P(y=0∣x;θ)=1−hθ(x)P(y = 0 \mid x; \theta) = 1 - h_\theta(x)입니다. 이 둘을 한 줄로 쓰면

p(y∣x;θ)=(hθ(x))y(1−hθ(x))1−yp(y \mid x; \theta) = \big(h_\theta(x)\big)^{y}\big(1 - h_\theta(x)\big)^{1 - y}

입니다. y=1y = 1이면 앞 인수만, y=0y = 0이면 뒤 인수만 남습니다.

단계 2 — 로그 우도: 예제들이 독립이라 가정하면 우도는 곱, 로그를 씌우면 합입니다.

ℓ(θ)=∑i=1n[ y(i)log⁡h(x(i))+(1−y(i))log⁡(1−h(x(i))) ]\ell(\theta) = \sum_{i=1}^{n} \Big[\, y^{(i)}\log h(x^{(i)}) + (1 - y^{(i)})\log\big(1 - h(x^{(i)})\big) \,\Big]

이 식에 마이너스를 붙이면 정보 이론 최소한의 이진 교차 엔트로피, 첫걸음 수업의 로그 손실이 됩니다.

단계 3 — 미분(예제 하나): h=g(θ⊤x)h = g(\theta^\top x), ∂h/∂θj=g(1−g) xj\partial h/\partial\theta_j = g(1-g)\,x_j (연쇄 법칙)를 씁니다.

∂∂θj[ylog⁡h+(1−y)log⁡(1−h)]=(yh−1−y1−h) h(1−h) xj=(y(1−h)−(1−y)h) xj=(y−h) xj\frac{\partial}{\partial\theta_j}\Big[y\log h + (1-y)\log(1-h)\Big] = \Big(\frac{y}{h} - \frac{1-y}{1-h}\Big)\,h(1-h)\,x_j = \big(y(1-h) - (1-y)h\big)\,x_j = (y - h)\,x_j

단계 4 — 갱신 규칙: 최대화이므로 기울기 방향으로 올라갑니다(경사 상승).

θj:=θj+α (y(i)−hθ(x(i))) xj(i)\theta_j := \theta_j + \alpha\,\big(y^{(i)} - h_\theta(x^{(i)})\big)\,x_j^{(i)}
기호뜻
gg시그모이드(로지스틱) 함수
y−hy - h정답과 예측 확률의 차이 — "얼마나 틀렸나"
xjx_jjj번째 특성 — 그 특성이 컸던 만큼 많이 고침

노트가 강조하듯 이 식은 선형 회귀의 LMS 규칙과 모양이 똑같습니다. 다른 점은 hθh_\theta가 직선이 아니라 시그모이드라는 것뿐입니다. 이 우연 같은 일치는 노트 3장의 일반화 선형 모델(GLM)에서 같은 원리로 설명됩니다.

숫자로 해 보기(해설용): 예제 x=(1,2)x = (1, 2) (x0=1x_0 = 1), y=1y = 1, 시작값 θ=(0,−0.5)\theta = (0, -0.5), α=0.5\alpha = 0.5.

  1. θ⊤x=0+(−0.5)(2)=−1\theta^\top x = 0 + (-0.5)(2) = -1, h=g(−1)≈0.269h = g(-1) \approx 0.269 — 정답 1인데 27%만 줌
  2. 오차 y−h≈0.731y - h \approx 0.731
  3. θ0:=0+0.5×0.731×1≈0.366\theta_0 := 0 + 0.5 \times 0.731 \times 1 \approx 0.366, θ1:=−0.5+0.5×0.731×2≈0.231\theta_1 := -0.5 + 0.5 \times 0.731 \times 2 \approx 0.231
  4. 새 예측 g(0.366+0.231×2)=g(0.828)≈0.696g(0.366 + 0.231 \times 2) = g(0.828) \approx 0.696

한 번의 갱신으로 정답 확률이 0.27에서 0.70으로 올라갔습니다.

결정 경계: hθ(x)≥0.5h_\theta(x) \ge 0.5이면 1로 분류한다면, 이는 θ⊤x≥0\theta^\top x \ge 0과 같습니다. 즉 로지스틱 회귀의 결정 경계는 θ⊤x=0\theta^\top x = 0인 직선(고차원에서는 평면)입니다. 직선으로 나뉘지 않는 데이터에는 특성을 바꾸거나 신경망이 필요합니다.

왜 이렇게 유도하나: "손실 함수를 하나 골라 외우는" 대신 확률 모델에서 출발하면, 다중 분류(소프트맥스 회귀, 노트 2장)나 개수 데이터(포아송 회귀, 3장 GLM)에도 같은 절차로 손실과 기울기를 얻습니다.

mermaid
flowchart LR
  A["확률 모델 가정 p(y|x;θ)"] --> B["예제 독립 → 우도 = 곱"]
  B --> C["로그 → 로그 우도 ℓ(θ) = 합"]
  C --> D["미분 → (y − h)x"]
  D --> E["경사 상승 θ := θ + α(y − h)x"]
  E --> F["결정 경계 θᵀx = 0"]

4. 편향-분산 트레이드오프

직관(해설용 비유): 다트를 여러 번 던질 때, 모두 한쪽으로 몰려 과녁 중심에서 벗어나 있으면 '편향'이 큰 것이고, 중심 근처지만 사방으로 흩어지면 '분산'이 큰 것입니다.

학습 데이터를 새로 뽑을 때마다 모델이 조금씩 달라진다고 생각합니다. 어떤 입력 xx에서 그 모델들의 예측 f^(x)\hat{f}(x)를 모아 보면, 테스트 오차(제곱)는 세 조각으로 나뉩니다(노트 8장의 분해를 설명용으로 단순화).

E[(y−f^(x))2]=σ2⏟줄일 수 없는 잡음+(f(x)−E[f^(x)])2⏟편향2+Var[f^(x)]⏟분산\mathbb{E}\big[(y - \hat{f}(x))^2\big] = \underbrace{\sigma^2}_{\text{줄일 수 없는 잡음}} + \underbrace{\big(f(x) - \mathbb{E}[\hat{f}(x)]\big)^2}_{\text{편향}^2} + \underbrace{\mathrm{Var}\big[\hat{f}(x)\big]}_{\text{분산}}
기호뜻
f(x)f(x)진짜 함수의 값
f^(x)\hat{f}(x)학습 데이터에 따라 달라지는 모델의 예측
E[f^(x)]\mathbb{E}[\hat{f}(x)]여러 학습 데이터로 만든 모델 예측의 평균
σ2\sigma^2데이터 자체의 잡음

숫자로 해 보기(해설용): 진짜 값이 f(x)=3f(x) = 3인 지점에서, 학습 데이터 4벌로 각각 모델을 만들어 예측을 모았습니다.

모델4벌의 예측평균편향²분산
단순(직선)2.0, 2.4, 1.6, 2.02.0(3−2)2=1(3 - 2)^2 = 10.08
복잡(고차 다항식)3.5, 2.1, 3.9, 2.53.0000.53

단순한 모델은 늘 비슷하게 틀리고(편향 큼), 복잡한 모델은 평균은 맞지만 데이터마다 크게 흔들립니다(분산 큼). 이 예에서는 복잡한 모델의 편향² + 분산(0.530.53)이 단순한 모델(1.081.08)보다 작지만, 데이터가 더 적거나 잡음이 크면 분산이 커져 순서가 뒤집힙니다.

  • 편향이 큰 상태 = 과소적합(underfitting): 학습 오차부터 높습니다. 더 표현력 있는 모델이나 특성이 필요합니다.
  • 분산이 큰 상태 = 과적합(overfitting): 학습 오차는 낮은데 테스트 오차가 높습니다. 데이터를 늘리거나 정규화가 필요합니다.

노트 8장은 고전적인 U자 곡선 외에, 매개변수가 아주 많아지면 테스트 오차가 다시 내려가는 이중 하강(double descent) 현상도 다룹니다. 큰 신경망이 과적합 상식과 다르게 행동하는 이유의 일부입니다. 진단 · 해결 방법은 모델 평가와 과적합에서 이어집니다.

연습 문제

1. 데이터 (0,1),(1,3),(2,5)(0, 1), (1, 3), (2, 5)에 정규 방정식을 적용하면 θ\theta는?

풀이: X⊤X=(3335)X^\top X = \begin{pmatrix} 3 & 3 \\ 3 & 5 \end{pmatrix}, X⊤y⃗=(9,13)X^\top\vec{y} = (9, 13), 행렬식 15−9=615 - 9 = 6. θ=16(5−3−33)(9,13)⊤=16(6,12)=(1,2)\theta = \frac{1}{6}\begin{pmatrix} 5 & -3 \\ -3 & 3 \end{pmatrix}(9, 13)^\top = \frac{1}{6}(6, 12) = (1, 2). 세 점이 y=2x+1y = 2x + 1 위에 정확히 있으므로 오차 0입니다.

2. 예제 두 개 x=(1,2),y=1x = (1, 2), y = 1과 x=(1,−1),y=0x = (1, -1), y = 0, θ=(0,0)\theta = (0, 0), α=0.5\alpha = 0.5로 전체 배치 경사 상승을 한 번 하면?

풀이: θ=0\theta = 0이라 두 예측 모두 0.50.5. 기울기 ∑(y−h)x=0.5(1,2)+(−0.5)(1,−1)=(0,1.5)\sum(y - h)x = 0.5(1, 2) + (-0.5)(1, -1) = (0, 1.5). θ:=(0,0.75)\theta := (0, 0.75). 새 예측은 g(1.5)≈0.818g(1.5) \approx 0.818, g(−0.75)≈0.321g(-0.75) \approx 0.321로 둘 다 정답 쪽으로 움직였습니다. 로그 우도는 약 −1.386-1.386에서 −0.588-0.588로 올랐습니다.

3. 로지스틱 회귀에서 y=0y = 0인데 h=0.9h = 0.9였다면 (y−h)xj(y - h)x_j의 부호는? 가중치는 어떻게 바뀌나요?

풀이: y−h=−0.9y - h = -0.9로 음수입니다. xj>0x_j > 0인 특성의 가중치는 줄어 다음에는 예측 확률이 낮아집니다.

4. 학습 오차 2%, 검증 오차 25%인 모델은 편향 문제인가요, 분산 문제인가요?

풀이: 분산(과적합) 문제입니다. 학습 오차는 낮은데 새 데이터에서 크게 틀립니다.

스스로 점검

  1. 최소제곱 선형 회귀가 최대우도 추정이 되려면 어떤 가정이 필요한가요?
    • 답: 오차가 서로 독립이고 평균 0, 분산이 같은 정규분포를 따른다는 가정입니다.
  2. 로지스틱 회귀의 갱신 규칙이 LMS 규칙과 같은 모양인데, 무엇이 다른가요?
    • 답: 예측 hθ(x)h_\theta(x)가 선형 회귀는 θ⊤x\theta^\top x, 로지스틱 회귀는 g(θ⊤x)g(\theta^\top x)(시그모이드)입니다.
  3. 정규 방정식이 있는데도 경사 하강법을 주로 쓰는 이유는?
    • 답: 특성이 많으면 역행렬 계산이 너무 비싸고, 신경망 같은 비선형 모델에는 닫힌 해가 없기 때문입니다.

용어 정리

용어쉬운 뜻
가설(hypothesis) hθh_\thetaCS229가 모델의 예측 함수를 부르는 이름
설계 행렬(design matrix)예제를 한 줄씩 쌓은 입력 행렬
정규 방정식(normal equation)최소제곱 해를 한 번에 주는 식 (X⊤X)−1X⊤y(X^\top X)^{-1}X^\top y
LMS 규칙(least mean squares)오차 × 입력만큼 가중치를 고치는 선형 회귀 갱신 규칙
우도(likelihood) · 로그 우도(log-likelihood)매개변수가 주어졌을 때 데이터가 나올 확률 · 그 로그
경사 상승(gradient ascent)최대화를 위해 기울기 방향으로 가는 방법
로지스틱 회귀(logistic regression)시그모이드로 확률을 내는 이진 분류 모델
결정 경계(decision boundary)두 클래스를 나누는 경계, 여기서는 θ⊤x=0\theta^\top x = 0
일반화 선형 모델(GLM)선형 · 로지스틱 회귀를 하나로 묶는 틀
편향(bias)모델이 평균적으로 진짜 값에서 벗어난 정도
분산(variance)학습 데이터에 따라 모델 예측이 흔들리는 정도
이중 하강(double descent)매개변수가 아주 많아지면 테스트 오차가 다시 줄어드는 현상

더 깊이 보려면

노트는 6부 21장과 부록으로 되어 있습니다. 이 수업 다음으로 1부의 2장 후반(퍼셉트론 · 다중 분류 · 뉴턴법), 3장 일반화 선형 모델, 4장 생성 학습(가우시안 판별 분석 · 나이브 베이즈)을 읽으면 분류 모델을 폭넓게 이해할 수 있습니다. 2부 7장은 신경망과 역전파, 3부 9장은 정규화 · 교차 검증, 6부 19~21장은 MDP와 정책 경사(강화학습)입니다.

다음에 볼 것

라이선스

강의 노트에 별도 공개 라이선스 표기가 없어 저작권 보호 자료로 봅니다. 이 글은 원문 번역이 아니라 KAITABASE가 직접 쓴 해설이며, 숫자 예는 모두 설명용으로 만든 것입니다.

출처

  • 원문: https://cs229.stanford.edu/main_notes.pdf (Andrew Ng · Tengyu Ma, Stanford CS229)

AI 원리부터 이해하기 · 머신러닝 모듈

머신러닝 모듈 학습

이 글은 머신러닝 모듈의 학습 자료입니다. 전체 17개 자료 중 15번째입니다.

AI 기초 과정은 현재 진도 저장을 지원하지 않습니다.

출처·원문

원문 보기

요약만

저작권 보호