devlog.

최적화, 편미분, 그래디언트: 머신러닝 미적분 2장

·11분 읽기·

1장에서는 미분의 기본 개념과 주요 함수들의 미분 공식을 배웠습니다. 이번 글에서는 그 미분을 실제로 최적화(Optimization) 에 어떻게 활용하는지, 그리고 여러 변수를 가진 함수의 미분인 편미분그래디언트를 다룹니다.

이 글은 DeepLearning.AI의 Mathematics for Machine Learning and Data Science — Calculus 2주차 내용을 기반으로 정리했습니다.

이번 글에서 배우는 것#

  • 최적화(Optimization) — 극솟값·극댓값·전역 최솟값의 차이
  • 제곱 손실(Squared Loss) 최적화 — 평균을 유도하는 이유
  • 로그 손실(Log-Loss) 최적화 — 로그를 쓰는 이유
  • 편미분(Partial Derivative) — 다변수 함수의 미분
  • 그래디언트(Gradient) — 편미분의 벡터 표현
  • 그래디언트로 최솟값 찾기

최적화란 무엇인가#

최적화(Optimization) 는 함수의 최댓값 또는 최솟값을 찾는 과정입니다.

머신러닝에서는 항상 손실 함수(loss function)를 최소화합니다. 모델이 데이터를 얼마나 잘못 예측하는지를 측정하는 손실 함수의 값을 줄여나가는 것이 학습입니다.

극솟값과 전역 최솟값#

용어설명
극솟값 (Local Minimum)주변보다는 낮지만 전체 최솟값은 아닌 지점 (기울기 = 0)
전역 최솟값 (Global Minimum)함수 전체에서 가장 낮은 지점 (기울기 = 0)
극댓값 (Local Maximum)주변보다는 높지만 전체 최댓값은 아닌 지점 (기울기 = 0)

핵심: 최솟값·최댓값은 반드시 기울기(도함수)가 0인 지점에서 발생합니다. 하지만 기울기가 0이라고 모두 최솟값은 아닙니다 (안장점, saddle point도 있음).


제곱 손실 최적화#

전력선 문제로 이해하기#

집을 짓는 위치 xx 를 정할 때, 전력선 a,b,ca, b, c 까지의 연결 비용을 최소화하고 싶습니다.

비용 함수 (Cost Function):

C(x)=(xa)2+(xb)2+(xc)2C(x) = (x-a)^2 + (x-b)^2 + (x-c)^2

거리의 제곱을 사용하는 이유:

  • 절댓값보다 미분이 쉬움
  • 음수/양수 방향 모두 동일하게 패널티 부여

최솟값 찾기 — 도함수 = 0:

C(x)=2(xa)+2(xb)+2(xc)=0C'(x) = 2(x-a) + 2(x-b) + 2(x-c) = 0

3x=a+b+c3x = a + b + c

x=a+b+c3\boxed{x = \frac{a+b+c}{3}}

결론: 제곱 손실을 최소화하는 최적 위치는 평균(mean) 입니다. 선형 회귀가 MSE를 최소화하면 계수가 최소제곱 추정량이 되는 것도 같은 원리입니다.

nn개로 일반화#

C(x)=i=1n(xxi)2x=1ni=1nxiC(x) = \sum_{i=1}^n (x - x_i)^2 \quad \Rightarrow \quad x^* = \frac{1}{n}\sum_{i=1}^n x_i

머신러닝 해석: MSE(평균 제곱 오차)를 손실 함수로 쓰면, 이를 최소화하는 예측값은 항상 정답의 평균입니다.


로그 손실 최적화#

왜 로그 손실을 사용하는가?#

동전을 10번 던져 앞면(H)이 7번, 뒷면(T)이 3번 나왔습니다. 이 동전의 앞면 확률 pp 를 추정하고 싶습니다.

우도(Likelihood):

L(p)=p7(1p)3L(p) = p^7 (1-p)^3

L(p)L(p) 를 최대화하는 pp 를 찾는 것이 최대 우도 추정(MLE) 입니다.

