機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

モンテカルロ積分

モンテカルロ積分

台形公式は低次元の積分には有効ですが、高次元ではうまくいかないことが多いようです。

近似したい積分が、以下であるとします。

\begin{eqnarray}
I=\int_{E}f(x)p(x){\rm d}x\tag{1}
\end{eqnarray}

 X_1,\ldots,X_Mが確率分布p(x)に従う時、大数の法則により近似解Jは次のように書けます。

\begin{eqnarray}
J=\frac{1}{M}\sum_{m=1}^Mf(X_m)\tag{2}
\end{eqnarray}

このように積分を乱数で代用する近似法をモンテカルロ積分法といいます。

モンテカルロ積分法の実験

区間[-1,1]上に関数f(x)を定めます。

\begin{eqnarray}
f(x)=(\cos(15x)+\sin(7x))^2\tag{3}
\end{eqnarray}

(3)のグラフは以下の図で表されます。

f:id:olj611:20210430195154p:plain:w400

先に解析解Iを計算してみます。

\begin{eqnarray}
I&=&\int_{-1}^1f(x){\rm d}x\\
&=&\int_{-1}^1(\cos(15x)+\sin(7x))^2\\
&=&\left[x-\frac{1}{28}\sin(14x)+\frac{1}{60}\sin(30x)+\frac{1}{8}\cos(8x)-\frac{1}{22}\cos(22x)\right]_{-1}^1\\
&=&1.8963079442663187\cdots\tag{4}
\end{eqnarray}

次にモンテカルロ積分法で近似を行います。

まず、Iを変形してみます。

\begin{eqnarray}
I&=&\int_{-1}^1f(x){\rm d}x\\
&=&2\int_{-1}^1f(x)\frac{1}{2}{\rm d}x\\
&=&2\int_{-1}^1f(x)p(x){\rm d}x\tag{5}\\
\end{eqnarray}

(5)より、区間[-1,1]の一様分布に従う X_1,\ldots,X_Mを使って、近似解Jは次のように書けます。

\begin{eqnarray}
J=\frac{2}{M}\sum_{m=1}^Mf(X_m)\tag{6}
\end{eqnarray}

プログラムを使って、近似解JMを変更して求めてみました。
青の点線が解析解でオレンジ色が近似解です。横軸がNで、縦軸が解析解及び近似解の値です。

f:id:olj611:20210430211345p:plain:w400

Nがある程度大きくなると、IJは近い値を取ることが分かります。

偉人の名言

f:id:olj611:20210430211622p:plain:w300
天才とは努力する凡人のことである。
アインシュタイン

参考文献

モンテカルロ統計計算

動画

なし

目次へ戻る