logo

몬테카를로 방법 📂머신러닝

몬테카를로 방법

정의

쉽게 말해서 몬테카를로 방법Monte-Carlo method이란, 무작위로 많이 해보는 것이다.

설명

단순한 방법이지만, 많이 해보는 것만큼이나 쉽고 확실한 방법은 잘 없다. 물론 쉽다는 것은 컴퓨터를 활용할 때의 얘기이다. 몬테카를로는 모나코 북부의 카지노와 호텔이 유명한 지역의 이름이다. '몬테카를로 방법'이라는 이름도 몬테카를로의 몬테카를로 카지노에서 따온 것이다. 몬테카를로 방법의 유명한 예제 중 하나는 무작위 추출로 원주율을 구하는 것이다.

원주율 구하기

Setup.png

위 그림과 같이 반지름이 $1$인 원과 이를 외접하는 한 변의 길이가 $2$인 정사각형을 생각해보자. 정사각형의 넓이는 $2 \times 2 = 4$, 원의 넓이는 $\pi \cdot 1^{2} = \pi$이므로,

$$ \frac{\pi}{4} = \dfrac{\includegraphics[height=1.5em]{https://freshrimpsushi.com/community/data/editor/2304/2175452097_1682457480.9206.png}}{\includegraphics[height=1.5em]{https://freshrimpsushi.com/community/data/editor/2304/2175452097_1682457480.9073.png}} = \frac{\includegraphics[height=1.5em]{https://freshrimpsushi.com/community/data/editor/2304/2175452097_1682457480.9157.png}}{\includegraphics[height=1.5em]{https://freshrimpsushi.com/community/data/editor/2304/2175452097_1682457481.1163.png}} \implies \pi = 4 \frac{\includegraphics[height=1.5em]{https://freshrimpsushi.com/community/data/editor/2304/2175452097_1682457480.9157.png}}{\includegraphics[height=1.5em]{https://freshrimpsushi.com/community/data/editor/2304/2175452097_1682457481.1163.png}} $$

따라서 $[0, 1] \times [0, 1]$의 공간에서 균등분포로 무작위 추출을 시행하여 얻은 전체 표본 중에서 단위원 내에 있는 점의 비율에 $4$를 곱하면 $\pi$의 근사값을 구할 수 있다. 당연하게도 표본을 많이 뽑을 수록 실제 $\pi$ 값에 가까워질 것이다. 줄리아로 구현하여 실제로 계산해보면,

using Distributions

function MC(n)
    x = rand(Uniform(0,1),n)
    y = rand(Uniform(0,1),n)
    z = x.^2 + y.^2
    return 4*sum(z.<=1)/n
end

julia> MC(100)
3.32 

julia> MC(1000)
3.184

julia> MC(10000)
3.1504

julia> MC(100000)
3.1394

같이보기