딥러닝 기초 - Learning Rate, Optimizer

Yujin Jung·2026년 9월 8일

1. Learning Rate

Learning Rate = 학습률

Weight를 한 번 업데이트할 때 얼마나 크게 바꿀지 정하는 값.

기본 개념:

Wnew=Wold−LearningRate×GradientW_{new}=W_{old}-LearningRate \times Gradient

정리:

  • Gradient = Weight를 어느 방향으로 바꿀지 알려줌
  • Learning Rate = 그 방향으로 얼마나 크게 바꿀지 정함

너무 크면:

  • 학습이 불안정
  • 최적값을 지나칠 수 있음

너무 작으면:

  • 학습이 느림

2. Gradient

Gradient = Loss를 줄이기 위해 Weight를 어느 방향으로 바꿔야 하는지 알려주는 미분값

즉 방향과 보폭에서:

Gradient
→ Weight를 어느 방향으로 수정할지

Learning Rate
→ 얼마나 크게 수정할지

3. PyTorch Autograd

autograd = 자동 미분 기능

PyTorch가 순전파 과정의 계산을 기억하고 있다가:

loss.backward()

를 실행하면 각 Weight와 Bias의 Gradient를 자동으로 계산한다.

결과는 각 Parameter의:

param.grad

에 저장된다.

핵심:

autograd 덕분에 미분식을 사람이 직접 계산할 필요가 없다.


4. zero_grad()

optimizer.zero_grad()

역할:

새로운 backward() 전에 이전 Gradient를 초기화

PyTorch는 Gradient를 기본적으로 누적하기 때문에 반드시 주의해야 한다.

이전 Gradient
+
새 Gradient

가 섞이지 않게 하기 위해 사용.

중요 암기:

새로운 backward() 수행 전 zero_grad()로 이전 Gradient를 지운다.


5. 기본 학습 순서

중요 순서:

1. 데이터 입력
2. 순전파
3. 손실 계산
4. Gradient 초기화
5. 역전파
6. Parameter 업데이트

코드로:

optimizer.zero_grad()

prediction = model(x)

loss = criterion(prediction, target)

loss.backward()

optimizer.step()

6. 순전파

prediction = model(x)

현재 Weight와 Bias를 이용해서 Prediction을 계산.

Input
↓
Model
↓
Prediction

7. Loss 계산

loss = criterion(prediction, target)

Prediction과 실제 정답 Target의 차이를 계산.

Prediction
vs
Target
↓
Loss

Loss가 작을수록 예측이 정답에 가까운 것.


8. backward()

loss.backward()

역할:

Loss를 기준으로 각 Parameter의 Gradient를 계산

여기서 PyTorch의 autograd가 자동으로 미분을 수행한다.

Loss
↓
backward()
↓
Gradient 계산

9. optimizer.step()

optimizer.step()

역할:

계산된 Gradient를 이용해서 실제 Weight와 Bias를 수정

즉:

backward()
→ Gradient 계산

optimizer.step()
→ Parameter 실제 업데이트

10. Autograd + Optimizer

둘의 역할을 구분하면:

Autograd
→ 미분 / Gradient 계산

Optimizer
→ Gradient를 이용해 Weight와 Bias 수정

그래서 사람이 직접:

Weight를 얼마나 올릴까?
얼마나 내릴까?
미분값은 얼마지?

를 계산하지 않아도 된다.


전체 학습 과정

Input
 ↓
Forward
 ↓
Prediction
 ↓
Target과 비교
 ↓
Loss
 ↓
zero_grad()
 ↓
backward()
 ↓
Autograd가 Gradient 계산
 ↓
optimizer.step()
 ↓
Weight / Bias 수정
 ↓
다시 Forward

이 과정을 반복하면서 모델이 학습한다.

profile
이것저것 다 해보는 컴퓨터학부 학부생

0개의 댓글