
앞서 배운 computation graph 개념을 Logistic Regression에 직접 적용해봅시다.
Logistic Regression 요약
feature가 2개라고 가정하면
Foward propagation 순방향
$$z = w_1x_1 + w_2x_2 + b$$
$$a = \sigma(z), 이는 y_hat 과 동일$$
$$L(a, y) = -[y*log(a) + (1 - y)*log(1 - a)]$$
Computation Graph로도 나타내 볼께요.
x₁, w₁ ──┐
x₂, w₂ ──┼── [z = w₁x₁ + w₂x₂ + b] ── [a = σ(z)] ── [L(a,y)]
b ───────┘
Backward Propagation 역방향
Step 1: $da = dL/da$
$$da = -y/a + (1 - y)/(1 - a)$$
이는 Loss Function L을 a에 대해 미분한 결과입니다. 수학 관련 게시글이 아니니 따로 유도 과정은 생략할께요.
Step 2: $dz = dL/dz$
Chain rule을 적용해봅시다.
$$dz = (dL/da) * (da/dz)$$
- $dL/da = 위에서 구한 da$
- $da/dz = \sigma(z)의 미분 = a(1 - a)$
이 두 항을 곱하면 놀랍게도 깔끔하게 정리됩니다.
$$dz = a - y$$
어찌보면 허무하기도 합니다. 오랫동안 저 깊숙히 무의식속에 넣어두었던 미분 기억을 겨우 살려 미분의 수학적 해석을 통해서 학습 과정을 이해했더니 결국 제가 구한건 단순히
예측값 - 실제값
복잡한 Chain rule을 거쳤지만, 최종 결과는 단순했죠. 뭐, 수능 킬러 문항도 아무리 어려운들 결국 답은 정수였었지만.
더 나아가 인생도 그러지 않을까요? 취업을 위해서 학교도 다니고 스펙도 쌓고 복잡복잡하게 살아왔지만 결국 성인(聖人)들이 말하는 진리는 늘 한 두 문장으로 간단했던걸 보면 말이죠. 잠깐 생각에 잠겨봅니다.
Step 3: $dw_1 , dw_2 , db$
$z = w_1 x_1 + b$이므로
dw₁ = x₁ · dz
dw₂ = x₂ · dz
db = dz
단일 예제에 대한 Gradient Descent 업데이트는 이렇습니다.
1. dz = a - y ← backward의 핵심
2. dw₁ = x₁ · dz ← 각 weight의 gradient
dw₂ = x₂ · dz
db = dz
3. w₁ := w₁ - α · dw₁ ← parameter 업데이트
w₂ := w₂ - α · dw₂
b := b - α · db
'CS & AI > Deep Learning' 카테고리의 다른 글
| [Coursera] Hyperparameter tuning (0) | 2026.04.14 |
|---|---|
| [Coursera] Activation Functions / Deep Learning Specialization (0) | 2026.04.13 |
| [Coursera] Computation Graph / Deep Learning Specialization (0) | 2026.04.10 |
| [궁금증] Norm? (0) | 2026.04.07 |
| [궁금증] Variance & Bias (0) | 2026.04.05 |
나의 성장 드라마
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!