학습 정리/Level 2

8주차 메모 num_warmup_steps

uvumbu 2024. 10. 12. 23:54

 

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는 학습 초기에 학습률이 천천히 증가하도록 하여, 학습 안정성을 높이고 최적화가 올바른 방향으로 수렴하도록 도와준다. 이를 통해 학습의 초기 불안정성을 줄이고, 더 안정적이고 효율적인 학습을 가능하게 한다.