*협찬
https://m.smartstore.naver.com/digshop

디그샵 : 네이버쇼핑 스마트스토어

반려동물의 모든 것

smartstore.naver.com


* Manual Search

* Grid Search, Random Search : (이전까지의 조사과정에서 얻어진 hyperparamete 값들의 성능 결과에 대한 사전지식이 전혀 반영되어 있지 않음)

 

* Bayesian Optimization : (사전지식을 충분히 반영하면서, 동시에 전체적인 탐색 과정을 체계적으로 수행) 

- 어느 입력값 x를 받는 미지의 목적 함수(objective function) f를 상정하여, 그 함수값 f(x)를 최대로 만드는 최적해 x*를 찾는 것을 목적으로 함

 

* Bayesian Optimization

- Surrogate Model : (x1, f(x1)), ~ , (xn, f(xn)) 을 보면서 미지의 목적 함수 f를 확률적인 추정을 수행하는 모델

- Acquisition Function : 목적 함수에 대한 지금까지의 확률적 추정 결과들을 바탕으로, 목적 함수의 최적 입력값 x*를 찾는데 있어서 가장 유용할 만한 다음 입력값 후보 x(t+1)을 추천해주는 함수

 

* Surrogate Model

- 가장 많이 쓰이는 확률 모델이 Gaussian Process 

 

* Gaussian Process

- 모종의 함수들에 대한 확률 분포

- 그 구성 요소들 간의 joint distribution이 Gaussian Distribution을 따른다.

- 평균 함수 u와 공분산 함수 k를 사용하여 함수들에 대한 확률 분포를 표현

 

* Acquisition Function

- 목적 함수의 최적 입력값 x*를 찾는데 있어서 가장 유용할 만한 것

- exploitation(착취, 수탈) 전략 : 현재까지 조사된 점들 중 함숫값이 최대인 점 근방을 그 다음 차례에 시도하는 것

- exploration(탐색) 전략 : 현재까지 추정된 목적 함수 상에서 표준편차가 최대인 점 근방을 그 다음 차례에 시도하는 것

- 두 전략은 trade-off 관계

- 가장 많이 쓰이는 모델이 Expected Improvement (EI)

- Probability of Improvement (PI) : "현재까지 조사된 점들의 함수값 중 최대 함수값보다 더 큰 함수값을 도출할 확률" 만 반영한 Acquisition Function

- 그 외 Acquisition Function : Upper Confidence Bound(UCB), Entropy Search(ES) 등

 

* 입력값 및 목적함수 정의

- target_fn(rpn_nms_num, rpn_nms_thr, rcnn_score_thr, rcnn_iou_thr) : return hmean

 

* BayesianOptimization 객체 생성

- bayes_optimizer = BayesianOptimization(target_fn, params_dict, random_state=0)

 

* BayesianOptimization 실행

- bayes_optimizer.maximize(init_points= , n_iter= , acq="ei", xi= )

- init_points : 맨 처음에 일부 Random Search 방법으로 조사할 입력값-함수값 점들의 개수

- n_iter : 처음 n개의 입력값-함숫값 점들을 조사한 후, 조사된 입력값-함숫값 점들의 총 갯수가 N개에 도달할 때까지, Bayesian Optimization 방법을 통해 추가로 조사할 입력값-함숫값 점들의 총 개수(N−n)

- acq : bayesian-optimization 라이브러리에서 제공하는 Acquisition Function들 중 어느 것을 사용할지를 명시하는 부분

- xi : exploration-exploitation 간의 상대적 강도를 조절해 주는 파라미터, exploration의 강도를 좀 더 높이기 위해 0.01 정도로 설정해 주는 것이 무난

 

반응형

+ Recent posts