최적화, 편미분, 그래디언트: 머신러닝 미적분 2장
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도 있음).
제곱 손실 최적화#
전력선 문제로 이해하기#
집을 짓는 위치 를 정할 때, 전력선 까지의 연결 비용을 최소화하고 싶습니다.
비용 함수 (Cost Function):
거리의 제곱을 사용하는 이유:
- 절댓값보다 미분이 쉬움
- 음수/양수 방향 모두 동일하게 패널티 부여
최솟값 찾기 — 도함수 = 0:
결론: 제곱 손실을 최소화하는 최적 위치는 평균(mean) 입니다. 선형 회귀가 MSE를 최소화하면 계수가 최소제곱 추정량이 되는 것도 같은 원리입니다.
개로 일반화#
머신러닝 해석: MSE(평균 제곱 오차)를 손실 함수로 쓰면, 이를 최소화하는 예측값은 항상 정답의 평균입니다.
로그 손실 최적화#
왜 로그 손실을 사용하는가?#
동전을 10번 던져 앞면(H)이 7번, 뒷면(T)이 3번 나왔습니다. 이 동전의 앞면 확률 를 추정하고 싶습니다.
우도(Likelihood):
이 를 최대화하는 를 찾는 것이 최대 우도 추정(MLE) 입니다.
문제: 확률의 곱은 숫자가 매우 작아집니다 (예: ). 더 많은 데이터가 있으면 컴퓨터가 처리할 수 없을 정도로 작아집니다.
해결책 — 로그 변환:
로그의 성질로 곱 → 합으로 바뀌어 계산이 안정됩니다.
미분해서 최솟값 찾기:
결론: MLE로 추정한 확률은 관측 빈도()와 일치합니다.
네거티브 로그 손실 (Negative Log-Loss)#
분류 모델에서 손실 함수로 로그 손실을 쓸 때 음의 부호를 붙입니다:
이유:
- 일 때 → 로그 손실은 음수
- 음수를 붙여 양수로 만들고 최소화
최소화 = 원래 우도 최대화와 동일합니다.
편미분 (Partial Derivative)#
접선 평면으로의 확장#
1변수 함수의 미분 → 접선(tangent line)
2변수 함수의 미분 → 접선 평면(tangent plane)
변수가 여러 개인 함수에서 미분하려면, 하나의 변수에 대해 미분할 때 나머지는 상수로 취급합니다. 이것이 편미분입니다.
편미분 계산#
에 대한 편미분 (를 상수 취급):
에 대한 편미분 (를 상수 취급):
표기법: 또는 (라운드 d, partial d)
편미분 예시#
핵심: 에 대해 편미분할 때, 가 포함된 항은 상수처럼 취급합니다. 는 에 대해 상수이므로 미분하면 0.
그래디언트 (Gradient)#
그래디언트 는 모든 편미분을 모아 만든 벡터입니다.
2변수 함수 의 경우:
예시#
에서의 그래디언트:
기하학적 의미: 그래디언트는 함수가 가장 가파르게 증가하는 방향을 가리킵니다. 반대 방향(-그래디언트)이 가장 빠르게 감소하는 방향입니다.
그래디언트로 최솟값 찾기#
해석적 방법 (Analytical Method)#
다변수 함수의 최솟값은 모든 편미분 = 0 인 점에서 발생합니다.
선형 회귀 예시#
데이터 포인트 에 직선 를 피팅할 때:
손실 함수 (MSE):
편미분:
연립방정식 풀기:
이것이 최소제곱법(Least Squares) 의 해석적 해입니다.
실무에서는? 데이터가 많고 파라미터가 많으면 해석적으로 풀기가 어렵습니다. 이때 경사 하강법(Gradient Descent) 을 사용합니다.
핵심 정리#
| 개념 | 설명 |
|---|---|
| 최적화 | 함수의 최솟값/최댓값을 찾는 과정 |
| 전역 최솟값 | 함수 전체에서 가장 낮은 점 |
| 극솟값 | 주변보다 낮지만 전역 최솟값은 아닌 점 |
| 제곱 손실 | , 최솟값 = 평균 |
| 로그 손실 | , 확률 추정에 사용 |
| 편미분 | 한 변수로만 미분, 나머지는 상수 취급 |
| 그래디언트 | 모든 편미분을 모은 벡터, 최대 상승 방향 |
| 최솟값 조건 |
퀴즈#
Q1. 의 를 구하세요.
정답 보기
를 상수 취급:
Q2. 의 그래디언트 를 구하세요.
정답 보기
Q3. 손실 함수 를 최소화하는 는?
정답 보기
3, 7, 5의 평균입니다. 제곱 손실의 최솟값은 항상 평균임을 확인할 수 있습니다.
Q4. 다음 중 그래디언트에 대해 옳은 것은?
- 그래디언트는 스칼라 값이다
- 그래디언트는 함수가 가장 가파르게 감소하는 방향을 가리킨다
- 그래디언트가 인 점은 극솟값 또는 극댓값 후보이다
- 그래디언트는 항상 양수 방향이다
정답 보기
3번
- 1번 ❌: 그래디언트는 벡터 (편미분의 모음)
- 2번 ❌: 그래디언트는 증가 방향, -그래디언트가 감소 방향
- 3번 ✅: 이면 극값(극솟값, 극댓값, 안장점) 후보
- 4번 ❌: 그래디언트는 방향 벡터이며 음수 성분도 가능
다음 글에서는 경사 하강법(Gradient Descent) — 그래디언트를 이용해 반복적으로 최솟값을 찾아가는 알고리즘을 다룰 예정입니다.
관련 포스트
선형대수 실무 개념 과제: ML 현장에서 마주치는 문제들
행렬 특이성, 랭크, 고유값, PCA 등 선형대수 개념을 머신러닝 실무 시나리오에 적용하는 개념 과제 모음입니다. 각 문제는 실제 ML 파이프라인에서 자주 마주치는 상황을 기반으로 합니다.
선형대수 코딩 과제: NumPy로 구현하는 행렬 연산
NumPy를 사용해 행렬 연산, 가우스 소거법, 고유값 분해, PCA를 직접 구현해보는 코딩 과제입니다. 각 문제에 단계별 힌트와 전체 풀이 코드가 포함되어 있습니다.
고유값·고유벡터와 PCA: 선형대수 기초 4장
행렬식의 기하학적 의미, 기저와 생성, 고유값·고유벡터 계산, 차원 축소(PCA)의 작동 원리와 수식, 마르코프 행렬까지 선형대수 핵심을 완결합니다.