에듀테크 프로젝트 대시보드
경사 하강법 (Gradient Descent)
안개가 자욱한 산에서 가장 낮은 골짜기를 찾아야 한다. 앞은 안 보이고, 발밑의 기울기만 느낄 수 있다.
그러면 방법은 하나다 — 지금 서 있는 곳에서 가장 가파르게 내려가는 방향으로 한 걸음 옮기고,
다시 기울기를 재고, 또 한 걸음. 이게 경사 하강법이다. AI 모델 학습은 결국 "예측이 얼마나 틀렸는지"를 나타내는
손실 함수(loss) 라는 골짜기에서, 파라미터를 조금씩 움직여 가장 낮은 지점을 찾아가는 과정이다.
한 걸음의 크기를 정하는 값이 학습률(learning rate, η) 인데, 너무 작으면 한없이 느리고
너무 크면 골짜기를 튕겨 나가 버린다.
# f(x) = x⁴/4 − x³/3 − x² + 2 (위 시뮬레이터의 손실 곡선) def f(x): return x**4/4 - x**3/3 - x**2 + 2 def grad(x): return x**3 - x**2 - 2*x # f'(x) x = -0.5 # 시작 위치 (초기 파라미터) eta = 0.1 # 학습률 η for step in range(100): g = grad(x) x = x - eta * g # ★ 핵심 한 줄: 기울기 반대 방향으로 이동 if abs(g) < 1e-4: # 기울기가 거의 0 = 바닥 도착 break # 파라미터가 여러 개면 x 대신 벡터 w, grad 대신 편미분 벡터(그래디언트) # w = w - eta * ∇L(w) ← 딥러닝의 학습 루프도 근본은 이것
x 를 왼쪽으로. 기울기가 음수 → x 를 오른쪽으로. 그래서 항상 - η·f'(x).f'(x) 를 손으로 구하기 어려운 복잡한 모델은 역전파(backpropagation) 로 자동 계산한다.
흩어진 점들을 가장 잘 지나가는 직선 y = w·x + b 를 찾는다.
손실은 평균제곱오차(MSE), 즉 각 점과 직선 사이 세로 거리를 제곱해 평균한 값.
w, b 두 개의 기울기를 따라 직선이 스스로 돌아가 자리를 잡는다.
| 상황 | 증상 | 대처 |
|---|---|---|
| η 너무 작음 | 수백·수천 걸음을 걸어도 바닥 근처에도 못 감 (학습이 안 끝남) | η 키우기 / 스케줄링 |
| η 적당함 | 몇 걸음 만에 손실이 매끄럽게 감소해 최솟값에 안착 | 그대로 |
| η 너무 큼 | 골짜기를 가로질러 반대편으로 튕김 → 손실이 진동하거나 발산(NaN) | η 줄이기 |
| 지역 최솟값 / 안장점 | 더 낮은 골짜기가 있는데 얕은 웅덩이에 갇힘, 기울기 0이라 멈춤 | 모멘텀·Adam, 여러 시작점 |
| 특성 스케일 제각각 | 어떤 축은 가파르고 어떤 축은 완만해 지그재그로 느리게 감 | 정규화(스케일링) |