C.W.K.
Stream
Lesson 03 of 06 · published

Gradient Descent: Loss landscape 굴러내리기

~10 min · gradient-descent, optimization, learning-rate

Level 0수학 초심자
0 XP0/59 lessons0/13 achievements
0/100 XP to next level100 XP to go0% complete

언덕 오르기 비유

Loss 를 풍경으로 상상 — 고도 = 오차인 언덕 지형. 가장 낮은 골짜기 (최소 loss) 원함. 전체 풍경 못 보지만 발 아래 기울기는 느낌. Gradient descent = steepest descent 방향으로 한 걸음. Flat 까지 반복.

수학적: . Gradient = steepest ascent 방향; 부호 뒤집어 descent. (학습률) = step size.

세 실패 모드

  • 학습률 너무 작음 → 기어가, 영원, 수렴 안 할 수.
  • 학습률 너무 큼 → 골짜기 overshoot, 진동, 무한대 발산 가능.
  • 나쁜 초기화 → flat 영역 (gradient ≈ 0) 또는 saddle point 시작, 안 움직임.

이래서 "학습률 튜닝" 이 실전 딥러닝의 대부분. 답이 엄청 중요하고 default 인 경우 드뭄.

만날 변형

  • SGD — 미니배치의 vanilla gradient descent. 단순, 종종 놀랄 만큼 경쟁력.
  • Momentum — 과거 gradient 누적해 작은 bump 통과.
  • Adam — momentum + 파라미터별 학습률. 모던 학습의 default.
  • 스케줄 — 빠르게 시작, 골짜기 가까워질수록 느리게. Cosine, warmup 흔함.
Gradient descent = 엔진. Loss = 지형. 학습률 = step size. ML 엔지니어링의 대부분 = 이 엔진이 특정 지형 navigate 하도록 가르치기.

Code

1-D 그릇 위 gradient descent·python
import numpy as np

# f(w) = (w - 3)^2 최소화 — w=3 에 최소 있는 그릇
def f(w):  return (w - 3) ** 2
def df(w): return 2 * (w - 3)

w = -5.0          # 최소에서 멀리 시작
lr = 0.1          # 학습률

for step in range(50):
    w -= lr * df(w)
    if step % 10 == 0:
        print(f"step {step}: w = {w:.4f}, loss = {f(w):.4f}")
print(f"최종: w = {w:.4f}")    # ~3.0

External links

Exercise

lr = 0.5, lr = 1.1, lr = 0.001 로 gradient descent 실행. 각각 뭐 일어날지 예측. 수렴, 진동, 발산, 기어감 관찰.
Hint
lr=0.5: 빨리 수렴. lr=1.1: 발산 (overshoot 후 증폭). lr=0.001: 기어감 — 훨씬 많은 iter 필요. 'sweet spot' = loss landscape 따라.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.