728x90
Learning Rate Scheduler란?
- 처음부터 끝까지 같은 learning rate(ex) 0.001)를 사용할 수도 있지만, 학습과정에서 미리 정의된 schedule에 따라 learning rate를 조정하는 learning rate scheduler를 사용할 수도 있다.
- 처음엔 큰 learning rate(보폭)으로 빠르게 optimize를 하고 최적값에 가까워질수록 learning rate(보폭)를 줄여 미세조정을 하는 것이 학습이 잘된다고 알려져있다.
- learning rate을 줄이는 보편적인 schedule 방식에는 시간에 따라 줄이는 time-based decay, 특정 epoch마다 줄이는 step decay와 exponential decay , learning rate를 줄였다 늘렸다 하는 방식 등이 있다.
- PyTorch에서는 기본적으로 다양한 learning rate scheduler를 제공하고 있다.
from torch.optim import lr_scheduler
1. LamdaLR
- Epoch에 따른 가중치로 lr 를 점점 감소 시키는 Scheduler
optimizer = torch.optim.SGD(model.parameters(), lr=100)
lambda1 = lambda epoch: 0.65 ** epoch
scheduler = lr_scheduler.LambdaLR(optimizer, lr_lambda=lambda1)
2. MultiplicativeLR
- 이전 Epoch에 따른 가중치로 lr 를 감소시키는 Scheduler
scheduler = lr_scheduler.MultiplicativeLR(optimizer, lr_lambda=lmbda)
3. StepLR
특정 Step에 따라 lr 를 감소시키는 Scheduler
(작성중)
Reference
https://dacon.io/codeshare/2373
반응형