문제: 확률의 곱은 숫자가 매우 작아집니다 (예: 0.77×0.330.00220.7^7 \times 0.3^3 \approx 0.0022). 더 많은 데이터가 있으면 컴퓨터가 처리할 수 없을 정도로 작아집니다.

해결책 — 로그 변환:

logL(p)=7logp+3log(1p)\log L(p) = 7\log p + 3\log(1-p)

로그의 성질로 곱 → 합으로 바뀌어 계산이 안정됩니다.

미분해서 최솟값 찾기:

ddplogL=7p31p=0\frac{d}{dp}\log L = \frac{7}{p} - \frac{3}{1-p} = 0

7(1p)=3pp=710=0.77(1-p) = 3p \quad \Rightarrow \quad p = \frac{7}{10} = 0.7

결론: MLE로 추정한 확률은 관측 빈도(710\frac{7}{10})와 일치합니다.

네거티브 로그 손실 (Negative Log-Loss)#

분류 모델에서 손실 함수로 로그 손실을 쓸 때 음의 부호를 붙입니다:

Loss=logL(p)=[ylogp+(1y)log(1p)]\text{Loss} = -\log L(p) = -[y\log p + (1-y)\log(1-p)]

이유:

  • 0<p<10 < p < 1 일 때 logp<0\log p < 0 → 로그 손실은 음수
  • 음수를 붙여 양수로 만들고 최소화

최소화 = 원래 우도 최대화와 동일합니다.


편미분 (Partial Derivative)#

접선 평면으로의 확장#

1변수 함수의 미분 → 접선(tangent line)

2변수 함수의 미분 → 접선 평면(tangent plane)

변수가 여러 개인 함수에서 미분하려면, 하나의 변수에 대해 미분할 때 나머지는 상수로 취급합니다. 이것이 편미분입니다.

편미분 계산#

f(x,y)=3x2y3f(x, y) = 3x^2y^3

xx에 대한 편미분 (yy를 상수 취급):

fx=6xy3\frac{\partial f}{\partial x} = 6xy^3

yy에 대한 편미분 (xx를 상수 취급):

fy=9x2y2\frac{\partial f}{\partial y} = 9x^2y^2

표기법: fx\frac{\partial f}{\partial x} 또는 fxf_x (라운드 d, partial d)

편미분 예시#

f(x,y)=x2y+3x+y2f(x, y) = x^2y + 3x + y^2

fx=2xy+3\frac{\partial f}{\partial x} = 2xy + 3

fy=x2+2y\frac{\partial f}{\partial y} = x^2 + 2y

핵심: xx에 대해 편미분할 때, yy가 포함된 항은 상수처럼 취급합니다. y2y^2xx에 대해 상수이므로 미분하면 0.


그래디언트 (Gradient)#

그래디언트 f\nabla f 는 모든 편미분을 모아 만든 벡터입니다.

f=[fx1fx2fxn]\nabla f = \begin{bmatrix} \frac{\partial f}{\partial x_1} \\ \frac{\partial f}{\partial x_2} \\ \vdots \\ \frac{\partial f}{\partial x_n} \end{bmatrix}

2변수 함수 f(x,y)f(x, y) 의 경우:

f=[fxfy]\nabla f = \begin{bmatrix} \frac{\partial f}{\partial x} \\ \frac{\partial f}{\partial y} \end{bmatrix}

예시#

f(x,y)=x2+y2f(x, y) = x^2 + y^2

f=[2x2y]\nabla f = \begin{bmatrix} 2x \\ 2y \end{bmatrix}

(2,3)(2, 3) 에서의 그래디언트:

f(2,3)=[46]\nabla f(2, 3) = \begin{bmatrix} 4 \\ 6 \end{bmatrix}

기하학적 의미: 그래디언트는 함수가 가장 가파르게 증가하는 방향을 가리킵니다. 반대 방향(-그래디언트)이 가장 빠르게 감소하는 방향입니다.


그래디언트로 최솟값 찾기#

해석적 방법 (Analytical Method)#

다변수 함수의 최솟값은 모든 편미분 = 0 인 점에서 발생합니다.

