본문 바로가기

부스트캠프 AI Tech 3기/이론 : U-stage

[Day10] Pytorch 9. Hyperparameter Tuning

하이퍼 파라미터(Hyper Parameter)는 학습시 사람이 지정해주는 값들이다.

learning rate(감쇠율), 모델의 크기, optimizer 이 대표적인 예시이다.

 

성능을 높히기 위해서

1. 모델을 바꾼다

2. 데이터를 바꾸거나 다듬는다

3. 하이퍼파라미터를 조절한다

와 같은 세 가지 방법이 있다.

2번이 대부분의 상황에서 가장 많은 영향을 미친다.

 

Search Layout

  • Grid Layout search
    일정한 범위 내의 값을 모두 시도해보고 가장 나은 성능을 발휘하는 파라미터를 찾는 방법
  • Random Layout search
    값을 random하게 돌려서 그 중 가장 잘 나오는 하이퍼파라이퍼를 찾는다

그래서 random layout 으로 어느정도 잘 나오는 틀이 잡히면 그 범위안에서 grid layout search를 사용했었다. 하지만 최근에는 베이지안 기반 기법(ex. BOHB)들을 주로 사용한다

 

Ray

multi-node multi processing을 지원하는 모듈이다

ml,dl과 강화학습에서 많이 사용한다.

#1
config={"lr" : tune.loguniform(1e-4,1e-1)} 
#외에도 더 많은 파라미터들의 범위를 지정하거나 random하게 돌린다

#2
scheduler=ASHAScheduler( 속성들 )
# loss값이 안 나오는 metric을 자른다

#3
reporter=CLIReporter( 속성들 )
#

#4
result=turn.run( 속성들 ) #실행

#5
best = result.get_best_trail('lr')
# 가장 높은 성능의 모델을 불러온다