딥러닝 논문을 읽다 보면 “충분히 작은 학습률”, “수렴이 보장되는 조건”, ”h→0 극한에서 gradient와 일치”라는 문구를 반복해서 마주친다. 이 표현들은 모두 하나의 언어 체계, ε-δ 언어로 번역된다. 그렇다면 이 챕터들이 공유하는 철학은 무엇인가? 단변수 해석학의 다섯 개 주제 — 극한, 연속, 미분, 테일러 정리, 미분가능성 반례 — 는 결국 하나의 질문으로 수렴한다: “얼마나 가까우면 충분히 가까운가?”
극한: 수렴을 정량화하는 언어
“가까워진다”는 직관은 수학적으로 부족하다. f(x)=sin(1/x)는 x가 0에 가까워질수록 [−1,1] 전체를 진동하며, “가까워진다”는 표현만으로는 이 함수가 극한이 없다는 사실을 표현할 수 없다.
ε-δ 정의는 이 문제를 정량적으로 해결한다.
limx→af(x)=L⟺∀ε>0,∃δ>0 s.t. 0<∣x−a∣<δ⇒∣f(x)−L∣<ε
ε은 “출력의 허용 오차”, δ는 “그것을 달성하기 위한 입력 제어량”이다. 이 정의가 모든 ε > 0에 대해 성립할 때 수렴이라 한다.
딥러닝에서 SGD 수렴 주장 “k→∞일 때 E[f(xk)]→f∗“는 수열 극한의 ε-N 표현이다. Robbins-Monro 조건
∑k=1∞ηk=∞,∑k=1∞ηk2<∞
의 두 줄 역시 수렴과 발산의 정의 위에 서 있다.
명제 1
· 극한의 유일성
limx→af(x)=L이고 limx→af(x)=M이면 L=M이다.
▷ 증명
L=M이라 가정하고 ε=∣L−M∣/2>0으로 놓자. 각 극한 정의에서 δ1,δ2>0이 존재하며, δ=min(δ1,δ2)로 잡으면 0<∣x−a∣<δ인 x에 대해
∣L−M∣≤∣L−f(x)∣+∣f(x)−M∣<ε+ε=∣L−M∣
이는 모순이다. 따라서 L=M. □
∎
연속과 균등연속: δ가 점에 의존하는가
점별 연속과 균등연속의 차이는 δ가 점 a에 의존하는지 여부다.
개념
δ의 의존성
점별 연속
δ=δ(ε,a)
균등연속
δ=δ(ε)
Lipschitz 연속
L 상수 하나로 충분
f(x)=1/x는 (0,1]에서 점별 연속이지만 균등연속이 아니다. x가 0에 가까울수록 같은 ε을 달성하기 위해 δ가 0으로 수렴해야 하기 때문이다.
균등연속의 강화인 Lipschitz 조건∣f(x)−f(y)∣≤L∣x−y∣는 AI에서 직접적으로 등장한다. gradient가 폭발할 때 쓰는 Gradient Clipping
g←g⋅min(1,∥g∥c)
은 손실 함수를 사실상 c-Lipschitz로 제한하는 연산이다. 콤팩트 집합 위의 연속 함수는 균등연속(Heine-Cantor 정리)이므로, 정규화로 유효 탐색 공간을 제한하면 최솟값 존재도 보장된다.
미분: 최선의 선형근사
도함수를 “기울기”로만 이해하면 역전파의 원리가 보이지 않는다. 더 정확한 정의는 이것이다.
f(a+h)=f(a)+f′(a)⋅h+o(h)r(h)
r(h)=o(h), 즉 limh→0r(h)/h=0이라는 조건이 f′(a)를 “점 a 근방에서 f를 가장 잘 흉내 내는 선형 함수의 계수”로 만든다. 이 계수는 유일하다.
역전파는 이 선형근사를 역방향으로 전파한다. 각 층 연산 z=f(x)에서
δx=f′(x)⋅δz
가 성립하는 이유는 선형근사의 오차가 o(δz)이고, δz→0 극한에서 정확하기 때문이다.
수치 미분 방법의 정확도 차이도 같은 틀로 이해된다.
방법
수식
오차
float64 최적 h
전방 차분
(f(x+h)−f(x))/h
O(h)
≈10−8
중심 차분
(f(x+h)−f(x−h))/2h
O(h2)
≈10−5
PyTorch gradcheck이 중심 차분을 쓰고 float64를 요구하는 이유가 여기 있다.
테일러 정리: 학습률 상한의 근거
Rolle → MVT → 테일러 정리는 논리적으로 연결된 사슬이다. MVT가 “전체 변화량을 한 순간의 변화율로 설명”한다면, 테일러 정리는 이를 반복 적용해 함수를 임의의 차수로 근사한다.
AI에서 결정적으로 중요한 응용은 L-smooth 조건이다. 기울기 ∇f가 Lipschitz 연속일 때, 2차 테일러 여분항의 상한으로부터
f(y)≤f(x)+∇f(x)⊤(y−x)+2L∥y−x∥2
가 성립한다. 여기에 y=x−η∇f(x)를 대입하면
f(x−η∇f)≤f(x)−η(1−2Lη)∥∇f∥2
η<2/L이면 괄호 안이 양수이므로 매 스텝 손실이 반드시 감소한다. “학습률이 충분히 작아야 한다”는 말의 수학적 의미가 바로 η<2/L이다.
뉴턴 방법은 2차 테일러 근사를 직접 최소화해 도출된다.
xk+1=xk−Hk−1∇f(xk)
2차 수렴의 근거는 3차 여분항 O(∥x−xk∥3)이 수렴 속도를 결정한다는 점이다.
Subgradient: 미분불가능해도 최적화가 되는 이유
딥러닝의 활성화 함수들은 어딘가에서 미분불가능하다. ReLU는 x=0에서 왼쪽 기울기 0, 오른쪽 기울기 1로 갈라진다. 그런데도 역전파가 작동한다.
세 가지 이유가 결합된다.
측도론적 근거: Rademacher 정리에 의해 Lipschitz 연속 함수는 거의 어디서나(a.e.) 미분가능하다. 연속 분포에서 preactivation이 정확히 0일 확률은 0이므로, 학습 중 실제로 미분불가능점을 만날 일이 없다.
Subgradient: 볼록 함수 f에서 벡터 g가 점 x의 subgradient라는 것은
∀y,f(y)≥f(x)+g⊤(y−x)
를 의미한다. f(x)=∣x∣에서 x=0의 subdifferential은 [−1,1] 전체다. 이 집합 안의 원소를 하나 선택해 하강 방향으로 쓰면, 볼록 함수 최적화의 수렴이 보장된다.
명제 2
· Subgradient 최적성
볼록 함수 f에서 x∗가 전역 최솟값인 것은 0∈∂f(x∗)인 것과 동치이다.
▷ 증명
(⇒)x∗가 최솟값이면 ∀y, f(y)≥f(x∗)이므로 g=0이 subgradient 정의를 만족한다.
(⇐)0∈∂f(x∗)이면 ∀y, f(y)≥f(x∗)+0=f(x∗)이므로 x∗는 전역 최솟값이다. □
∎
L1 정규화 L(W)+λ∥W∥1에서 Wi=0일 때 subdifferential이 [−1,1]인 덕분에 최솟값 조건 ∇iL+λgi=0이 gi∈[−1,1] 범위 안에서 충족될 수 있다. 이것이 L1이 희소해를, L2가 작은 값을 만드는 수학적 이유다.
✎ 트레이드오프
Subgradient 방법은 볼록 함수에서 수렴이 보장되지만, ReLU 네트워크 같은 비볼록 경우에는 이론 보장이 약해진다. PyTorch는 x=0에서 ReLU gradient를 0으로 정의하는데, 이는 subdifferential의 원소 중 하나를 관례적으로 선택한 것이다. 구현마다 다를 수 있으며, 유일한 “올바른” 값은 존재하지 않는다.