제1원리 질문. AI는 왜 미분을 알아야 학습할 수 있는가. 학습은 가중치를 조금 바꿨을 때 오차가 얼마나 변하는지 알아야 방향을 정할 수 있고, ‘조금 바꿨을 때의 변화율’이 바로 미분이기 때문이다.

핵심 — 순간의 기울기
로드맵은 33주차 “기울기 = 얼마나 가파른가, 그것뿐”에서 시작해 35주차 미분을 “확대하면 곡선도 직선이다”로 요약한다. 곡선의 한 점을 계속 확대하면 거의 직선처럼 보이고, 그 직선의 기울기가 그 점의 미분값이다. 식으로는 아주 작은 h에 대해 (f(x + h) − f(x)) / h다.
| 함수 | 미분 (패턴) | x = 3에서 |
|---|---|---|
| x2 | 2x | 6 |
| x3 | 3x2 | 27 |
| 5x | 5 | 5 |
| 상수 7 | 0 | 0 |
39주차 체인룰은 “톱니바퀴 비유 — 변화가 전달되는 법”이다. y = (3x + 1)2처럼 함수 안에 함수가 있으면, 안쪽 u = 3x + 1을 먼저 보고 dy/dx = (dy/du) × (du/dx)로 변화율을 곱한다.
톱니바퀴 두 개의 기어비를 곱하면 전체 기어비가 되는 것과 같은 구조다.
코드로 번역하기
미분 공식을 외우지 않아도 컴퓨터로 ‘아주 작게 움직여 보기’를 할 수 있다. 아래는 앞뒤로 h만큼 움직여 기울기를 재는 중앙 차분(수치 미분)이다. 공식으로 구한 값과 일치하는지 확인하는 용도로 쓴다.
# 미분 = 아주 작은 h만큼 움직였을 때의 기울기
def f(x):
return x ** 2
def diff(func, x, h=1e-6):
return (func(x + h) - func(x - h)) / (2 * h) # 중앙 차분
print(round(diff(f, 3), 4)) # 6.0 (공식 2x -> 2*3)
# 체인룰: y = (3x + 1)^2, 안쪽 u = 3x + 1
def g(x):
return (3 * x + 1) ** 2
x = 1
u = 3 * x + 1
chain = (2 * u) * 3 # dy/du * du/dx
print(chain) # 24
print(round(diff(g, x), 4)) # 24.0 (수치 미분과 일치)
실행 결과
6.0
24
24.0
사례 적용 — 신경망은 체인룰의 연속
6편에서 본 신경망은 층이 겹겹이 쌓인 합성함수다. 맨 끝의 오차가 맨 앞 가중치에 얼마나 민감한지 알려면, 층마다의 변화율을 체인룰로 차례로 곱해 거슬러 올라가야 한다. 로드맵 47주차의 ‘예측→오차→미분→갱신’ 학습 루프에서 ‘미분’ 단계가 바로 이 계산이다.
수치 미분은 이해와 검산에는 좋지만, 가중치가 수백만 개일 때 하나씩 움직여 보는 것은 너무 느리다. 그래서 실제 프레임워크는 체인룰을 자동으로 적용하는 방식을 쓰며, 수치 미분은 그 결과가 맞는지 확인하는 검산 도구로 남는다.
1분 개념 체크
로드맵 교재 템플릿의 ‘1분 개념 체크’ 형식을 빌려 스스로 확인할 문제 두 개를 만들었다.
| 질문 | 답 | 근거 |
|---|---|---|
| x4를 미분하면? | 4x3 | xn → n xn−1 패턴 |
| y = (2x)2의 x = 1에서 dy/dx는? | 8 | dy/du = 2u = 4, du/dx = 2, 곱하면 8 |
내 해석 — Rhymbro가 읽은 것
체인룰의 톱니바퀴 비유는 감속기 계산과 정확히 겹쳤다. 모터 → 1단 감속 → 2단 감속 → 출력축으로 이어질 때 전체 감속비는 각 단 감속비의 곱이다. 입력을 조금 돌렸을 때 출력이 얼마나 도는지가 각 단 변화율의 곱이라는 점에서, 체인룰은 이미 동력 전달 계산에서 쓰던 원리였다.
수치 미분에서는 h를 너무 작게 잡으면 오히려 컴퓨터의 소수점 오차 때문에 값이 흔들릴 수 있다는 점도 함께 기억해 둔다. 이론상 ‘한없이 작게’와 계산상 ‘적당히 작게’는 다르다.
반론으로, 체인룰의 곱셈은 층이 매우 깊어지면 작은 값이 계속 곱해져 0에 가까워지거나 큰 값이 곱해져 폭발할 수 있으므로, 깊은 신경망에서는 이를 막는 별도의 설계가 필요하다.
요약
| 항목 | 정리 |
|---|---|
| 미분 | 아주 작게 움직였을 때의 기울기 |
| 패턴 | xn → n xn−1 |
| 체인룰 | dy/dx = (dy/du)(du/dx), 변화율의 곱 |
| 수치 미분 | (f(x+h) − f(x−h)) / 2h, 검산용 |
그래서 나는 무엇을 하기로 했나
이번 주는 x3, (2x − 5)2, 그리고 두 함수의 합성 하나를 골라 공식 미분값과 수치 미분값을 코드로 비교해 보기로 했다.
주제와 순서는 개인 학습용으로 정리한 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 수학 로드맵 노트 7 — 미분과 체인룰, 변화가 전달되는 법 […]