치즈의 AI 녹이기

Bayesian Optimization 본문

인공지능 대학원생의 생활/구글링

Bayesian Optimization

개발자 치즈 2022. 8. 5. 14:45

하이퍼파라미터 서치를 위한 Bayesian Optimization 방법에 대해 다룬다. 

 

Bayesian Optimization이란, 미지의 함수가 반환하는 최대/최소 값을 짧은 반복을 통해 찾아내는 최적화 방식이다.

  • 데이터 관측치를 관찰하며 사후확률 분포(Posterior probability)업데이트 
  • surrogate model : 추론한 결과들을 바탕으로 미지의 함수의 값을 추정
  • gaussian process: 추정을 위한 방법
  • acquisition function: surrogate model의 확률 분포를 이용해서 나온 확률분포를 이용해 지금까지 나온 값들보다 더 큰 값이 나올 가능성이 제일 높은 점을 알려주는 함수 (큰 값일수록 최적에서 멀어짐)

EI(x) 분포를 기준으로 높은 값(파란색 동그라미)을 찾아 업데이트

위 그래프에서 회색영역은 미지의 함수가 존재할 신뢰구간이다. 영역이 넓을수록 불확실성이 크다. 

검은색 동그라미는 관측된 데이터를 의미한다. 

빨간색 선은 미지의 함수를 의미하며, 검은색 실선은 검은색 동그라미를 바탕으로 예측한 추정함수의 expectation을 의미한다. 

검은색 실선(예측값)이 빨간색 점선(미지의 함수)와 거의 비슷해지는 것을 목표로 한다. 

 

참고 링크 : https://techblog-history-younghunjo1.tistory.com/141

 

[ML] Bayesian Optimization으로 파라미터 튜닝하기

이번 포스팅에서는 머신러닝 모델의 하이퍼파라미터를 튜닝하는 방법 중 하나인 Bayesian Optimization에 대해 알아보려 한다. 그리고 간단한 예시를 통해 Bayesian Optimization 라이브러리가 얼마나 최적

techblog-history-younghunjo1.tistory.com

pytorch 에서 baysian optimization 실행하는 방법 참고 링크 : https://towardsdatascience.com/quick-tutorial-using-bayesian-optimization-to-tune-your-hyperparameters-in-pytorch-e9f74fc133c2

 

Quick Tutorial: Using Bayesian optimization to tune your hyperparameters in PyTorch

A faster way to design your neural networks

towardsdatascience.com

 

하이퍼파라미터 탐색 도구인 Optuna와 Hyperopt 두 개에 대한 비교 글도 있어서 가져와봤다. 

https://neptune.ai/blog/optuna-vs-hyperopt

 

Optuna vs Hyperopt: Which Hyperparameter Optimization Library Should You Choose? - neptune.ai

Thinking which library should you choose for hyperparameter optimization? Been using Hyperopt for a while and feel like changing? Just heard about Optuna and you want to see how it works? Good! In this article I will: show you an example of using Optuna

neptune.ai