대리 모델

**대리 모델** 또는 **서로게이트 모델**(Surrogate model)은 관심 결과값을 쉽게 측정하거나 계산할 수 없을 때 사용하는 공학 방법으로, 그 대신 결과값의 근사적인 수학적 모델을 사용한다. 대부분의 공학 설계 문제는 설계 변수의 함수로 설계 목표 및 제약 조건을 평가하기 위해 실험 및 시뮬레이션을 필요로 한다. 예를 들어, 항공기 날개의 최적 에어포일 형상을 찾기 위해 엔지니어는 다른 형상 변수(예: 길이, 곡률, 재료 등)에 대한 날개 주변의 공기 흐름을 시뮬레이션한다. 그러나 많은 실제 문제에서 단일 시뮬레이션 완료에 수십 분, 수 시간 또는 심지어 며칠이 걸릴 수 있다. 결과적으로 설계 최적화, 설계 공간 탐색, 민감도 분석 및 "가상 시나리오" 분석과 같은 일상적인 작업은 수천 또는 수백만 번의 시뮬레이션 평가가 필요하기 때문에 불가능해진다.

이러한 부담을 완화하는 한 가지 방법은 **대리 모델**, 메타모델 또는 에뮬레이터로 알려진 근사 모델을 구축하는 것으로, 시뮬레이션 모델의 동작을 가능한 한 가깝게 모방하면서 계산 비용은 저렴하게 유지하는 것이다. 대리 모델은 데이터 기반의 상향식 접근 방식을 사용하여 구축된다. 시뮬레이션 코드의 정확한 내부 작동 방식은 알거나 이해할 필요가 없으며, 오로지 입력-출력 동작에만 의존한다. 제한된 수의 지능적으로 선택된 데이터 포인트에 대한 시뮬레이터의 응답을 모델링하는 것을 기반으로 모델이 구축된다. 이 접근 방식은 행동 모델링 또는 블랙박스 모델링이라고도 알려져 있지만, 용어는 항상 일관되지는 않다. 단일 설계 변수만 관련된 경우, 이 과정은 커브 피팅(곡선 맞춤)으로 알려져 있다.

공학 설계에서 실험 및 시뮬레이션 대신 대리 모델을 사용하는 것이 더 일반적이지만, 대리 모델링은 비용이 많이 드는 실험 및 함수 평가가 있는 다른 많은 과학 분야에서도 사용될 수 있다.

## 목표

대리 모델링의 과학적 과제는 가능한 한 적은 시뮬레이션 평가를 사용하여 가능한 한 정확한 대리 모델을 생성하는 것이다. 이 과정은 반복적으로 얽힐 수 있는 세 가지 주요 단계로 구성된다:

*   샘플 선택 (순차 설계, 최적 실험 설계(OED) 또는 활성 학습(Active learning)이라고도 함)
*   대리 모델 구축 및 모델 매개변수 최적화(즉, 편향-분산 트레이드오프)
*   대리 모델 정확성 평가

대리 모델의 정확성은 설계 공간에서 샘플(비용이 많이 드는 실험 또는 시뮬레이션)의 수와 위치에 따라 달라진다. 다양한 실험계획법(DOE) 기법은 다양한 오류의 원인, 특히 데이터의 노이즈로 인한 오류 또는 부적절한 대리 모델로 인한 오류를 처리한다.

## 대리 모델 유형

널리 사용되는 대리 모델링 접근 방식은 다음과 같다: 다항 반응 표면; 크리깅; 보다 일반화된 베이지안 접근 방식; 그래디언트 강화 크리깅(GEK); 방사 기저 함수; 서포트 벡터 머신; 공간 매핑; 인공 신경망 및 베이지안 네트워크. 최근 탐색된 다른 방법으로는 푸리에 대리 모델링 및 랜덤 포레스트.가 있다.

