🏠 전체 위키 수학 위키 지도 목록 사전
더보기

몬테카를로 방법

CS·데이터사이언스 대학 · v1 · 🤖 LLM 버전

🧭 선수 개념 — 이 문서는 다음을 안다는 전제로 쓰였어요: 확률 (중등) · 확률변수 (고등) · 정적분 (고등)

정의

몬테카를로 방법(Monte Carlo method)은 확률적 표본추출(random sampling)을 이용하여 결정론적으로 계산하기 어려운 양—대표적으로 정적분, 기댓값, 최적해 등—을 근사적으로 추정하는 계산 기법의 총칭이다.

가장 기본적인 형태인 몬테카를로 적분을 정의하면 다음과 같다. 유계집합 $D \subset \mathbb{R}^d$ 위에서 정의된 함수 $f: D \to \mathbb{R}$에 대해 적분값

$$I = \int_D f(x)\,dx$$

을 구하고 싶다고 하자. $D$ 위의 균등분포 $U(D)$(유 브래킷 D, $D$ 위에서 균등분포라고 읽는다)에서 독립인 표본 $X_1, X_2, \dots, X_N \sim U(D)$를 뽑으면, 추정량

$$\hat{I}_N = \frac{\text{Vol}(D)}{N}\sum_{i=1}^{N} f(X_i)$$

($\hat{I}_N$은 아이 햇 서브 엔, $I$의 추정값이라는 뜻)을 정의할 수 있다. 큰 수의 법칙(law of large numbers)에 의해

$$\hat{I}_N \xrightarrow{\ p\ } I \quad (N \to \infty)$$

($\xrightarrow{p}$는 확률수렴한다고 읽는다)이 성립하며, 중심극한정리에 의해 오차의 크기는 표본 크기 $N$에 대해 $O(1/\sqrt{N})$(오 원 오버 루트 엔, "$N$의 제곱근에 반비례하는 정도"라는 뜻)로 감소한다.

직관

결정론적 수치적분(구분구적법, 사다리꼴 공식 등)은 정의역을 격자로 잘게 나누어 계산하는데, 차원 $d$가 커지면 격자점의 개수가 $O(n^d)$로 폭발적으로 증가하는 "차원의 저주"에 걸린다. 반면 몬테카를로 방법은 점을 격자가 아니라 무작위로 뿌려서 그 평균으로 적분을 추정하므로, 오차의 크기가 차원 $d$에 의존하지 않고 오직 표본 개수 $N$에만 의존한다($O(1/\sqrt{N})$).

직관적으로는 "과녁에 무작위로 다트를 던져서, 원 안에 맞은 비율로 원의 넓이를 추정한다"는 그림으로 이해하면 된다. 다트를 많이 던질수록(표본을 늘릴수록) 추정값은 실제 값에 가까워지고, 이는 곧 확률의 상대도수적 정의(경험적 확률이 이론적 확률에 수렴)와 같은 원리다.

성질

예시

예시 1 (원주율 추정): 한 변의 길이가 $2$인 정사각형 $[-1,1]\times[-1,1]$ 안에 반지름 $1$인 원을 그린다. 정사각형 내부에서 균등하게 점 $N$개를 뽑아 원 안에 들어간 점의 개수를 $M$이라 하면, 원의 넓이 대 정사각형 넓이의 비는 $\pi/4$이므로

$$\hat{\pi} = 4 \cdot \frac{M}{N}$$

으로 추정한다. 예를 들어 $N = 10000$개 중 $M = 7854$개가 원 안에 들어갔다면 $\hat{\pi} = 4 \times 0.7854 = 3.1416$이 된다.

예시 2 (정적분 추정): $I = \displaystyle\int_{-1}^{1}\sqrt{1-x^2}\,dx$ (참값은 반원의 넓이 $\pi/2 \approx 1.5708$)를 몬테카를로로 추정해보자. $D = [-1,1]$이므로 $\text{Vol}(D) = 2$이고, $X_i \sim U(-1,1)$을 $N$개 뽑아

$$\hat{I}_N = \frac{2}{N}\sum_{i=1}^N \sqrt{1-X_i^2}$$

을 계산한다. $N$이 커질수록 $\hat{I}_N$은 $1.5708$에 가까워진다.

🌍 실생활 예시

금융공학에서는 옵션 가격을 결정할 때 미래 주가 경로를 확률과정(예: 기하 브라운 운동)으로 무수히 시뮬레이션한 뒤, 각 경로에서의 옵션 수익(payoff)을 평균 내어 현재 가치를 추정한다. 만기 조건이 복잡한 옵션(경로의존형 옵션 등)은 닫힌 형태의 공식이 없는 경우가 많아, 수만~수백만 개의 무작위 경로를 생성해 평균을 구하는 몬테카를로 시뮬레이션이 실무에서 표준적으로 쓰인다.

⚠️ 흔한 실수

확인 문제

  1. $[0,1]$ 구간에서 $X_i \sim U(0,1)$을 뽑아 $I = \int_0^1 x^2\,dx$를 몬테카를로로 추정하려고 한다. $N=4$개의 표본 $0.2,\ 0.5,\ 0.7,\ 0.9$를 얻었다면 $\hat{I}_4$의 값은? (참값 $1/3$과 비교해보라.)
  2. 정사각형-원 방법으로 원주율을 추정할 때, $N=1000$개 점 중 $785$개가 원 안에 들어갔다면 $\hat{\pi}$는 얼마인가?
  3. 몬테카를로 추정의 오차(표준편차)를 현재의 $\frac{1}{10}$로 줄이려면 표본 수 $N$을 몇 배로 늘려야 하는지 $O(1/\sqrt{N})$ 관계로부터 설명하시오. 이 관계로부터 왜 몬테카를로 방법이 "정밀도를 조금 높이는 데 비용이 많이 드는" 방법인지 직관을 서술하시오.
정답 보기
  1. $\hat{I}_4 = \frac{1}{4}(0.2^2+0.5^2+0.7^2+0.9^2) = \frac{1}{4}(0.04+0.25+0.49+0.81) = \frac{1.59}{4} = 0.3975$. 참값 $1/3 \approx 0.3333$과 다소 차이가 나는데, 이는 $N=4$가 너무 작아 큰 수의 법칙이 충분히 작동하지 않았기 때문이다.
  2. $\hat{\pi} = 4 \times \frac{785}{1000} = 3.14$.
  3. 오차 $\propto 1/\sqrt{N}$이므로 오차를 $1/10$로 줄이려면 $\sqrt{N}$을 10배로, 즉 $N$을 $10^2=100$배로 늘려야 한다. 이는 정확도(유효숫자)를 한 자릿수 더 얻으려면 계산량을 100배 늘려야 함을 뜻하므로, 몬테카를로 방법은 차원이 낮을 때는 격자법보다 비효율적일 수 있지만 차원이 매우 높을 때는 이 "100배" 비용이 차원과 무관하다는 점에서 오히려 유리해진다.

관련 개념

연결 문서 그래프 (4)

굵은 테두리가 현재 문서, → 화살표는 선수 관계(선수 → 후속)예요. 노드를 누르면 해당 문서로 이동합니다. 전체 그래프 보기