[Learning Rate] Optimize 학습률 설명

Meosun·2024년 8월 21일
0

Learning Rate?

일반적으로 Optimizer들은 Learning Rate들을 설정해야한다.
하지만 너무 높거나 낮게 설정하면 Model 학습에 문제가 생긴다.

  • High LR(높은 학습률) : Loss가 급증하며, 수렴이 잘안된다.
  • Low LR(낮은 학습률) : Loss는 줄어들지만, 수렴 속도가 느리다.

이처럼 Learning Rate를 설정하는 부분은 쉽지않은데, 일반적으로는 Engineer의 경험에따라 설정하게 된다.

그렇지만 조금 더 효율적으로 설정할 수 있는 방법 론이 있는데, Learning Rate Decay라는 방법이다.

Learning Rate Decay?

Learning Rate Decay는 초기에는 LR을 높이다가, 천천히 줄어드게 만드는 방법론이다.

Low LR 설정 -> LR 증가 -> LR 감소-> LR 감소 로도 진행가능 (Initial WarmUp - Linear)

이 방법에는 여러가지가 있는데,
간단하게 정렬 하자면 4가지 방법론이 있다.

1. Step

특정 Epoch 기준으로 LR를 감소시키는 방법론이다.

LR 감소 기준 및 Epoch 감소 위치 설정은 개인의 경험으로 설정하면 된다.
하지만 그만큼 조정해야할 HyperParameter가 증가하게되어, 경우의 수가 증가하게 된다.

2. Cosine

LRt(LearningRate(T))=12LR0(1+cos(epochtπn_epochs))LR_t(Learning Rate(T)) = \frac 1 2 LR_0(1+cos(\frac {epoch_{t}\pi} {n\_epochs}))

초기 설정한 LR에서 Epoch 마다 Cos 연산을 통해 LR을 업데이트하는 방법이다.

전체적인 흐름이 부드럽게 움직이기때문에 많이 사용한다.

3. Linear

LRt=LR0(1epochtn_epochs)LR_t = LR_0(1-\frac {epoch_{t}} {n\_epochs})

Linear Decay는 선형적으로 LR을 업데이트하는 방법으로, 수식은 위처럼 간단하게 표현 가능하다.

4. Inverse SQRT

LRt=LR0epochtLR_t = \frac {LR_0} {\sqrt {epoch_t}}

마지막으로 Inverse SQRT Decay인데
흐름은 Cos Decay와 유사하지만, epoch의 역제곱근으로 곱해지는 방법이다.
하지만 시간이 지날수록 Cos Decay보다 LR이 빠르게 감소하므로, 실제로 Cos Decay가 조금 더 잘 수렴할 수 있을 것으로 보입니다.

profile
데이터와 AI를 잘 활용하는 Backend Developer가 되자

0개의 댓글