Ch.6 미적분 — AI가 스스로 배우는 원리

경사하강법 — 골짜기 찾기

경사하강법(Gradient Descent)의 작동 원리를 이해한다학습률(Learning Rate)이 수렴에 미치는 영향을 설명한다Python으로 경사하강법을 구현하여 최적 파라미터를 찾는다

눈을 감고 산에서 가장 낮은 골짜기를 찾아라

앞이 안 보이는 상태에서 발밑의 경사만 느끼며 내려갑니다. 경사가 가파르면 큰 걸음으로, 완만하면 조심스럽게. 이것이 경사하강법의 비유입니다.

발걸음(학습률)이 너무 크면? 너무 작으면?

경사하강법 — 기울기 반대 방향으로 파라미터를 조금씩 업데이트하여 손실을 최소화합니다.

lightbulb

핵심 개념

경사하강법

기울기를 따라 최저점을 찾아가는 최적화 알고리즘

학습률

한 번에 파라미터를 얼마나 변경할지 정하는 값


article

핵심 내용

새 파라미터 = 현재 파라미터 - 학습률 × 기울기

w_new = w_old - \eta × \partial L/\partial w

기울기(∂L/∂w)의 반대 방향으로 [[학습률]](η)만큼 이동합니다. 기울기가 음수면 w를 키우고, 양수면 줄입니다.

학습률(η) 선택의 중요성: 너무 크면 → 최적점을 넘어서 발산 (공이 골짜기를 뛰어넘음) 너무 작으면 → 학습이 너무 느림 (공이 거의 안 움직임) 적절하면 → 안정적으로 최적점에 수렴

손실 함수에서 w=0으로 출발해 최적점 w=3을 찾아봅시다

import numpy as np

def loss_function(w):
    return (w - 3) ** 2

def gradient(w):
    return 2 * (w - 3)

# 학습 시작! (w=0에서 출발)
w = 0.0
learning_rate = 0.1

print("=== 경사 하강법 실행 ===\n")
print(f"{"Step":>4s} | {"w":>8s} | {"손실":>10s} | {"기울기":>8s}")
print("-" * 45)

for step in range(15):
    loss = loss_function(w)
    grad = gradient(w)
    print(f"{step:4d} | {w:8.4f} | {loss:10.4f} | {grad:+8.4f}")
    w = w - learning_rate * grad

print(f"\n최종 w = {w:.4f} (목표: 3.0000)")

학습률 선택이 결과를 크게 바꿉니다

학습률(Learning Rate)이 너무 크면 어떤 문제가 발생하나요?

경사하강법에서 '기울기의 반대 방향'으로 이동하는 이유는 손실 함수를 줄이기 위해서이다.

경사하강법 공식 w_new = w_old - lr × gradient에서 lr(학습률)의 일반적인 범위는?

다음 경사하강법 코드의 빈칸을 채우세요. w = w - lr * ___ # 파라미터 업데이트

w = w - lr * ___

학습률이 너무 크면 어떤 현상이 발생하나요?

경사하강법 마스터!

key

핵심 용어

⛰️

경사하강법

기울기를 따라 최저점을 찾아가는 최적화 알고리즘

🎚️

학습률

한 번에 파라미터를 얼마나 변경할지 정하는 값

edit_note

정리 노트

경사하강법 — 골짜기를 찾는 알고리즘

핵심 공식

업데이트 규칙
w_new = w_old − 학습률 × 기울기
이동 방향
기울기의 반대 방향으로 이동하여 손실 최소화

학습률(Learning Rate) 선택

너무 크면
최적점을 넘어서 발산 (공이 골짜기를 뛰어넘음)
너무 작으면
학습이 너무 느림 (공이 거의 안 움직임)
적절한 범위
보통 0.001 ~ 0.1 사이의 작은 양수

학습률 선택이 모델 학습의 성패를 좌우한다

image

시각 자료

다이어그램: py-scene-gradient-descent
check_circle

핵심 정리

  • 1경사하강법: w_new = w_old - lr × gradient
  • 2기울기의 반대 방향으로 이동하여 손실 최소화
  • 3학습률이 너무 크면 발산, 너무 작으면 느림

퀴즈와 인터랙션으로 더 깊이 학습하세요

play_circle인터랙티브 레슨 시작