일부 문제의 경우 실제 함수의 본질이 *사전에* 알려져 있지 않아 어떤 대리 모델이 가장 정확할지 명확하지 않다. 또한, 주어진 대리 모델의 정확성에 대한 가장 신뢰할 수 있는 추정치를 얻는 방법에 대한 합의가 없다. 다른 많은 문제는 알려진 물리적 속성을 가지고 있다. 이러한 경우, 공간 매핑 기반 모델과 같은 물리 기반 대리 모델이 일반적으로 사용된다.

## 불변 속성
최근 제안된 비교 기반 대리 모델(예: 순위 서포트 벡터 머신)은 진화 알고리즘(예: CMA-ES)을 위해 대리 모델 지원 최적화 도구의 일부 불변 속성을 보존할 수 있다.
# 함수에 대한 단조 변환에 대한 불변성 (스케일링)
# 탐색 공간에 대한 직교 변환에 대한 불변성 (회전)

## 응용

대리 모델의 두 가지 다른 응용 분야는 설계 최적화와 설계 공간 근사(에뮬레이션이라고도 함)로 구분할 수 있다.

대리 모델 기반 최적화에서는 사용 가능한 비싼 실험 및 시뮬레이션 예산의 일부를 사용하여 초기 대리 모델을 구축한다. 나머지 실험/시뮬레이션은 대리 모델이 유망한 성능을 가질 수 있다고 예측하는 설계에 대해 실행된다. 이 과정은 일반적으로 다음 검색/업데이트 절차의 형태를 취한다.

# 초기 샘플 선택 (실행할 실험 및 시뮬레이션)
# 대리 모델 구축
# 대리 모델 검색 (모델은 평가 비용이 저렴하기 때문에 유전 알고리즘 등을 사용하여 광범위하게 검색할 수 있다)
# 검색으로 찾은 새로운 위치에서 실험/시뮬레이션을 실행하고 업데이트하여 샘플에 추가
# 시간이 다 되거나 설계가 "충분히 좋을" 때까지 2~4단계 반복

사용된 대리 모델의 유형과 문제의 복잡성에 따라 이 과정은 국소 또는 전역 최적해로 수렴하거나 전혀 수렴하지 않을 수도 있다.

설계 공간 근사에서는 최적의 매개변수 벡터를 찾는 데 관심이 있는 것이 아니라 시스템의 전역적 동작에 관심이 있다. 여기서 대리 모델은 전체 설계 공간에서 필요에 따라 기본 모델을 최대한 가깝게 모방하도록 조정된다. 이러한 대리 모델은 시스템의 전역적 동작에 대한 통찰력을 얻기 위한 유용하고 저렴한 방법이다. 최적화는 후처리 단계로 여전히 발생할 수 있지만, 업데이트 절차(위 참조)가 없으면 찾은 최적해는 검증할 수 없다.

