인공지능의 '학습'이란, 오차(손실)가 가장 작아지는 골짜기 바닥을 한 걸음씩 찾아 내려가는 것이에요.
골짜기가 하나뿐이라 어디서 출발해도 같은 바닥에 도착해요.
공은 항상 기울기의 반대 방향으로 움직여요:새 w = w − 학습률 × 기울기
# 경사하강법 — 파이썬 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}")