4.0 KiB
4.0 KiB
Gaussian Process Regression and Kriging
핵심 아이디어
Gaussian Process Regression(GPR)은 함수값을 확률변수로 보고, 입력 위치 사이의 상관관계를 kernel로 정의한다. Engineering design 분야에서는 Kriging이라는 이름으로 널리 사용된다.
GPR은 예측 평균뿐 아니라 예측 표준편차를 제공한다.
y(x) ~ GP(m(x), k(x, x'))
m(x): mean function.k(x, x'): covariance function 또는 kernel.- 예측 결과:
mean,standard deviation.
FEM surrogate에서의 의미
FEM 해석 데이터는 deterministic한 computer experiment인 경우가 많다. 같은 입력을 넣으면 같은 출력이 나온다. 이런 상황에서 GPR/Kriging은 적은 해석점으로 매끄러운 응답면을 만들고, 학습점에서 먼 영역의 불확실성을 크게 줄 수 있어 surrogate 신뢰도 설명에 유리하다.
Sacks et al.의 computer experiment 연구는 계산 모델 입력과 출력 사이의 응답을 stochastic process로 모델링하는 관점을 제시했다. Rasmussen과 Williams의 GPML은 Gaussian process의 수학적 기반과 kernel 관점을 체계적으로 설명한다.
구현 선택
이 튜토리얼에서는 다음 kernel을 기본으로 사용한다.
ConstantKernel * RBF + WhiteKernel
ConstantKernel: 응답 scale.RBF: 입력 공간에서 가까운 점은 비슷한 응답을 가진다는 smoothness 가정.WhiteKernel: 수치 noise 또는 모델 불일치 허용.
Notebook pipeline:
StandardScaler
-> GaussianProcessRegressor(kernel=..., normalize_y=True)
Hyperparameter 의미
length_scale: 각 입력 방향에서 함수가 얼마나 빨리 변하는지 나타낸다.noise_level: 해석 데이터의 noise 또는 모델 불일치 허용량이다.alpha: numerical stability를 위한 diagonal jitter로 사용할 수 있다.n_restarts_optimizer: kernel hyperparameter 최적화의 local optimum 위험을 줄인다.
Notebook 실습 포인트
notebooks/02_gaussian_process_kriging_surrogate.ipynb는 다음을 보여준다.
- 동일 dataset과 split 로드.
- RBF kernel 기반 GPR 학습.
- 예측 평균과 표준편차 계산.
- parity plot에 uncertainty band 또는 error coloring 추가.
- 입력 공간에서 학습점과 먼 샘플의 uncertainty 확인.
- 학습 sample 수 증가에 따른 RMSE와 예측 표준편차 변화.
장점
- 작은 데이터에서 강력하다.
- 예측 uncertainty를 제공한다.
- Smooth response surface에 적합하다.
- Bayesian optimization과 active learning으로 확장하기 좋다.
한계와 실패 모드
- 기본 exact GPR은 학습 데이터 수가 커지면 계산 비용이 급격히 증가한다.
- Kernel 선택이 성능을 크게 좌우한다.
- 입력 scaling이 중요하다.
- 고차원 입력에서는 length scale 학습이 불안정할 수 있다.
- 예측 표준편차는 모델 가정 하의 불확실성이지, 모든 물리 오류를 보장하지 않는다.
구조해석 해석 기준
GPR/Kriging이 좋은 선택인 경우:
- FEM 해석이 비싸고 sample 수가 작다.
- 응답이 매끄럽다.
- uncertainty 기반 추가 샘플링을 설명하고 싶다.
- 설계공간 탐색에서 신뢰도 경고가 필요하다.
주의할 경우:
- sample 수가 수천 개 이상이다.
- 응답이 불연속적이다.
- 입력 차원이 많고 상호작용이 복잡하다.
References
- Sacks, J., Welch, W. J., Mitchell, T. J., and Wynn, H. P. (1989), "Design and Analysis of Computer Experiments", Statistical Science. https://doi.org/10.1214/ss/1177012413
- Sacks, J., Schiller, S. B., and Welch, W. J. (1989), "Designs for Computer Experiments", Technometrics. https://doi.org/10.1080/00401706.1989.10488474
- Rasmussen, C. E. and Williams, C. K. I. (2006), Gaussian Processes for Machine Learning. https://gaussianprocess.org/gpml/chapters/RW.pdf
- scikit-learn Gaussian Process documentation. https://scikit-learn.org/stable/modules/gaussian_process.html