들어가며
신경망의 효율을 높이는 방안으로 학습률을 조정하는 것은 꽤 좋은 선택이 될 것이다
학습률이 너무 크면 훈련이 발산하고 너무 작으면 시간이 오래 걸린다
일반적으로 적절한 학습률을 선택할 때는 학습 곡선을 통해 작은 값부터 큰 값까지 보고 선택한다
하지만 일정한 학습률보다 큰 학습률에서 시작해서 학습 속도가 느려질 때 학습률을 낮추는 것이
고정된 학습률보다 좋은 솔루션을 더 빨리 발견할 수 있다 이 전략을 학습률 스케줄링이라고 부른다
아래에서 널리 사용되는 학습률 스케줄링 방식 5가지를 알아볼 것이다
거듭제곱 기반 스케줄링
거듭제곱 기반 스케줄링은 학습률을 반복 횟수 t에 대한 함수로 정의된다

s는 사용자가 지정하는 감소 기준 정도(epoch 단위)로 고정된 값이다
t는 현재 학습 진행 정도(epoch 단위)를 의미한다
c는 거듭제곱 지수로 일반적으로 1을 사용한다
그 다음은 η0/4로, η0 /5로 줄어들게 되는 식이다
상대적으로 처음에는 빠르게 감소하다가 시간이 지날수록 줄어드는 속도가 느려지는 구조이다
지수 기반 스케줄링
지수 기반 스케줄링은 학습률을 다음과 같이 정의한다

γ는 감소율을 의미하고 s와 t는 이전과 같은 의미이다
예를 들어 γ가 0.1이면 s번의 epoch 반복마다 학습률이 10배씩 감소하는 것이다
구간별 고정 스케줄링
구간별 고정 스케줄링은 일정 횟수의 에포크 동안 일정한 학습률을 사용하고
또 다른 횟수의 에포크 동안은 줄어든 학습률을 사용하는 방식이다
예를 들어 5에포크 동안은 학습률을 0.1로 두고
이후 50에포크 동안은 0.001로 두어 진행시키는 구조이다

식은 위와 같고 지수 기반 스케줄링에서 지수 부분에 내림기호를 추가하여
해당 구간동안 같은 학습률을 유지하도록 계단식으로 두는 것이 차이점이다
성능 기반 스케줄링
성능 기반 스케줄링은 N 번의 스텝마다 검증 오차를 측정하고
오차가 줄어들지 않으면 γ배만큼 학습률을 감소시키는 방법이다

식은 간단히 위와 같은 형태이고 구현 시에는 patience라는 매개변수 값을 설정하여
그 값만큼동안 손실이 향상되지 않으면 학습률에 γ를 곱하여 적용된다
1사이클 스케줄링
1사이클 스케줄링은 훈련 절반 동안 초기 학습률에서 최대 학습률까지 학습률을 증가시켰다가
나머지 절반 동안 학습률을 낮추는 방식이다
최대 학습률은 일반적으로 좋은 학습률을 찾는 과정을 통해 찾고
초기 학습률을 10배 정도 낮게 설정한다

초기 학습률에서 최대 학습률까지 step 진행에 따라 일정하게 올라가고
최대 학습률에서 최소 학습률까지 내려간다 이 때 최소 학습률은 초기 학습률보다 작아질 수도 있다
일반적으로 이 방식이 위의 다른 방식들보다 더 좋은 성능을 나타낸다
초반에는 큰 학습률로 local minimum같은 나쁜 해를 벗어나 탐색 공간을 넓힐 수 있고
후반에는 작은 학습률로 안정적으로 좋은 해에 수렴하도록 만들기 때문이다
마치며
이번 글에서는 학습 과정에서 학습률에 변화를 주는 학습률 스케줄링에 대해 알아보았다
앞선 글에서 다뤘던 가중치 초기화 방식이나 활성화 함수, 최적화 방식들 뿐만 아니라
적절한 학습률 스케줄링 방식 선택도 모델 성능에 굉장히 중요한 역할을 한다는 것을 알게되었다
개인적으로는 1사이클 스케줄링이 가장 특이한 형태였고, 스케줄링 방식 아이디어가 굉장히 참신한 것 같다
다음 글에서는 신경망에 규제를 사용하여 과대적합을 피하는 방법에 대해 알아보겠다
'AI > Deep Learning' 카테고리의 다른 글
| [DL] 자연어처리 기초와 RNN (0) | 2026.07.30 |
|---|---|
| [DL] 신경망 규제 (1) | 2026.07.14 |
| [DL] 고속 옵티마이저 (0) | 2026.07.12 |
| [DL] 배치 정규화(batch normalization) (0) | 2026.07.11 |
| [DL] 그레디언트 소실 문제 해결을 위한 가중치 초기화 방식들과 여러 활성화 함수 (0) | 2026.07.09 |
