경사하강법에서 w = w - α × dL/dw라는 공식을 봤을 때 한 가지 의문이 생겼습니다. 가중치가 하나일 때는 이해가 됐는데, 가중치가 수억 개라면 어떻게 되는 걸까요. 각각의 가중치가 손실에 얼마나 영향을 주는지 따로따로 알아야 할 텐데, 그게 어떻게 가능한 건지 처음엔 감이 안 왔습니다.
그 답이 편미분이었습니다. 나머지 변수는 다 고정하고 딱 하나만 건드려서 기울기를 보는 방법입니다. 그리고 이 편미분을 라이프니츠 표기법으로 쓰면 연쇄법칙과 결합할 때 놀라울 정도로 직관적으로 이해가 됩니다. 오늘은 그 흐름을 따라가 보겠습니다.

다변수 함수란 무엇인가
중학교 수학에서 배우는 y = 2x + 1은 입력이 x 하나, 출력이 y 하나인 일변수 함수입니다. 그런데 현실 문제는 대부분 입력이 여러 개입니다. 오늘 기온, 습도, 풍속이 모여서 체감온도가 결정되는 것처럼요.
딥러닝 모델도 마찬가지입니다. 가중치 w1, w2, w3 … 이 수억 개의 입력이 들어가서 손실값 L 하나가 나오는 구조입니다. 이걸 수식으로 쓰면 L = f(w1, w2, w3, …, wn)입니다. 변수가 n개인 다변수 함수입니다.
변수가 2개일 때는 그래프가 3D 곡면이 됩니다. 변수가 3개 이상이면 눈으로 볼 수 없는 고차원 공간이 됩니다. 이 복잡한 공간에서 손실을 줄이는 방향을 찾으려면 각 변수가 손실에 어떤 영향을 주는지 개별적으로 파악해야 합니다. 그게 편미분의 역할입니다.

편미분 — 하나만 건드리고 나머지는 고정
편미분의 아이디어는 단순합니다. 변수가 여러 개일 때 딱 하나의 변수만 움직이고 나머지는 전부 상수로 고정한 채 미분하는 겁니다. x1이 손실에 미치는 영향만 보고 싶으면 w2, w3 … 은 전부 숫자처럼 취급하고 w1 만 미분합니다.
기호로는 d 대신 ∂(라운드 디)를 씁니다. ∂L/∂w1은 "다른 가중치는 고정하고 w1만 변할 때 손실이 얼마나 변하는가"를 나타냅니다. 이 값이 크면 w1이 손실에 큰 영향을 준다는 뜻이고, 작으면 별 영향이 없다는 뜻입니다.
각 가중치에 대한 편미분을 전부 구하면 어느 가중치를 얼마나 어떤 방향으로 바꿔야 손실이 줄어드는지 알 수 있습니다. 이 편미분 값들을 모아놓은 게 그레디언트 벡터이고, 경사하강법은 이 그레디언트 방향의 반대로 가중치를 업데이트합니다.
실제 숫자로 편미분 계산해보기
말로만 하면 추상적이니 실제로 계산해 보겠습니다. f(x, y) = x² + 3xy + y²라는 함수가 있을 때 편미분은 이렇습니다.
y에 대한 편미분: ∂f/∂y = 3x + 2y (x는 상수 취급)
x=2, y=1일 때:
∂f/∂x = 2(2) + 3(1) = 7 ← x를 1 늘리면 f가 약 7 증가
∂f/∂y = 3(2) + 2(1) = 8 ← y를 1 늘리면 f가 약 8 증가
그레디언트: [7, 8] ← 이 방향의 반대로 가면 f가 줄어든다
그레디언트가 [7, 8]이라는 건 현재 위치에서 x 방향보다 y 방향으로 더 빠르게 f가 커진다는 뜻입니다. 경사하강법은 이 반대인 [-7, -8] 방향으로 이동해서 f를 줄입니다. 가중치가 수억 개여도 이 계산을 각각에 대해 하는 게 전부입니다.

