8주차 메모 num_warmup_steps
1. num_warmup_steps의 존재 이유
- 모델이 적응할 수 있는 시간을 주기 위해
- 모델이 학습을 시작할 떄 너무 급격하게 변화하지 않도록 도와줌
초기 학습
-모델 학습 초기에는 가중치가 무작위로 초기화되어 있기 떄문에, 가중치 변화에 매우 민감하게 반응한다.
-이때 학습률이 너무 크면 가중치가 급격하게 변동하여 학습이 불안정해질 수 있다.
가중치의 극격한 변화
-초기 학습에서 학습률이 너무 높으면, 가중치가 지나치게 크게 변동해 최적화 불안정
-학습 불안정하면 손실이 급격히 변하거나 발산하는 현상 발생 가능
해결법
-warmup 단계에서 학습률이 0에서 시작하여 점차적으로 증가
-이를 통해 모델이 천천히 학습을 시작하여, 학습률에 적응할 수 있는 시간을 줌
-예시
- 학습 초기 학습률 = 0.001이면 바로 적용하지 않고, 처음 num_warmup_steps 동안 학흡률을 0에서 0.001까지 점차적으로 증가시켜, 모델이 학습률에 서서히 적응할 수 있도록 함
2 . 최적의 학습 방향으로 수렴
학습 초기에 학습률이 크면, 가중치가 급격히 변하면서 최적화가 최적 방향으로 수렴하지 못하고 발산할 가능성이 있음. 이를 오버슈팅 문제라고 함
오버슈팅 문제:
- 학습률이 높으면 모델이 최적화 과정에서 최적점을 지나치거나 잘못된 방향으로 수렴할 가능성이 높아짐
- 모델의 초기 단계에서는 학습이 급격하게 일어나면 최적의 학습 경로를 벗어나는 경우가 많음
Warmup을 통한 해결:
- warmup 단계에서 학습률을 천천히 증가시키면, 모델이 점진적으로 최적화 방향을 찾으면서 안정적으로 수렴할 수 있음
- 예를 들면 0에서 10스텝 동안 학습률이 조금씩 증가하면, 모델이 초기 최적화를 통해 손실 함수의 경향을 이해하고, 안정적인 방향으로 수렴하게 됨
3. 초기 학습률 설정의 어려움 해소
초기 학습률을 설정할 떄 적절한 값을 찾는 것이 매우 어려움. 특히 너무 낮은 학습률로 시작하면 학습이 느려지고, 높은 학습률로 시작하면 학습이 불안정해진다.
학습률 설정의 어려움:
- 초기 학습률을 어떻게 설정하느냐에 따라 학습의 속도와 성능이 크게 달라질 수 있음
- 많은 경우, 최적의 초기 학습률을 찾기 위해 여러 번의 실험이 필요함
Warmup을 사용한 학습률 스케줄링:
- warmup을 사용하면 초기 학습률을 설정하는 데 어려움이 줄어듬
- 학습률이 점차적으로 증가하면서 모델이 적응할 수 있는 충분한 시간을 제공하고, 이후 단계에서는 설정한 학습률로 안정적인 학습을 수행할 수 있음
4. Gradient Clipping과의 조합
warmup은 gradient clipping과도 잘 맞는 전략이다. 학습 초기에 warmup 단계가 없다면, 큰 학습률로 인해 그라디언트 폭발(gradient explosion)이 발생할 수 있다.
Gradient Clipping:
- 학습 도중에 그라디언트가 너무 크면 그라디언트를 제한하여 가중치가 지나치게 급격하게 변하지 않도록 하는 전략입니다.
- Warmuo과 Gradient Clipping의 조합:
- warmup단계에서 학습률을 천천히 증가시키면, 그래디언트의 변화도 점진적으로 이루어져 Gradient Clipping의 필요성을 줄일 수 있음
- 따라서 warmup은 초기 학습에서 그래디언트 폭발을 방지하고 학습의 안정성을 높이는데 도움을 줌
5. Fine-Tuning(미세 조정)과 Transfer Learning(전이학습)에서의 효과
warmup은 특히 사전 학습된 모델을 미세조정하거나 전이학습을 수행할 떄 유용
사전 학습된 모델의 파인튜닝
- 이미 학습된 모델의 가중치는 특정 데이터셋에 맞춰져 있다.
- 만약 초기 학습률이 높다면, 기존에 잘 학습된 가중치가 급격히 변동되어 사전 학습된 지식이 망가질 수 있다.
Warmup을 사용한 미세 조정
- warmup 을 사용하면, 학습 초기에 가중치를 천천히 조정할 수 있음
- 이를 통해 기존의 지식을 서서히 업데이트하며, 더 안정적이고 빠른 수렴을 유도할 수 있음
6. 결론
num_warmup_steps는 학습 초기에 학습률이 천천히 증가하도록 하여, 학습 안정성을 높이고 최적화가 올바른 방향으로 수렴하도록 도와준다. 이를 통해 학습의 초기 불안정성을 줄이고, 더 안정적이고 효율적인 학습을 가능하게 한다.