[TIL] Population Based Training of Neural Networks (2017)

박상우·2023년 1월 6일
0

TIL

목록 보기
3/12
post-thumbnail

모델 성능 개선을 위해 Hyperparameter optimization method를 찾던 중 알게 된 정보

기존 Methods

크게 두 가지로 나뉨

  • Parallel search
    서로 다른 하이퍼파라미터 set을 사용해 동시에 학습하여 가장 좋은 것을 선택

  • Sequential optimization
    기존의 시행착오를 바탕으로 더 좋은 setting을 찾아보고 학습

Parallel search는 많은 컴퓨팅 적 비용이 소요되고, Sequential optimization은 많은 시간이 소요됨

PBT는 parallel search와 sequential optimization을 연결(bridge)하는 기법

Exploitation vs Exploration

Optimization의 대표적인 two strategy

  • Exploitation
    찾은 것 중 Best를 탐구

  • Exploration
    새로운 정보를 지속적으로 탐색

Trade-off 이기에 둘을 적절히 고려해야 함

Bayesian Optimization

Sequential Optimization의 대표적인 방법론

f(x)를 max로 만드는 하이퍼파라미터 x를 찾는 것

함수 f(x)는 미지의 함수이기에 Gaussian Process로 approximate함

성능은 좋으나 시간이 매우 오래 걸리는 단점

Parallel search의 대표적인 방법론
서로 다른 hyperparameter set으로 여러 개의 모델을 돌려서 가장 좋은 것을 찾음

같은 시간 동안 돌렸을 때 bayesian optimization 보다 좋은 성능
그러나 이미 돌려본 것에 대한 정보를 활용하지 못함

PBT (Population Based Training)

과정

  1. 모델을 한번에 몇 개 학습할 것 인지 설정

  2. 각 model마다 hyperparameter set과 weight를 random 설정

  3. 설정한 step 만큼 학습을 진행 후, 기존에 정한 threshold에 도달하면 각 model에 exploit & explore 적용

  4. Exploit

    • 모델의 중간 성능이 좋지 않으면 완전히 대체
      • Binary tournament
        Random 하게 선택한 model 보다 성능이 안 좋을 경우, 그 model로 대체
      • Truncation selection
        모델 성능이 모든 모델 중 하위 20%이면, 상위 20% 모델 중 하나로 Random하게 대체
  5. Explore

    • Exploit이 적용된 모델에 적용
      • Perturb
        특정 factor만큼 곱
      • Resample
        무시하고 다시 뽑기
  6. iter 3~5

특징

  • Model selection과 hyperparameter optimization을 동시에 진행
  • Exploit은 미분 불가능하거나 특이한 평가 metric에도 사용 가능
  • 모든 model은 explore의 benefit을 분배 받음

실험

RL, Machine Translation, GAN 등에서 좋은 성능을 보임

결론

PBT라는 최적화 기법을 제시

  • 유전 알고리즘 기반
  • Parallel search와 sequential optimization의 조합
  • Hyperparameter의 adaptive scheduling을 가능케 함
profile
세상아 덤벼라

0개의 댓글