라이프니츠 표기법이 특별한 이유
미분 표기법에는 크게 두 가지가 있습니다. 뉴턴의 y'(프라임 표기)과 라이프니츠의 dy/dx(분수 표기)입니다. 둘 다 같은 걸 나타내는데 왜 딥러닝에서는 라이프니츠 표기를 쓸까요.
이유는 분수처럼 다룰 수 있기 때문입니다. dy/dx는 실제 분수가 아니지만 많은 연산에서 분수처럼 약분하고 곱하는 게 가능합니다. 예를 들어 dy/dx × dx/dt = dy/dt처럼요. 중간의 dx가 약분되는 것처럼 보입니다. 이게 연쇄법칙입니다.
두 표기법의 차이를 정리하면 이렇습니다.
| 특징 | 라이프니츠 (dy/dx) | 뉴턴 (y') |
|---|---|---|
| 형태 | 분수 형태 | 프라임 형태 |
| 변수 명시 | 어떤 변수로 미분하는지 명확 | 생략되어 모호할 수 있음 |
| 연쇄법칙 | 분수 약분처럼 직관적 | 별도 규칙 적용 필요 |
| 주요 활용 | 다변수 미분, 딥러닝, 공학 | 물리학, 고전 역학 |
연쇄법칙과 라이프니츠 기호의 결합
신경망은 층이 여러 개 쌓인 구조입니다. 입력이 1층을 거쳐 2층으로, 2층에서 3층으로 이어지면서 최종 손실이 나옵니다. 이 구조에서 1층 가중치가 손실에 어떤 영향을 주는지 알려면 각 층을 거치면서 미분이 어떻게 전달되는지 추적해야 합니다.
연쇄법칙은 이걸 체계적으로 합니다. 라이프니츠 표기로 쓰면 이렇게 됩니다.
dL/dw = dL/dz × dz/dw
층이 세 개면:
dL/dw = dL/dz3 × dz3/dz2 × dz2/dw
중간 항들이 분수처럼 약분되어 연결되는 구조
라이프니츠 표기 덕분에 연쇄법칙이 분수 약분처럼 보입니다. 층이 100개여도 같은 패턴의 곱셈이 100번 이어질 뿐입니다. 역전파 알고리즘이 이 구조를 그대로 코드로 구현한 겁니다.

역전파에서 이 모든 게 연결되는 방식
역전파(Backpropagation)는 결국 연쇄법칙의 반복 적용입니다. 출력층에서 시작해서 입력층 방향으로 거슬러 올라가며 각 가중치의 편미분을 계산합니다. 라이프니츠 표기로 쓰면 각 층의 미분이 분수처럼 연결되어 전달됩니다.
PyTorch에서 loss.backward()를 호출하는 순간 이 과정이 자동으로 실행됩니다. 내부적으로는 연산 그래프를 따라 역방향으로 편미분을 계산하며 각 가중치의. grad 속성에 값을 채워 넣습니다. 자동 미분(Autograd)이 라이프니츠의 연쇄법칙을 그대로 코드로 구현한 겁니다.
편미분을 처음 배울 때는 "왜 나머지를 상수로 고정하지?"라는 의문이 들었는데, 결국 그 단순한 아이디어가 수억 개 가중치를 동시에 학습시키는 구조의 기반이 됩니다. 라이프니츠가 300년 전에 만든 dy/dx 표기가 지금 PyTorch 코드 한 줄에 그대로 살아있는 겁니다.
'데이터 과학 수학' 카테고리의 다른 글
| 데이터의 질서, 정규분포와 중심극한정리의 마법 (0) | 2026.04.04 |
|---|---|
| 베이즈 정리의 마법, 정보가 확신을 바꾸는 원리 (0) | 2026.04.04 |
| 딥러닝 학습의 복병, 안장점의 위협과 고차원 최적화 (0) | 2026.04.04 |
| 제약 조건 속 최적의 해법, 라그랑주 승수법의 원리 (0) | 2026.04.04 |
| 함수 최적화의 열쇠, 임계점과 극대·극소 판정법 원리 (0) | 2026.04.03 |