경사하강법과 학습률(Learning Rate)

30 P
QUESTION 07 #409
경사하강법에서 학습률(Learning Rate)이 너무 크면 발생하는 문제는?
다음 중 옳은 것을 고르세요

경사하강법과 학습률

경사하강법(Gradient Descent)은 산을 내려가듯이 손실의 "낮은 지점"을 찾아가는 방법입니다.

산 내려가기 비유

      ↑ 손실
      |
  높음 |\        /
      | \      /
      |  \    /
      |   \  /
  최저|    \/   ← 우리가 찾는 곳!
      +────────→ w

학습 = 손실이 가장 낮은 w와 b를 찾는 과정

학습률(Learning Rate)이란?

한 번에 얼마나 큰 걸음으로 내려갈지 결정하는 값입니다.

새로운 w = 현재 w - 학습률 × 기울기
            ↑
         얼마나 갈지

학습률에 따른 학습 결과

1. 학습률이 적당할 때 (이상적)

  *
  |\
  | *
  |  *
  |   *  ← 차근차근 최저점에 도착 ✅
  |    *

2. 학습률이 너무 크면 (발산)

  *           *  *  ← 너무 크게 뛰어서
  |\         /|/    최저점을 계속 지나침!
  | \       / |
  |  \     /  |     점점 더 심해짐 ❌
  |   \___/   |

문제: 최적값을 지나쳐 버림 → 학습이 불안정하거나 실패

3. 학습률이 너무 작으면 (느림)

  *
  |·
  |·     ← 한 걸음이 너무 작아서
  | ·
  | ·       너무 오래 걸림
  |  ·
  |  ·

문제: 학습이 너무 느림 → 1만 번 학습해도 끝나지 않음

적절한 학습률 선택

학습률 결과 비유
0.01 (작음) 안전하지만 느림 산을 한 발씩 내려감
0.1 (중간) 적당함 (가장 일반적) 산을 보통 걸음으로
1.0 (큼) 발산 위험 산을 점프로 내려감 (위험!)

실제 학습 과정

# 학습률 = 0.1로 설정
learning_rate = 0.1
w = 0  # 초기값

for i in range(100):  # 100번 반복
    gradient = 손실의_기울기_계산(w)
    w = w - learning_rate * gradient
    print(f"{i}번째: w = {w}")

# 출력:
# 0번째: w = 0.5
# 1번째: w = 0.9
# 2번째: w = 1.4
# ...
# 99번째: w = 3.0  (최적값 도달!)

비유로 정리

학습률 큼:  엘리베이터로 한 번에 내려감 (위험할 수 있음)
학습률 적당: 계단으로 한 걸음씩 안정적으로 내려감
학습률 작음: 한 발씩 느릿느릿 내려감 (시간이 오래 걸림)

실무에서의 조정

  • 시작값: 0.01 또는 0.001로 작게
  • 테스트: 학습이 안 되면 더 크게, 발산하면 더 작게
  • 고급: 학습 진행에 따라 점점 줄이는 "학습률 스케줄링"

💡 핵심: 학습률이 너무 크면 최적값을 지나쳐 학습이 망가지고, 너무 작으면 학습이 너무 느려집니다. 적절한 값을 찾는 것이 핵심입니다.