## 대리 모델링 소프트웨어
*   Surrogate Modeling Toolbox (SMT: https://github.com/SMTorg/smt)는 대리 모델링 방법, 샘플링 기법 및 벤치마킹 함수의 모음을 포함하는 파이썬 패키지이다. 이 패키지는 사용하기 쉽고 추가 방법을 구현하는 데 도움이 되는 대리 모델 라이브러리를 제공한다. SMT는 미분, 그레디언트 강화 모델링에 사용되는 훈련 미분, 예측 미분 및 훈련 데이터에 대한 미분을 강조한다는 점에서 기존 대리 모델링 라이브러리와 다르다. 또한 다른 곳에서는 사용할 수 없는 새로운 대리 모델도 포함한다: 편최소자승 회귀에 의한 크리깅 및 에너지 최소화 스플라인 보간.
*   파이썬 라이브러리 SAMBO Optimization은 임의의 모델을 사용한 순차 최적화를 지원하며, 트리 기반 모델과 가우스 과정 모델이 내장되어 있다.
*   Surrogates.jl는 줄리아 패키지로, 랜덤 포레스트, 방사 기저 방법 및 크리깅과 같은 도구를 제공한다.

## 대리 모델 지원 진화 알고리즘 (SAEA)
SAEA는 진화 알고리즘(EA)을 대리 모델과 통합하는 고급 최적화 기술의 한 종류이다. 전통적인 EA에서는 후보 해의 적합도를 평가하기 위해 종종 계산 비용이 많이 드는 시뮬레이션 또는 실험이 필요하다. SAEA는 목적 함수 또는 제약 조건 함수의 계산적으로 저렴한 근사 모델인 대리 모델을 구축하여 이 문제를 해결한다.
대리 모델은 진화적 검색 과정에서 실제 평가 과정을 대체하는 역할을 한다. 이를 통해 알고리즘은 새로운 후보 해의 적합도를 빠르게 추정할 수 있어 필요한 비싼 평가 횟수를 줄일 수 있다. 이는 목적 함수 평가에 시간이 많이 소요되거나 자원 집약적인 경우 특히 최적화 프로세스의 속도를 크게 향상시킨다.
SAEA는 일반적으로 세 가지 주요 단계를 포함한다: (1) 초기 샘플링된 데이터 포인트를 사용하여 대리 모델을 구축하고, (2) 대리 모델을 사용하여 선택, 교차 및 변이 연산을 안내하며 진화적 검색을 수행하고, (3) 진화 과정에서 생성된 새로운 데이터 포인트로 대리 모델을 주기적으로 업데이트하여 정확성을 향상시킨다.
탐색(해결 공간의 새로운 영역 검색)과 활용(알려진 유망한 영역 정제)의 균형을 통해 SAEA는 복잡한 최적화 문제에 대한 고품질 해결책을 효율적으로 찾을 수 있다. 이들은 공학 설계, 기계 학습, 전산 금융 등 다양한 분야에서 성공적으로 적용되어 왔으며, 이러한 분야에서는 적합도 평가의 높은 계산 비용으로 인해 전통적인 최적화 방법이 어려움을 겪을 수 있다.

## 같이 보기
* 선형 근사
* 개념 모형

## 각주


## 추가 자료
*   Queipo, N.V., Haftka, R.T., Shyy, W., Goel, T., Vaidyanathan, R., Tucker, P.K. (2005), “Surrogate-based analysis and optimization,” Progress in Aerospace Sciences, 41, 1–28.
*   D. Gorissen, I. Couckuyt, P. Demeester, T. Dhaene, K. Crombecq, (2010), “A Surrogate Modeling and Adaptive Sampling Toolbox for Computer Based Design," Journal of Machine Learning Research, Vol. 11, pp.&nbsp;2051−2055, July 2010.
*   T-Q. Pham, A. Kamusella, H. Neubert, “Auto-Extraction of Modelica Code from Finite Element Analysis or Measurement Data," 8th International Modelica Conference, 20–22 March 2011 in Dresden.
*   Forrester, Alexander, Andras Sobester, and Andy Keane, *[https://books.google.com/books?id=ulMHmeMnRCcC&dq=%22Engineering+design+via+surrogate+modelling%3A+a+practical+guide%22&pg=PR5 Engineering design via surrogate modelling: a practical guide]*, John Wiley & Sons, 2008.
*   Bouhlel, M. A. and Bartoli, N. and Otsmane, A. and Morlier, J. (2016) "Improving kriging surrogates of high-dimensional design models by Partial Least Squares dimension reduction", Structural and Multidisciplinary Optimization 53 (5), 935-952
*   Bouhlel, M. A. and Bartoli, N. and Otsmane, A. and Morlier, J. (2016) "An improved approach for estimating the hyperparameters of the kriging model for high-dimensional problems through the partial least squares method", Mathematical Problems in Engineering

## 외부 링크
*   대리 모델링용 Matlab 코드
*   Matlab '''SU'''rrogate '''MO'''deling Toolbox – Matlab SUMO Toolbox
*   Surrogate Modeling Toolbox -- Python

분류:수치해석학
분류:기계 학습
분류:수학적 모델링
분류:실험 설계