부분집합 시뮬레이션 — 작은 파괴확률을 감당 가능한 해석 횟수로
Zuev 등(2011)의 논문을 읽어 파괴확률을 조건부 확률의 곱으로 바꾸는 부분집합 시뮬레이션의 구조, 수락률 30~50%라는 MCMC 조율 기준, p₀를 0.1~0.3에서 고르면 된다는 결론, 파괴확률을 사후 PDF로 내놓는 베이지안 후처리, 그리고 6층 강재골조 지진 예제의 변동계수를 정리한다.
부분집합 시뮬레이션(Subset Simulation)은 매우 작은 파괴확률을, 크기가 큰 조건부 확률들의 곱으로 바꿔서 계산하는 방법이다. 목적은 하나다 — 10⁻⁴, 10⁻⁶ 수준의 파괴확률을 감당 가능한 해석 횟수로 구하는 것이다. 몬테카를로로 그 값을 구하려면 표본 수가 1/p_F에 비례해 늘어나므로, 구조해석 한 번이 비싼 문제에서는 애초에 불가능하다.
이 글은 Zuev, Beck, Au, Katafygiotis, "Bayesian Post-Processor and other Enhancements of Subset Simulation for Estimating Failure Probabilities in High Dimensions" (arXiv, 2011)의 본문과 수치예제를 인용한다. 원래의 Subset Simulation은 Au와 Beck이 제안했고, 이 논문은 세 가지 개선을 다룬다 — MCMC의 최적 스케일링, 조건부 확률 p₀의 최적값, 그리고 파괴확률을 하나의 숫자가 아니라 분포로 내놓는 베이지안 후처리다.
1. 몬테카를로가 막히는 지점
몬테카를로 추정량의 변동계수는 표본 수 N과 파괴확률 p_F로 결정된다. 논문의 서술은 짧다 — "p_F가 매우 작으면 허용 가능한 정확도를 얻는 데 필요한 표본 수(즉 구조해석 횟수)가 매우 커진다, N ∝ 1/p_F ≫ 1".
10⁻⁶의 파괴확률을 10%의 변동계수로 추정하려면 해석이 1억 번 필요하다는 뜻이다. 비선형 시간이력해석 한 번이 수 분 걸리는 문제에서는 시작할 수조차 없다.
2. 작은 확률을 큰 확률의 곱으로
부분집합 시뮬레이션의 발상은 중간 단계를 만드는 것이다. 전체 매개변수 공간에서 시작해 파괴영역까지 점점 좁아지는 중첩된 부분집합의 열을 잡는다.
매우 작은 파괴확률 p_F를 더 큰 확률들의 곱으로 표현한다 — p_F = Π p_j. … 전체 공간에서 시작해 파괴영역 F로 줄어드는 중첩된 부분집합의 감소열을 생각하자. — Zuev et al., §2
매우 작은 파괴확률 p_F를 더 큰 확률들의 곱으로 표현한다 — p_F = Π p_j. … 전체 공간에서 시작해 파괴영역 F로 줄어드는 중첩된 부분집합의 감소열을 생각하자. — Zuev et al., §2
각 단계의 확률 p_j = P(F_j | F_{j−1})은 조건부 확률이고, 이 값들을 모두 같은 값 p₀가 되도록 중간 영역을 잡는 것이 표준 구현이다. 실무적으로 흔히 쓰는 값은 p₀ = 0.1이다.
여기서 계산이 성립하는 이유가 나온다 — 각 단계에서 추정할 확률이 0.1이면, 그 하나를 정확히 추정하는 데 필요한 표본은 수백~수천 개면 된다. 10⁻⁶은 그런 단계를 여섯 번 쌓아 얻는다.
문제는 두 번째 단계부터다. p₂를 추정하려면 F₁ 조건 하의 분포에서 표본을 뽑아야 하는데, 이 조건부 분포에서 직접 독립 표본을 만들 방법이 없다. 그래서 MCMC를 쓰고, 그 대가로 표본이 서로 독립이 아니게 된다. 고차원에서 이 일을 하는 알고리즘이 수정 메트로폴리스 알고리즘(MMA)이다.
3. 개선 ① — MCMC를 어떻게 조율할 것인가
MCMC의 성능은 제안분포의 퍼짐(spread)에 달려 있다. 너무 좁으면 체인이 제자리를 맴돌고, 너무 넓으면 대부분의 제안이 기각되어 역시 움직이지 않는다. 이 논문의 첫 번째 결론이 그 조율의 기준을 준다.
시뮬레이션 수준 j ≥ 1에서, 대응하는 수락률 ρ_j가 30%에서 50% 사이가 되도록 σ_j를 고른다. — Zuev et al., §7
시뮬레이션 수준 j ≥ 1에서, 대응하는 수락률 ρ_j가 30%에서 50% 사이가 되도록 σ_j를 고른다. — Zuev et al., §7
구현 방법도 구체적이다 — 한 체인 안에서는 σ를 고정하고 체인 사이에서만 바꾼다. 이렇게 하면 마르코프 성질이 깨지지 않으면서 거의 최적의 스케일링을 얻는다.
4. 개선 ② — p₀를 얼마로 둘 것인가
p₀는 중간 수준의 개수를 정하는 값이고, 양쪽 끝에 각각 손해가 있다.
p₀가 너무 작으면 — 중간 단계는 적게 필요하지만, 각 단계에서 작은 조건부 확률을 정확히 추정하려면 표본이 아주 많이 필요하다. 극단적으로 p₀ ≤ p_F이면 부분집합 시뮬레이션은 그냥 몬테카를로가 된다.
p₀가 너무 크면 — 각 단계의 표본은 적어도 되지만 중간 수준의 개수 m이 늘어난다.
논문은 변동계수를 p₀의 함수로 쓴 뒤 최적값을 유도하고, 실무적으로 훨씬 유용한 결론을 낸다.
p₀ ∈ [0.1, 0.3] 중 어느 값을 골라도 비슷한 효율을 얻으며, 부분집합 시뮬레이션이 제대로 구현되어 있다면 조건부 확률 값을 미세 조정할 필요는 없다. — Zuev et al., §7
p₀ ∈ [0.1, 0.3] 중 어느 값을 골라도 비슷한 효율을 얻으며, 부분집합 시뮬레이션이 제대로 구현되어 있다면 조건부 확률 값을 미세 조정할 필요는 없다. — Zuev et al., §7
튜닝할 필요가 없다는 결론이 이 절의 값어치다. 매개변수 하나를 두고 고민하는 대신 0.1을 쓰고 넘어가면 된다.
5. 개선 ③ — 숫자 하나가 아니라 분포로
세 번째가 이 논문의 제목이 가리키는 기여다. 원래의 부분집합 시뮬레이션은 각 단계에서 파괴한 표본의 비율 n_j/N을 조건부 확률의 추정값으로 쓰고, 그것들을 곱해 하나의 실수를 낸다.
베이지안 후처리(SS+)는 그 실수들을 확률변수로 바꾼다 — 각 p_j에 사전분포를 주고, 각 단계에서 얻은 표본을 데이터로 삼아 베이즈 정리로 사후분포를 갱신한 뒤, 그것들을 결합해 p_F의 사후 확률밀도함수를 만든다.
결과의 성격이 달라진다 — "추정값 하나 대신 파괴확률의 사후 PDF를 내놓으며, 이는 사전 정보와 표본의 정보를 모두 반영한다. 이 PDF는 p_F 값의 불확실성을 정량화하고, 위험도 분석에서 그 불확실성을 반영하는 데 쓸 수 있다". 그리고 두 방법의 관계도 명확하다 — "원래의 SS 추정값은 베이지안 접근에서 최빈값(most probable value)에 해당한다".
6. 두 개의 검증 예제
논문은 두 문제로 방법을 확인한다. 첫 번째는 정답을 아는 선형 문제다.
항목값
차원d = 1,000
정확한 파괴확률p_F = 10⁻³ (신뢰도지수 β ≈ 3.09) — 이 경우 FORM이 정확한 값을 준다
표본 수각 수준에서 N = 1,000, 필요한 수준 수 m = 3
SS 추정값1.057 × 10⁻³
SS+ 사후분포평균 1.064 × 10⁻³, 변동계수 0.16
SS 추정량의 빈도주의 변동계수0.28 (50회 독립 실행 기준)
두 번째는 구조공학 문제다 — 2차원 6층 강재 모멘트골조가 강한 지진동을 받는 탄소성 해석이다.
항목값
구조2D 6층 모멘트골조 · 항복강도 317 MPa · 바닥 24.7 kN/m, 지붕 13.2 kN/m 등분포 하중
동특성1·2차 고유진동수 0.61 Hz · 1.71 Hz · 레일리 감쇠로 두 모드에 임계감쇠비 2%
입력비정상 확률과정으로 모형화한 지진동 · 샘플링 Δt = 0.03초, 1,001개 시각(지속시간 30초)
파괴 정의어느 한 층의 최대 층간변형각이 b = 0.5% 초과 — "운영(operational)" 손상 수준에 해당
기준값p_F = 8.9 × 10⁻³ (몬테카를로 4 × 10⁴ 표본 기준)
이 문제에서 표본 수를 바꿔 가며 얻은 불확실성이 방법의 성질을 보여 준다.
수준당 표본 수 NSS+ 사후분포의 변동계수SS 추정량의 변동계수(50회 실행)
5000.1900.303
1,0000.1340.201
2,0000.0950.131
표본이 늘수록 사후분포가 좁아진다 — 당연해 보이지만, 이것이 SS+의 요점이다. 계산을 더 하면 추정값이 바뀌는 것이 아니라 그 값에 대한 확신이 커진다는 사실이 결과 안에 표시된다. 원래의 SS는 그 정보를 50번 반복 실행해야만 얻을 수 있었다.
7. 정리
몬테카를로는 N ∝ 1/p_F로 표본이 늘어 작은 파괴확률에서 쓸 수 없다.
부분집합 시뮬레이션은 p_F를 조건부 확률의 곱으로 바꾼다 — 중첩된 중간 파괴영역을 만들어 각 단계의 확률을 크게 유지한다.
두 번째 수준부터는 조건부 분포에서 표본을 뽑아야 하므로 MCMC가 필요하고, 표본은 더 이상 독립이 아니다.
MMA의 조율 기준은 수락률 30~50%이며, σ는 체인 안에서 고정하고 체인 사이에서만 바꾼다.
p₀ ∈ [0.1, 0.3]이면 효율이 비슷하다 — 미세 조정할 필요가 없다. p₀ ≤ p_F이면 방법은 몬테카를로로 퇴화한다.
SS+는 파괴확률을 확률변수로 두고 사후 PDF를 낸다 — 원래의 SS 추정값은 그 분포의 최빈값에 해당한다.
선형 예제(d = 1,000, p_F = 10⁻³)에서 SS는 1.057 × 10⁻³, SS+ 사후 평균은 1.064 × 10⁻³, 변동계수 0.16이었다.
6층 강재골조 지진 예제에서 파괴 정의는 층간변형각 0.5% 초과이고 기준 파괴확률은 8.9 × 10⁻³였다.
수준당 표본을 500 → 2,000으로 늘리면 사후분포의 변동계수가 0.190 → 0.095로 줄었다.
구조 신뢰성 실무에서 이 방법이 놓이는 자리는 FORM이 통하지 않는 문제다. 선형 예제에서 FORM은 정확한 답을 주지만, 6층 골조의 탄소성 지진 응답처럼 파괴면이 비선형이고 차원이 1,000을 넘는 문제에서는 설계점 하나로 확률을 근사할 수 없다. 그때 남는 선택지가 표본 기반 방법이고, 부분집합 시뮬레이션은 그 비용을 감당 가능한 수준으로 낮춘다. 그리고 SS+가 더한 것은 정확도가 아니라 정확도에 대한 정보다 — 파괴확률 추정값 옆에 그 값의 불확실성을 함께 적을 수 있게 된다.