3.4 KiB
3.4 KiB
Response Surface Methodology
핵심 아이디어
Response Surface Methodology(RSM)는 입력 변수와 응답 사이의 관계를 낮은 차수 다항식으로 근사한다. 구조해석 surrogate에서는 물리 응답이 충분히 매끄럽고 입력 범위가 좁을 때 강력한 기준선이 된다.
기본 2차 response surface는 다음 형태다.
y = beta_0 + sum beta_i x_i + sum beta_ii x_i^2 + sum beta_ij x_i x_j + epsilon
x_i: scaling된 설계변수.beta: 회귀 계수.x_i x_j: 변수 상호작용.epsilon: 모델이 설명하지 못한 잔차.
FEM surrogate에서의 의미
Beam 문제에서는 I = b h^3 / 12 때문에 응답이 입력 변수에 대해 비선형이다. 낮은 차수 다항식은 이 관계를 완벽히 재현하지 못할 수 있지만, 다음 장점이 있다.
- 빠르다.
- 계수 해석이 가능하다.
- 적은 데이터에서도 안정적이다.
- 복잡한 모델의 baseline으로 적합하다.
RSM은 특히 설계변수 범위가 좁고 응답이 단조롭고 매끄러울 때 유용하다.
구현 선택
이 튜토리얼에서는 scikit-learn의 PolynomialFeatures와 Ridge를 조합한다.
StandardScaler
-> PolynomialFeatures(degree=2, include_bias=False)
-> Ridge(alpha=...)
PolynomialFeatures는 입력 변수의 다항 조합을 만들고, Ridge는 L2 regularization으로 계수 크기를 제어한다. 일반 선형회귀 대신 Ridge를 쓰는 이유는 다항 feature가 늘어나면 feature 간 상관성이 커지고 계수가 불안정해질 수 있기 때문이다.
Notebook 실습 포인트
notebooks/01_response_surface_surrogate.ipynb는 다음을 보여준다.
- 동일 FEM dataset 로드.
- target
tip_uy_m선택. - degree 1, 2, 3 비교.
- Ridge
alpha변화에 따른 train/test error 비교. - parity plot과 residual plot.
- 다항 feature 이름과 계수 크기 해석.
장점
- 학습과 예측이 매우 빠르다.
- 작은 데이터에서 baseline으로 좋다.
- 변수 간 interaction을 명시적으로 볼 수 있다.
- extrapolation이 tree model보다 연속적이다.
한계와 실패 모드
- 실제 응답이 강하게 비선형이면 낮은 차수 다항식으로 부족하다.
- 높은 차수는 과적합과 수치 불안정을 만든다.
- 입력 scaling 없이 다항 feature를 만들면 큰 단위의 변수가 학습을 지배할 수 있다.
- 설계공간 경계 밖에서는 다항식이 물리적으로 말이 안 되는 큰 값을 낼 수 있다.
구조해석 해석 기준
RSM이 좋은 선택인 경우:
- 설계변수 수가 적다.
- 입력 범위가 좁다.
- 응답이 매끄럽고 단조적이다.
- 설명 가능한 surrogate가 중요하다.
RSM을 피해야 하는 경우:
- 응답에 threshold, discontinuity, contact-like behavior가 있다.
- 입력 범위가 넓고 상호작용이 복잡하다.
- 국소 응력 peak처럼 고차 비선형성이 크다.
References
- Box, G. E. P. and Wilson, K. B. (1951), "On the Experimental Attainment of Optimum Conditions", Journal of the Royal Statistical Society Series B. https://doi.org/10.1111/j.2517-6161.1951.tb00067.x
- scikit-learn
PolynomialFeaturesdocumentation. https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.PolynomialFeatures.html - scikit-learn
Ridgedocumentation. https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html