미분과 최적화, 자동미분 — 기울기로 배우는 기계
Calculus 5/5. 앞 4편의 도구를 조립합니다. "미분계수 = 0"이라는 조건이 왜 최적화의 출발점인지, 경사하강법이 왜 작동하는지(테일러 전개), 그리고 딥러닝 프레임워크가 gradient를 어떻게 오차 없이 계산하는지(자동미분 = 연쇄법칙의 체계적 적용)까지.
1차 조건 — 페르마의 정리
가 내부점 에서 극값을 가지고 미분 가능하면:
증명 직관: 이면 오른쪽으로 조금 가면 더 커지고 왼쪽으로 가면 더 작아지므로 극값일 수 없습니다. 기울기가 남아 있는 한 개선 여지가 있다 — 최적화 알고리즘 전체를 관통하는 원리입니다.
주의: 이 조건은 필요조건일 뿐입니다. 의 처럼 극값이 아닌 임계점(변곡·안장)이 있고, 처럼 미분 불가능한 점의 극값은 잡아내지 못하며, 구간 끝점도 별도 확인해야 합니다.
2차 조건
임계점에서 2차 테일러 전개의 1차항이 사라지므로 2차항이 운명을 결정합니다:
| Hessian | 판정 |
|---|---|
| (모든 고윳값 양수) | 극소 |
| (모든 고윳값 음수) | 극대 |
| 고윳값 부호 혼재 | 안장점 |
| 반정부호(0 고윳값 포함) | 판정 불가 — 고차항 확인 필요 |
볼록성 — "국소 = 전역"이 성립하는 세계
가 볼록(convex) 이라는 것은 임의의 두 점을 잇는 선분이 그래프 위에 있다는 것:
미분 가능하면 동치 조건들이 있습니다:
- 1차: — 접선(접평면)이 항상 그래프 아래.
- 2차: (다변수: 어디서나).
볼록 함수에서는 모든 임계점이 전역 최솟값입니다. 1차 조건에 을 넣으면 가 모든 에 대해 즉시 나옵니다. 최소제곱, 로지스틱 회귀(크로스 엔트로피), SVM이 볼록이라 "학습이 잘 된다는 보장"이 있고, 심층 신경망은 비볼록이라 보장 대신 실험적 성질(안장점 탈출, 과매개변수화)에 기댑니다.
경사하강법 (Gradient Descent)
왜 작동하는가 — 테일러로 한 줄 증명: 가 -smooth(, MVT의 Lipschitz 통제)이면
이면 괄호가 양수가 되어 gradient가 0이 아닌 한 매 스텝 손실이 감소합니다. 학습률을 너무 키우면 발산하는 이유(2차항이 1차항을 이김)와, 근처가 안전한 이유가 이 부등식 하나에 다 들어 있습니다.
변형들은 전부 "gradient를 어떻게 가공하느냐"의 차이입니다:
- SGD: 전체 데이터 대신 미니배치로 를 불편추정 — LLN이 평균의 수렴을 보장.
- 모멘텀: gradient의 지수이동평균으로 좁은 골짜기의 지그재그 상쇄.
- Adam: 좌표별로 gradient 2차 모멘트로 스케일 조정 — Hessian 조건수 문제의 값싼 대증요법.
Newton법 — 2차 정보 사용
2차 전개를 최소화하는 스텝을 그대로 쓰면:
- 최적점 근처에서 2차 수렴(자릿수가 스텝마다 배로 늘어남) — 경사하강의 선형 수렴보다 압도적으로 빠릅니다.
- 대가: 계산·저장 , 역행렬 . 파라미터가 수백만이면 불가능하므로, 근사하는 quasi-Newton(L-BFGS)이나 대각 근사(Adam 계열)를 씁니다.
- 통계에서는 로그 가능도에 Newton법을 쓰는 것이 Fisher scoring — MLE 수치 계산의 고전입니다.
자동미분 (Automatic Differentiation)
gradient를 얻는 세 가지 방법의 비교:
| 방법 | 원리 | 문제점 |
|---|---|---|
| 수치 미분 | 절단·반올림 오차 트레이드오프, 개 편미분에 회 평가 | |
| 기호 미분 | 수식을 수식으로 변환 | 식 팽창(expression swell), 제어 흐름 처리 곤란 |
| 자동미분 | 연쇄법칙을 값에 적용 | 기계 정밀도로 정확, 프로그램 그대로 미분 |
자동미분의 핵심: 모든 프로그램은 기본 연산()의 합성이므로, 각 연산의 도함수를 알면 연쇄법칙으로 전체의 도함수를 정확하게 조립할 수 있습니다. 근사가 아닙니다.
Forward 모드 vs Reverse 모드
의 Jacobian 곱 을 어느 쪽부터 곱느냐의 선택입니다:
- Forward 모드: 입력에서 출력으로, (Jacobian-vector product)를 전파. 한 번의 통과로 입력 1개 방향의 미분을 얻음 → 비용 . 이 작을 때 유리.
- Reverse 모드: 출력에서 입력으로, (vector-Jacobian product)를 역전파. 한 번의 통과로 출력 1개에 대한 모든 입력의 gradient를 얻음 → 비용 .
딥러닝은 파라미터 수백만수십억, (스칼라 손실)이므로 reverse 모드가 유일한 선택이고, 그것이 역전파(backpropagation) 입니다. 손실 하나의 full gradient를 forward 계산의 상수배(약 23배) 비용으로 얻습니다. 대가는 중간 활성값을 역방향 통과까지 저장해야 하는 메모리 — gradient checkpointing이 이 트레이드오프를 다시 계산 쪽으로 되돌리는 기법입니다.
역전파를 손으로 한 번
, 점 :
전방 통과: , , .
역방향 통과():
로 들어오는 두 경로(합 노드, 제곱 노드)의 기여가 합산되는 것이 다변수 연쇄법칙의 "모든 경로의 합" 규칙입니다. 검산: , . ✓ (문서상 검산이며 실제 프레임워크에서는 이 역할을 gradient checking — 수치 미분과의 대조 — 이 수행합니다.)
미분 불가능 지점의 실무 처리
ReLU(), , max-pooling 경계처럼 딥러닝 함수는 미분 불가능 점 투성이입니다. 실무가 굴러가는 이유:
- 볼록 함수에는 열미분(subgradient) — 접선 대신 "그래프 아래를 지나는 직선들의 기울기 집합" — 이 항상 존재하고, 아무 원소나 써도 수렴 이론이 성립합니다.
- 미분 불가능 점은 측도 0 집합이라 연속 분포의 입력이 정확히 그 점에 떨어질 확률이 0입니다.
- 프레임워크는 관례적으로 한 값을 고정합니다(예: ReLU'(0) = 0).
요약
- 1차 조건 은 필요조건, 2차 조건(Hessian 정부호성)이 극소/극대/안장을 판별합니다.
- 볼록성은 "국소 최솟값 = 전역 최솟값"을 보장하는 구조이며, 1차·2차 동치 조건으로 판정합니다.
- 경사하강법의 수렴은 테일러 부등식 한 줄에서 나오고, 학습률 상한 도 거기서 읽힙니다.
- 자동미분은 근사가 아니라 연쇄법칙의 정확한 조립이며, 손실이 스칼라인 딥러닝에서는 reverse 모드(역전파)가 비용상 유일한 선택입니다.
시리즈 전체 목차: Math:: 인덱스