몬테 카를로 적분
📂머신러닝몬테 카를로 적분
개요
몬테 카를로 적분은 주어진 함수의 적분을 계산하기 어려울 때 사용하는 수치적인 근사 방법 중 하나이다. 다음과 같은 상황을 가정하자. 주어진 [0,1]혹은 일반적으로 [0,1]n에서 적분가능한 함수 f에 대해서 우리는 f(x)의 식을 알고 있지만, 이의 적분을 계산하는 것은 간단하지 않다. 그러나 우리는 f의 적분 I[f]를 계산하기를 원한다.
I[f]=∫[0,1]f(x)dx
정의
몬테 카를로 적분Monte Carlo integration이란, 주어진 [0,1] 위에서의 분포로 샘플 {xi}를 뽑아 f의 적분을 다음과 같이 추정estimate하는 방법이다.
I[f]≈In[f]:=n1i=1∑nf(xi)
구분구적법과의 차이점
구분구적법의 아이디어는 구간 [0,1]을 n등분하여 점들 {xi=ni−1}i=1n을 얻고, 이 점 위에서의 함숫값들을 모두 더하는 것이다.
구분구적법[f]=n1i=1∑nf(xi)
수식의 생김새만 보면 몬테카를로적분과 구분구적법은 다를게 없지만, 그 의미는 완전히 다르다. 구분구적법에서의 {xi}는 구간 [0,1]를 n등분하여 얻은 점들인 반면, 몬테카를로적분에서는 x가 따르는 분포 p(x)로부터 뽑은 n개의 샘플을 의미한다. 따라서 구분구적법으로 얻은 값은 단순히 f가 그리는 그래프 아래의 면적을 의미하지만, 몬테카를로적분으로 얻은 값은 f의 기댓값이다.
성질
식 (1)이 갖는 통계적인 의미는 'I[f]는 X가 균등분포를 따를 때의 f(X)의 기댓값과 같다'라는 것이다.
X∼U(0,1)⟹I[f]=∫[0,1]f(x)dx=E[f(X)]
기댓값
확률변수 X가 균등분포를 따른다고 하자. In[f]는 I[f]의 불편추정량이다.
E[In[f]]=I[f]
증명
E[In[f]]=E[n1i=1∑nf(Xi)]=n1i=1∑nE[f(Xi)]by linearity of E=n1i=1∑nI[f]=I[f]
■
분산
증명
분산의 성질
[a] Var(aX)=a2Var(X)\Var (aX) = a^{2} \Var (X)Var(aX)=a2Var(X)
[b] X,YX, YX,Y가 독립이면, Var(X+Y)=Var(X)+Var(Y)\Var (X + Y) = \Var(X) + \Var(Y)Var(X+Y)=Var(X)+Var(Y)
f(X)f(X)f(X)의 분산을 σ2\sigma^{2}σ2이라고 하자. 그러면 분산의 성질에 의해,
Var[In[f]]=Var[1n∑i=1nf(Xi)]=1n2Var[∑i=1nf(Xi)]=1n2∑i=1nVar[f(Xi)]=1n2∑i=1nσ2=σ2n
\begin{align*}
\Var \left[ I_{n}[f] \right]
&= \Var \left[ \dfrac{1}{n} \sum\limits_{i=1}^{n} f(X_{i}) \right] \\
&= \dfrac{1}{n^{2}} \Var \left[ \sum\limits_{i=1}^{n} f(X_{i}) \right] \\
&= \dfrac{1}{n^{2}} \sum\limits_{i=1}^{n} \Var \left[ f(X_{i}) \right] \\
&= \dfrac{1}{n^{2}} \sum\limits_{i=1}^{n} \sigma^{2} \\
&= \dfrac{\sigma^{2}}{n}
\end{align*}
Var[In[f]]=Var[n1i=1∑nf(Xi)]=n21Var[i=1∑nf(Xi)]=n21i=1∑nVar[f(Xi)]=n21i=1∑nσ2=nσ2
■
일반화
이제 p(x)≥0p(x) \ge 0p(x)≥0이고 ∫[0,1]p=1\int_{[0,1]} p = 1∫[0,1]p=1인 함수 ppp에 대해서, 적분 I[fp]I[fp]I[fp]를 생각해보자.
I[fp]=∫[0,1]f(x)p(x)dx
I[fp] = \int_{[0, 1]}f(x)p(x) dx
I[fp]=∫[0,1]f(x)p(x)dx
이는 확률밀도함수가 ppp인 확률변수 XXX에 대해서, f(X)f(X)f(X)의 기댓값과 같다. 이 값을 근사하는 방법으로 다음의 두가지 방법을 생각해볼 수 있다.
- 샘플 {xi}i=1n\left\{ x_{i} \right\}_{i=1}^{n}{xi}i=1n를 균등분포로 추출하고 I[fp]I[fp]I[fp]를 다음과 같이 근사한다.
Xi∼U(0,1)I[fp]≈1n∑if(xi)p(xi)
X_{i} \sim U(0,1) \qquad I[fp] \approx \dfrac{1}{n}\sum\limits_{i}f(x_{i})p(x_{i})
Xi∼U(0,1)I[fp]≈n1i∑f(xi)p(xi)
- 샘플 {xi}i=1n\left\{ x_{i} \right\}_{i=1}^{n}{xi}i=1n를 p(x)p(x)p(x)로 추출하고 I[fp]I[fp]I[fp]를 다음과 같이 근사한다.
Xi∼p(x)I[fp]=Ip[f]≈1n∑if(xi)
X_{i} \sim p(x) \qquad I[fp] = I_{p}[f] \approx \dfrac{1}{n}\sum\limits_{i}f(x_{i})
Xi∼p(x)I[fp]=Ip[f]≈n1i∑f(xi)
다시말해 1.은 f(x)p(x)f(x)p(x)f(x)p(x)를 균등분포로 샘플링하여 평균을 구한 것이고, 2.는 f(x)f(x)f(x)를 p(x)p(x)p(x)로 샘플링하여 평균을 구한 것이다. 이 둘 중 분산이 더 작은 것은 1.이다. I=I[fp]=I[fp]I = I[fp] = I[fp]I=I[fp]=I[fp]라고 간단히 표기하자.
1.의 경우
σ12=Var[fp]=E[(fp−I)2]=∫(fp−I)2dx=∫(fp)2dx−2I∫fpdx+I2∫dx=∫(fp)2dx−2I2+I2=∫(fp)2dx−I2
\begin{align*}
\sigma_{1}^{2} = \Var [fp]
&= E \left[ (fp - I)^{2} \right] \\
&= \int (fp - I)^{2} dx \\
&= \int (fp)^{2} dx - 2I\int fp dx + I^{2}\int dx\\
&= \int (fp)^{2} dx - 2I^{2} + I^{2}\\
&= \int (fp)^{2} dx - I^{2}\\
\end{align*}
σ12=Var[fp]=E[(fp−I)2]=∫(fp−I)2dx=∫(fp)2dx−2I∫fpdx+I2∫dx=∫(fp)2dx−2I2+I2=∫(fp)2dx−I2
2.의 경우
σ22=Var[f]=Ep[(f−I)2]=∫(f−I)2pdx=∫f2pdx−2I∫fpdx+I2∫pdx=∫f2pdx−2I2+I2=∫f2pdx−I2
\begin{align*}
\sigma_{2}^{2} = \Var [f]
&= E_{p} \left[ (f - I)^{2} \right] \\
&= \int (f - I)^{2}p dx \\
&= \int f^{2}p dx - 2I\int fp dx + I^{2}\int pdx\\
&= \int f^{2}p dx - 2I^{2} + I^{2}\\
&= \int f^{2}p dx - I^{2}\\
\end{align*}
σ22=Var[f]=Ep[(f−I)2]=∫(f−I)2pdx=∫f2pdx−2I∫fpdx+I2∫pdx=∫f2pdx−2I2+I2=∫f2pdx−I2
그런데 0≤p≤10 \le p \le 10≤p≤1이므로, f2p≥f2p2f^{2}p \ge f^{2}p^{2}f2p≥f2p2이다. 따라서
σ12≤σ22
\sigma_{1}^{2} \le \sigma_{2}^{2}
σ12≤σ22