機械学習に登場する「モンテカルロ法」という数値計算の手法です。この方法で円周率を求める事例を見れば、どんな方法か実感できます。難しい数式であっても、体感してみると理解し易くなります。先ずは手を動かしてみましょう。
資料はこちら → モンテカルロ法
Excelファイルはこちら → モンテカルロ法
p.1 乱数(x、y)で打った点が、半径r=1の円内の点数n個と外の点数N個の比で円周率を算出します。その比が、円と正方形の面積比と同じであるとして円周率πを算出します。 乱数はRAND()という関数を用います。0~1の乱数が得られます。 RAND()から0.5を差し引いて2倍すると-1~1の乱数が得られます。この値をxとyにしてx2+y2を計算して、1以下になるセルに1、1を超えるセルを0にします。 あとは、数をカウントします。総数はCOUNT(〇:〇)で〇:〇に試行した範囲を指定します。 1となる数はCOUNTIF(〇:〇,1)とすると1のセルの数だけカウントしてくれます。
p.2 試行回数を100、200・・500・・1,000・・2,000回と実行した結果、上図のように点がプロットされ、求めた円周率は下図のように推移します。試行回数を増やすとばらつきはだんだん減少して3.141・・に近づいてきますね。
機械学習で乱数を用いる際に利用される方法です。