initial commit FESurrogateModelTutorial
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
# Gaussian Process Regression and Kriging
|
||||
|
||||
## 핵심 아이디어
|
||||
Gaussian Process Regression(GPR)은 함수값을 확률변수로 보고, 입력 위치 사이의 상관관계를 kernel로 정의한다. Engineering design 분야에서는 Kriging이라는 이름으로 널리 사용된다.
|
||||
|
||||
GPR은 예측 평균뿐 아니라 예측 표준편차를 제공한다.
|
||||
|
||||
```text
|
||||
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을 기본으로 사용한다.
|
||||
|
||||
```text
|
||||
ConstantKernel * RBF + WhiteKernel
|
||||
```
|
||||
|
||||
- `ConstantKernel`: 응답 scale.
|
||||
- `RBF`: 입력 공간에서 가까운 점은 비슷한 응답을 가진다는 smoothness 가정.
|
||||
- `WhiteKernel`: 수치 noise 또는 모델 불일치 허용.
|
||||
|
||||
Notebook pipeline:
|
||||
|
||||
```text
|
||||
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`는 다음을 보여준다.
|
||||
|
||||
1. 동일 dataset과 split 로드.
|
||||
2. RBF kernel 기반 GPR 학습.
|
||||
3. 예측 평균과 표준편차 계산.
|
||||
4. parity plot에 uncertainty band 또는 error coloring 추가.
|
||||
5. 입력 공간에서 학습점과 먼 샘플의 uncertainty 확인.
|
||||
6. 학습 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
|
||||
Reference in New Issue
Block a user