GIL's LAB

[논문 리뷰] 베이지안 최적화 (Bayesian Optimization) 본문

데이터사이언스/최적화

[논문 리뷰] 베이지안 최적화 (Bayesian Optimization)

GIL~ 2022. 1. 19. 15:13

논문: Frazier, P. I. (2018). A tutorial on Bayesian optimization. arXiv preprint arXiv:1807.02811.

 

어떤 문제를 다루나?

미지의 목적 함수 f를 최대화하는 최적화 문제

  • x: 20차원 이하의 실수 벡터, x = (x_1, x_2, ..., x_n)
  • A: feasible set, 통상적으로 hyper-rectangle 형태 (즉, a_i ≤ x_i ≤ b_i)
  • 목적 함수 f의 특성
    • continuous
    • black-box: 지금까지의 데이터로 추정해야 함
    • expensive to evaluate: 데이터가 부족함
    • derivative-free: 도함수를 모름 => Newton’s Method, Gradient descent 등 사용 불가
    • noise-free: 측정에서 발생하는 노이즈는 없다고 가정함
  • 지역 최적해보다 전역 최적해를 찾는 것이 주 목적

 

베이지안 최적화 개요

아래 그림과 같이 Acquistion function, surrogate model, objective function으로 구성됩니다.

Surrogate Model: 목적 함수를 추정하는 머신러닝 모델 (주로 가우시안 프로세스를 활용)
Acquistion Function: 다음 테스트할 데이터 포인트를 추천하는데 활용하는 함수
 
대략적인 프로세스는 다음과 같습니다. 
 
즉, 임의로 찾은 데이터 포인트 집합을 바탕으로 목적 함수를 추정하고, 이 추정한 결과를 바탕으로 다음 테스트할 데이터 포인트를 찾고, 이 데이터 포인트를 평가한 결과를 바탕으로 목적 함수를 추정한 결과를 업데이트하는 반복적인 프로세스입니다.
 
임의로 찍은 세 개의 데이터 포인트를 바탕으로 최적화하는 과정의 일부를 보겠습니다. 

위 그림에서 빨간 실선은 목적 함수의 추정값으로, 이 함수를 최대화하는 점 x를 찾는 것이 목표입니다. 그러나 추정값에 불과하다는 점을 반드시 기억해야 합니다. 
현재 세 개 포인트를 바탕으로 다음 탐색할 포인트를 찾는 상황에서는 아래 내용을 고려해야 합니다.
  • 이미 테스트한 포인트 근처는 테스트하는데 비용이 많이 들고 노이즈가 없다고 가정했으므로 추가로 테스트하지 않아야 합니다. 따라서 이미 근처를 테스트한 구간은 Acquisition function 값이 0에 가깝습니다.
  • 우리가 추정한 곳에서 그나마 값이 큰 구간을 위주로 찾아야 합니다.

 

가우시안 프로세스 회귀

다변량 정규 분포

가우시안 프로세스는 기본적으로 함숫값들이 다변량 정규 분포를 따른다고 간주합니다. 

두 변수 x1과 x2가 다변량 정규 분포를 따른다는 것은 다음과 같이 쓸 수 있습니다.

가우시안 프로세스에서 함수값들이 다변량 정규분포를 따른다고 가정하는데, 여기서 핵심은 각 함수값이 독립적이지 않다는데 있습니다. 즉, 위 수식에서 x1의 분포에 x2가 영향을 끼칩니다. 측정한 함수값이 많아지면 다변량 정규 분포의 차원이 무한대에 가까워질 것이므로, 가우시안 프로세스를 비모수 모델로 볼 수 있습니다. 

가우시안 프로세스에서 아직 함수값을 모르는 입력 x_new와 값을 알고 있는 입력 벡터 x_old가 있을 때, x_new의 값은 다음과 같은 분포를 따른다고 간주할 수 있음

 

기본 구조

함수 값은 다변량 정규 분포를 따른다고 가정하며, 함수값 간 관계는 커널로 정의합니다.

여기서 x^(1:n)은 (x^1, x^2, ..., x^n)을 축약해서 쓴 것입니다. 

 

새로운 데이터 x^(n+1)의 함수값 f(x^n)은 다음과 같이 조건부 분포를 이용하여 예측합니다. 

 

커널 함수

가우시안 프로세스의 예측은 결국 기존에 측정한 다른 값들과의 유사도를 바탕으로 이뤄지기에 커널 함수가 매우 중요한 역할을 합니다. 커널 함수는 두 입력이 가까우면 큰 값을, 멀면 작은 값을 반환합니다. 즉, 상관관계 함수 혹은 유사도 함수와 비슷하다고 할 수 있습니다. 
아래와 같이 세 개의 측정점이 있는 상황을 가정해보겠습니다.

이제 f(x_4)를 예측하는 구조를 살펴보겠습니다.

그 구조가 가중합 꼴입니다. 그리고 x1이 x4와 가장 가까우므로, K(x1, x4)가 가장 크고, 그에 따라 f(x1)이 f(x4) 예측에 가장 큰 영향을 줍니다.

 

대표적인 평균 함수와 커널 함수

대표적인 커널 함수로는 power exponential (Gaussian) kernel이 있으며, 다음과 같이 생겼습니다.

여기서 알파는 커널의 하이퍼파라미터로 최대 가능도 방법으로 추정합니다. 

 

대표적인 평균 함수는 상수함수입니다. 즉, 평균을 상수로 고정해놓고 커널로 튜닝하는 형태를 많이 씁니다.

 

Acqusition function

대표적인 Acqusition function으로는 expected improvement (EI)가 있습니다. EI는 말그대로 새로운 데이터를 측정했을 때 향상되는 함숫값에 대한 기대값입니다.EI를 바탕으로 다음 측정할 데이터 포인트 x^(n+1)은 다음과 같이 찾습니다.

 

 

Python packages

sklearn – GaussianProcessRegressor

https://scikit-learn.org/stable/modules/generated/sklearn.gaussian_process.GaussianProcessRegressor.html

 
Bayesian-optimization

https://github.com/fmfn/BayesianOptimization

 


데이터 분석 서비스가 필요한 분은 아래 링크로! 

https://kmong.com/gig/374194 

 

데이터사이언스 박사의 데이터 분석 서비스 드립니다. | 150000원부터 시작 가능한 총 평점 5점의 I

78개 총 작업 개수 완료한 총 평점 5점인 데이터사이언스박사의 IT·프로그래밍, 데이터 분석·시각화 서비스를 68개의 리뷰와 함께 확인해 보세요. IT·프로그래밍, 데이터 분석·시각화 제공 등 150

kmong.com

 

Comments