세 기법을 넣은 훈련

웜업, 코사인 감쇠, 클리핑은 한 걸음 안의 어디에 들어갈까요?

한 걸음

동작이 두 개 늘었습니다

8강의 네 동작은 그대로입니다. 맨 앞에 학습률 정하기가, 파라미터를 고치기 바로 앞에 그레이디언트 줄이기가 들어갑니다.

첫 동작

학습률은 걸음 번호로 정합니다

걸음마다 지금이 몇 걸음째인지만 보고 학습률을 계산합니다. 27걸음째까지는 2편의 웜업, 그 뒤로는 3편의 코사인 감쇠입니다.

그래프의 숫자는 2편과 3편의 예제 값입니다.

클리핑을 켜는 때

클리핑은 웜업이 끝난 뒤부터

웜업 동안에는 학습률이 낮아 한 걸음이 이미 작습니다. 그래서 클리핑은 28걸음째부터 켭니다.

켜져 있어도 그레이디언트의 크기가 1 이하인 걸음에서는 아무것도 하지 않습니다.

코드로는

세 줄이 더 들어갑니다

  1. lr = initial_lr + …새로 · 웜업
  2. lr = min_lr + … cos(…)새로 · 감쇠
  3. loss.backward()③ 방향 찾기
  4. clip_grad_norm_(…)새로 · 클리핑
  5. optimizer.step()④ 고치기

코드의 이름은 외우지 않아도 됩니다. 노란 세 줄이 새로 들어갔다는 것만 보세요. 걸음 번호에 따라 위의 두 줄 가운데 하나로 학습률을 정합니다.

lr은 학습률(learning rate)을 줄인 이름이고, 점 세 개는 줄인 부분입니다. 파이토치라는 도구의 코드입니다.

실제 훈련의 숫자

최고 학습률은 0.001로 잡았습니다

2편과 3편의 숫자는 곡선 모양을 보려고 쓴 예제 값입니다. 실제 훈련에서는 최고 학습률을 0.01 대신 0.001로, 처음 학습률을 0.0001 대신 0.00001로 낮춰 잡았습니다.

최저 학습률은 예제와 같은 0.00001입니다. 135걸음, 웜업 27걸음도 그대로입니다.

다음 편

준비가 끝났습니다. 135걸음을 걸어 봅니다

6편135걸음 뒤, 손실은 어디까지? 14강 목록