モンテカルロ法
📂機械学習モンテカルロ法
定義
簡単に言うと、モンテカルロ法Monte-Carlo methodは、ランダムにたくさん試すことだ。
説明
シンプルな方法だが、たくさん試すことほど簡単で確実な方法はあまりない。もちろん、簡単とはコンピュータを使う場合の話だ。モンテカルロは、モナコ北部のカジノやホテルで有名な地域の名前だ。「モンテカルロ法」という名前もモンテカルロのカジノから取ったものだ。モンテカルロ法の有名な例の一つは、ランダム抽出で円周率を求めることだ。
円周率の求め方

1の半径を持つ円と、その外接する一辺の長さが2の正方形を考えよう。正方形の面積は2×2=4、円の面積はπ⋅12=πであるから、
4π=\includegraphics\includegraphics=\includegraphics\includegraphics⟹π=4\includegraphics\includegraphics
従って、[0,1]×[0,1]の空間で一様分布からのランダム抽出を実施し、得られた全てのサンプルの中で単位円内にある点の比率に4を乗じると、πの近似値を求めることができる。当然、サンプルをたくさん引くほど、実際のπ値に近くなるだろう。Juliaで実装し、実際に計算してみれば、
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
参照