Papers with Code - Cosine Annealing Explained
learning rate의 개념은 optimization에서 나온다
loss function / objective function을 optimizing 할 때 gradient descent 기반 optimization algorithm을 적용하는 경우 learning rate ( 학습률 ) $\eta$ 를 하나의 고정된 값으로 사용하지 않고, 학습 반복이 진행됨에 따라 정해놓은 규칙 / schedule대로 학습률을 늘리거나 줄이는 전략을 learning rate schedule / learning rate scheduler라고 한다.
SGD방식의 업데이트 식
$$ \bold{W} \leftarrow \bold{W}-\eta \frac{\partial L}{\partial \bold{W}} $$
이 식을 따라 gradient descent의 weight update가 진행될 때 고정된 learning rate를 사용하면
그래서 효율적인 방식으로 local minimum은 피하면서 global minimum에 수렴하는 방법은
⇒ 학습 초기 큰 learning rate로 시작해 epoch가 진행됨에 따라 점차 줄여나가는 것.( decaying learning rate )
fixed learning rate보다 decaying learning rate가 일반적으로 더 최적점을 잘 찾아나갈 수 있다는 것이 알려져 있다.
나는 이 방식의 learning rate scheduling을 최근에 많이 사용하였다.
특히 transformer의 학습 예제 코드들을 보면 이 lr scheduler를 사용한 것을 볼 수 있다.
transformers.get_cosine_schedule_with_warmup