시험공부빅데이터분석
← 보드손실 함수와 옵티마이저 · 5/7

학습률(learning rate) — 한 걸음의 크기 ★★

학습률(lr, η)은 기울기를 얼마나 크게 반영해서 파라미터를 고칠지 정하는 값이에요. 식 w ← w − lr × 기울기에서 lr이 클수록 한 번에 크게 움직여요.

비유 — 내려오는 보폭

골짜기로 내려가는데 보폭이 너무 작으면 해가 질 때까지 못 내려가고, 너무 크면 골짜기를 뛰어넘어서 반대쪽 더 높은 곳에 떨어져요. 적당한 보폭이 필요해요.

7-4의 같은 문제(weight 1, 입력 2, 정답 4)를 학습률만 바꿔서 한 번 업데이트하면 이렇게 돼요. 기울기는 모두 −8이에요. 직접 실행해서 확인한 값이에요.

lr새 weight (1 − lr × (−8))새 loss결과
0.011.08약 3.39너무 작아요. 거의 안 줄어요
0.11.80.16적당해요
0.253.04.0정답(2)을 지나쳐 제자리예요
0.55.036.0오히려 훨씬 커졌어요

정답 weight는 2예요(2 × 2 = 4). lr = 0.1이면 반복할수록 1.8 → 1.96 → 1.992 → 1.998 → 2.0으로 정답에 다가가요. 반면 lr = 0.5이면 5 → −7 → 29 → −79 → 245로 점점 더 크게 튀어서 학습이 망가져요. 이것을 발산이라고 해요. 이렇게 커지다 보면 loss가 NaN이나 Inf(무한대)로 나오기도 해요.

반대로 lr = 0이면 아무리 step을 해도 weight가 바뀌지 않아요. 교수님 자료의 오류 점검표에도 parameter가 안 변하는 원인으로 step() 누락, optimizer에 파라미터 미등록, lr=0, 기울기 0이 나와요.

증상원인
weight가 안 변해요step()을 안 불렀어요 / 옵티마이저에 파라미터를 안 넣었어요 / lr = 0 / 기울기가 0이에요
loss가 NaN 또는 Inflr이 너무 커요 / 입력값이 이상해요 / 0으로 나눴어요
loss가 안 줄어요lr, 데이터, 학습 순서를 점검해요
이렇게 고르세요 (풀이 요령)

학습률 문제는 "너무 크면 발산, 너무 작으면 느림" 한 문장으로 풀려요. 또 "학습 후 weight가 안 변했다"는 상황은 step 누락, lr=0, 파라미터 미등록 중에서 골라요.

잠깐 확인 — 학습률을 너무 크게 하면 loss는 어떻게 될까요?

줄어들지 않고 오히려 커지거나 NaN이 될 수 있어요. 한 걸음이 너무 커서 정답을 지나쳐 반대쪽으로 더 멀리 가기 때문이에요.

다음 카드 → 손으로 연습하기 — 점수 계산과 한 번의 업데이트

자료: 6·7주차 · Week04_Autograd_Loss_Optimizer · 7주차 녹취(빅데이터07)