← AI 놀이터 홈으로

⛷️ 경사하강법 (Gradient Descent)

인공지능의 '학습'이란, 오차(손실)가 가장 작아지는 골짜기 바닥을 한 걸음씩 찾아 내려가는 것이에요.

📖 따라하기 가이드 — 1 / 6 단계

Step 1. 화면 읽는 법

파란 곡선은 손실(오차) 함수예요 — 가로축은 우리가 고칠 수 있는 값(가중치 w), 세로축은 그 값을 썼을 때의 오차. 빨간 공이 지금의 w입니다. 인공지능의 목표는 공을 골짜기 맨 바닥(오차 최소)으로 보내는 것!
🎯 미션: 👣 한 걸음 버튼을 눌러 공을 움직여 보세요

골짜기가 하나뿐이라 어디서 출발해도 같은 바닥에 도착해요.

🎛️ 조절해 보세요

📊 지금 상태

현재 위치 w
-3.000
손실 L(w)
15.400
기울기
-7.200
걸음 수
0걸음

공은 항상 기울기의 반대 방향으로 움직여요:
새 w = w − 학습률 × 기울기

🧪 이렇게 실험해 보세요

  1. 학습률 0.05로 자동 실행 → 천천히, 하지만 확실히 내려가요
  2. 학습률 0.9 → 골짜기 양쪽을 겅중겅중 뛰어다녀요
  3. 학습률 1.3 → 💥 발산!
  4. 울퉁불퉁 골짜기에서 시작 위치를 바꿔 보세요 — 어느 골짜기에 도착하나요?

🧮 수식과 파이썬

w ← w − η · dL/dw
η(에타)가 학습률이에요. 기울기가 0이 되는 곳(골짜기 바닥)에서 멈춥니다.
🐍 파이썬 코드로 보면? (펼치기)
# 경사하강법 — 파이썬 10줄이면 충분해요
def loss(w):                       # 밥그릇 모양 손실 함수
    return 0.9 * (w - 1) ** 2 + 1

def gradient(w, h=1e-4):           # 수치 미분으로 기울기 계산
    return (loss(w + h) - loss(w - h)) / (2 * h)

w = -3.0                           # 시작 위치
lr = 0.1                           # 학습률 (한 걸음의 보폭)
for step in range(30):
    w = w - lr * gradient(w)       # 기울기 반대 방향으로 한 걸음!
    print(f"{step:2d}걸음  w={w:6.3f}  손실={loss(w):6.3f}")