hyperparameter 개념 간단하게

1. hyperparameter와 parameter의 차이?

 

hyperparameter는 학습과정에서 control할 수 있는 parameter value를 의미하고 학습 전에 사람이 직접 설정해줘야함

 

parameter는 모델이 학습과정에서 자동으로 배워나가는 값

 

hyperparameter tuning이란 이러한 learning 알고리즘에서 hyperparameter를 최적화하는 과정임

 

 

2. hyperparameter optimization

 

model system의 매커니즘에 영향을 줄 수 있는 여러 요소들

 

batch_size, learning rate, loss, k-fold, dropout, regularization, optimizer, hidden layer 종류는 많음

 

 

 

hyperparameter가 어떤 것이 좋을지 반복하여 최적을 찾으려고함

 

그러나 hyperparameter는 변경할때마다 새로 학습해야하므로 최적을 찾기에 시간이 매우 많이 소요됨

 

grid search, random search 등이 있고 bayesian optimization을 주로 사용함

 

--------------------------------------------------------------------------------------------------------------------------------------------

 

예시)

hidden layer의 크기는 input,output layer의 크기보다 작아야하나?

 

꼭 그렇지는 않다. hidden layer의 크기는 적절하게 선택해야하는 hyperparameter이다.

 

보통은 연산을 효율적으로 하기 위해서 input보다 작게한다는데 크게하기도 하고 사람마다 다른가봄

 

input의 차원보다 hidden layer의 차원이 더 크다

 

 

--------------------------------------------------------------------------------------------------------------------------------------------------------

 

3. manual search

 

자동화된 tool을 사용하지 않고 손으로 직접 hyperparameter set 설정을 하나하나 바꿔가면서 test해보는 방식

 

 

4. grid search

 

test 가능한 모든 hyperparameter set 하나하나를 전부 test해보면서 어떤 hyperparameter가 성능이 좋은지 기록하는 방식이다

 

사람이 hyperparameter set을 직접 manual하게 설정해두고 거기서 가능한 모든 hyperparameter에 대해 모델 성능을 test해보는 것

 

manual search는 자동화된 도구 없이 찾는거고, grid search는 자동화된 tool로 사람이 설정해둔 범위 내에서 좋은 성능을 가지는 hyperparameter를 찾는 것

 

grid search를 통한 탐색

 

 

X1, X2가 hyperparameter고 초록색이 사람이 설정한 hyperparameter case임

 

예를 들어 각각 X1, X2가 0.1,0.2,..1.0으로 10개씩이면 총 10*10 = 100개의 조합 (X1,X2)에 대해 모두 model 성능을 테스트해보는 것

 

파란색 부분이 성능이 좋게 나온 부분이라고 함

 

test할 hyperparameter가 적으면 좋은 방법일 수 있지만 많아지면 시간이 너무 오래걸려 비효율적임

 

 

5. random search

 

탐색가능한 hyperparameter set을 사람이 설정하는 것이 아니라 랜덤하게 hyperparameter를 가지고와서 model 성능을 test해봄

 

랜덤하게 가지고 오는데 이게 맞는 것인가? 생각할 수 있지만 실제로 grid search보다 좋은 녀석들을 일반적으로 찾는다고 함

 

 

 

6. bayesian optimization

 

요새 대부분의 tool들이 이 방식을 제공함

 

grid search나 random search보다 효과적으로 찾음

 

bayesian optimization은 hyperparameter에서 validation data에 의해 평가되는 objective로 mapping하는 함수의 probabilistic model

 

결과가 불확실한 hyperparameter를 탐색하는 exploration과 optimum에 가까우리라 기대되는 hyperparameter를 찾는 exploitation의 균형을 찾고자함

 

처음에 random하게 hyperparameter를 선택하여 성능을 봄

 

이것을 반복하면서 이전 성능의 history를 통해 이전 성능에서 잘 나온 hyperparameter 영역을 조금 더 집중적으로 탐색함

 

성능이 잘 나오는 구간의 hyperparameter를 탐색하는 방식이라고 할 수 있음

 

오래하면 오래할수록 성능이 잘 나오는 구간을 보고 한번씩은 또 랜덤하게 선택함 그러면서 너무 한쪽으로만 쏠리지않도록 해주는 hyperparameter 탐색 방식

 

 

 

확실히 random search와는 다르게 model 성능이 좋은 부분을 집중적으로 탐색하고 있는 모습

TAGS.

Comments