주요 구성 요소
search space (입력값 범위)
- 여러개의 입력 변수들과 이들 값의 범위를 지정한다.
- hp.quniform(label, low, high, q): label로 지정된 입력 값 변수 검색 공간을 최소값 low에서 최대값 high까지 q의 간격을 가지고 설정한다.
- hp.uniform(label, low, high): 최소값 low에서 최대값 high까지 정규 분포 형태의 검색 공간을 설정한다.
- hp.randint(label, upper): 0부터 최대값 upper까지 random한 정수 값으로 검색 공간을 설정한다.
- hp.loguniform(label, low, high): exp(uniform(low, high))값을 반환한다. 반환 값의 log변환된 값은 정규 분포의 형태를 가지는 검색 공간을 설정한다.
목적 함수
search space를 입력 받아 로직에 따라 loss값을 계산하고 이를 반환하는 함수이다.
반드시 dictionary형태의 값을 반환하고 여기에 'loss': loss값이 기재되어야 한다.
목적 함수의 최소값을 찾는 함수
- 목적 함수를 실행하여 최소 반환값(loss)을 최적으로 찾아내는 함수이다.
- Bayesian최적화 기법으로 입력 변수들의 search space상에서 정해진 횟수만큼 입력 변수들을 입력하여 목적 함수의 반환 값(loss)을 최적으로 찾아낸다.
- hypeeropt는 이를 위해 fmin()함수를 제공한다.
- fmin()함수의 인자로 목적함수, search space, 베이지안 최적화 기법 유형, 최적화 시도 횟수, 최적화 로그 기록 객체를 인자로 넣어준다. best = fmin(objective, space=hp.uniform('x', -10, 10), algo=tpe.suggest, maxevals=100, trials=trials)