f=0fx1=fx2==0\nabla f = \vec{0} \quad \Leftrightarrow \quad \frac{\partial f}{\partial x_1} = \frac{\partial f}{\partial x_2} = \cdots = 0

선형 회귀 예시#

데이터 포인트 (1,1),(2,2),(3,3)(1, 1), (2, 2), (3, 3) 에 직선 y=mx+by = mx + b 를 피팅할 때:

손실 함수 (MSE):

E(m,b)=(m+b1)2+(2m+b2)2+(3m+b3)2E(m, b) = (m + b - 1)^2 + (2m + b - 2)^2 + (3m + b - 3)^2

편미분:

Em=28m+12b42=0\frac{\partial E}{\partial m} = 28m + 12b - 42 = 0

Eb=12m+6b20=0\frac{\partial E}{\partial b} = 12m + 6b - 20 = 0

연립방정식 풀기:

m=1,b=23m = 1, \quad b = \frac{2}{3}

이것이 최소제곱법(Least Squares) 의 해석적 해입니다.

실무에서는? 데이터가 많고 파라미터가 많으면 해석적으로 풀기가 어렵습니다. 이때 경사 하강법(Gradient Descent) 을 사용합니다.


핵심 정리#

개념설명
최적화함수의 최솟값/최댓값을 찾는 과정
전역 최솟값함수 전체에서 가장 낮은 점
극솟값주변보다 낮지만 전역 최솟값은 아닌 점
제곱 손실(yy^)2(y - \hat{y})^2, 최솟값 = 평균
로그 손실logL(p)-\log L(p), 확률 추정에 사용
편미분한 변수로만 미분, 나머지는 상수 취급
그래디언트모든 편미분을 모은 벡터, 최대 상승 방향
최솟값 조건f=0\nabla f = \vec{0}


퀴즈#

Q1. f(x,y)=x2y+6xf(x, y) = x^2y + 6xfx\frac{\partial f}{\partial x} 를 구하세요.

정답 보기

yy를 상수 취급:

fx=2xy+6\frac{\partial f}{\partial x} = 2xy + 6


Q2. f(x,y)=exy+y2f(x, y) = e^{xy} + y^2 의 그래디언트 f\nabla f 를 구하세요.

정답 보기

fx=yexy\frac{\partial f}{\partial x} = ye^{xy}

fy=xexy+2y\frac{\partial f}{\partial y} = xe^{xy} + 2y

f=[yexyxexy+2y]\nabla f = \begin{bmatrix} ye^{xy} \\ xe^{xy} + 2y \end{bmatrix}


Q3. 손실 함수 L(w)=(w3)2+(w7)2+(w5)2L(w) = (w - 3)^2 + (w - 7)^2 + (w - 5)^2 를 최소화하는 ww 는?

정답 보기

L(w)=2(w3)+2(w7)+2(w5)=0L'(w) = 2(w-3) + 2(w-7) + 2(w-5) = 0

6w=30w=56w = 30 \quad \Rightarrow \quad w = 5

3, 7, 5의 평균입니다. 제곱 손실의 최솟값은 항상 평균임을 확인할 수 있습니다.


Q4. 다음 중 그래디언트에 대해 옳은 것은?

  1. 그래디언트는 스칼라 값이다
  2. 그래디언트는 함수가 가장 가파르게 감소하는 방향을 가리킨다
  3. 그래디언트가 0\vec{0} 인 점은 극솟값 또는 극댓값 후보이다
  4. 그래디언트는 항상 양수 방향이다
정답 보기

3번

  • 1번 ❌: 그래디언트는 벡터 (편미분의 모음)
  • 2번 ❌: 그래디언트는 증가 방향, -그래디언트가 감소 방향
  • 3번 ✅: f=0\nabla f = \vec{0} 이면 극값(극솟값, 극댓값, 안장점) 후보
  • 4번 ❌: 그래디언트는 방향 벡터이며 음수 성분도 가능

다음 글에서는 경사 하강법(Gradient Descent) 의 실제 작동 원리, 퍼셉트론과 뉴럴 네트워크에서의 최적화, 그리고 역전파(Backpropagation)뉴턴 방법(Newton's Method) 을 다룰 예정입니다.

관련 포스트