Update — weight를 아주 조금만 고쳐요 ★★★
gradient를 구했으면 그 반대 방향으로 weight를 움직여요. 이 방법을 경사 하강법(gradient descent)이라고 해요. 식은 한 줄이에요.
새 w = 지금 w − (학습률 lr) × (gradient). 코드로 쓰면 w ← w − lr × dLoss/dw예요. 학습률(learning rate, lr)은 "한 번에 얼마나 크게 움직일지"를 정하는 작은 숫자예요.
왜 마이너스일까요? gradient가 음수이면 weight를 늘려야 loss가 줄어요. "음수에 마이너스를 곱하면 양수"라서 식이 자동으로 늘리는 쪽으로 움직여요. gradient가 양수이면 반대로 줄어요.
| 경우 | 계산 | 결과 |
|---|---|---|
| 교수님 예시 w=0.7, gradient=−2, lr=1 | 0.7 − 1×(−2) = 0.7 + 2 | 2.7 (너무 많이 움직여요) |
| lr을 작게 w=0.7, gradient=−2, lr=0.1 | 0.7 − 0.1×(−2) = 0.7 + 0.2 | 0.9 (조금만 이동) |
| gradient가 양수 w=0.7, gradient=+2, lr=0.1 | 0.7 − 0.1×2 = 0.7 − 0.2 | 0.5 (줄어요) |
교수님은 "학습률도 중요한 포인트"라고 했어요. lr이 너무 크면 한 번에 바닥을 훌쩍 지나쳐 버리기 때문이에요. 그래서 보통 아주 작은 값을 써서 조금씩, 대신 많이 반복해요. 자료 기준으로 51개 weight는 한꺼번에 동시에 업데이트돼요.
gradient가 +면 w는 ↓, gradient가 −면 w는 ↑이에요. "기울기와 반대로 간다"라고 외우세요.
weight는 w ← w − lr × gradient로 갱신하며, 학습률 lr은 한 번에 움직이는 크기를 조절한다. gradient 반대 방향으로 움직이므로 gradient가 음수인 weight는 증가한다.
잠깐 확인 — w=1.0, gradient=4, lr=0.1이면 새 w는?
1.0 − 0.1×4 = 1.0 − 0.4 = 0.6이에요.
자료: 4주차 · 딥러닝 모델 Training 과정.pdf, Week04 Autograd_Loss_Optimizer.ipynb · 빅데이터04(4주차) 녹취, 빅데이터03·07 녹취 일부