ものづくり分野における「モンテカルロ法」の活用(その2)

更新日

投稿日

3.モンテカルロ法の適用事例  [4]

 それではさっそく、具体的な計算例について説明していきます。ここでは技術者にもなじみの深い円周率πの数値計算を扱います。πの計算はスーパーコンピュータの典型的なベンチマーク問題ですが(2020年現在の記録は31兆桁)、高度な数式と複雑なプログラムと膨大な計算機リソースが必要です。これに対してMC法ならば、実用上必要な精度(例えば誤差1%程度)の近似値をPCとExcelで簡単に計算できるというメリットがあります。

 MC法のおおまかな流れは

  1. 数値モデルの作成
  2. 乱数の生成
  3. 数値解の推定
     という3ステップに分けられます。

 3.1 数値モデルの作成

 最初に辺の長さが1の正方形とそれに内接する四半分の円を考えます(図3-1)。四半分の円の面積Sは式3-1で求められます。

 S = (π×1^2)/ 4 = π/4           (式3-1)

 正方形における四半分の円の面積比Rは、正方形の面積は1なので式3-2で求められます。

 R = S/1 = π/4                             (式3-2)

 そこで、この正方形の中にランダムにn個のサンプル点を落とし、そのうちm個が四半分の円の中に落ちたとすれば式3-3が成立します。

 m/n ≒ R = π/4                           (式3-3)

 よって、式3-4により、πの値が推定できます。

    π ≒ 4 m/n                                     (式3-4)

図3-1:πの数値モデル

 3.2 乱数の生成

 次に乱数の生成について説明します。今回は技術者に馴染みの深いExcelを用いているので、0~1の一様乱数を発生する組み込み関数RAND( )を使ってn組のサンプル点(x,y)を生成して、原点0との距離rを式3-5で計算します。

    r^2 = x^2 + y^2                          (式3-5)

 ここで、式3-6が成立しているとき、その点(x,y)は円の内部に落ちていることになりますので、これにより円内に落下したサンプル数m個を決定できます。

    r^2 = x^2 + y^2 ≦ 1                 (式3-6)

 

 3.3 数値解の推定

 図3-2にランダムに100個のサンプル点を発生させた場合のシミュレーション結果の一例を示します。この場合、円内の点は75個だったのでπの推定値とその相対誤差はそれぞれ、式3-7、式3-8で計算できます。

    π ≒ 4×75/100=3.00                         (式3-7)

   相対誤差 = (3.00-3.14)/3.14 = -4.46(%)             (式3-8)

図3-2:モンテカルロ法によるπの推定事例(サンプル点100個のうち、75個が円内に落下)

 3.4 数値解の精度評価

 上記3.3と同様の操作を20回試行した場合の推定値の推移を図3-3(青線:推定値、赤線:真値)に、その相対誤差の推移を図3-4に示します。πの推定値は試行のたびに大きく変動しており、その相対誤差は最大15%以上にもなっています。もっと精度が必要な場合(例えば相対誤差を1%以下)には、どうすれば良いでしょうか。

 MC法の誤差Errは、統計理論の「中心極限定理」*)より、サンプル数nの平方根に反比例することが分かっています。

   Err ∝ 1/√n                                            (式3-9)

 従って、誤差を1/10以下にするためには、サンプル数nを100倍以上に増やす必要があり、上記の例題ではn=100個×100倍=10,000個以上になります。もしこのようにサンプル数を増やすのが困難な場合(Excelで10,000個のサンプル点を発生させるのはかなり大変です)、上記の「中心極限定理」に基づく統計処理により精度向上が可能になります。具体的には図3-3の20回の試行結果のπの推定値を平均すると、π≒3.148(相対誤差0.204%)と大幅に精度が向上します。この統計処理は既に計算済みの結果を用いるので、実質のサンプル数2,000個(100個×試行回数20回)で10,000個と同等以上の成果(効率にして10,000/2,000=5倍)が得られることになり非常に有効な手法ですので、ぜひ覚えておいてください。

 *)中心極限定理[5]:平均μ、標準偏差σの分布の中から取り出されたn個の標本の平均値は、もとの分布がどんな分布であっても、nが大きくなるに従って平均μ、標準偏差σ/√nの正規分布に近づくという非常に強力な統計学の定理です。

図3-3:πの推定値の推移(ランダム点100個、試行回数20回)

   図3-4:πの相対誤差の推移(ランダム点100個、試行回数20回)

4.モンテカルロ法の今後の展開  [6]

 一般にMC法の適用領域は、①決定論的問題と②確率論的問題に分類されますが、第3章のπの推定は①の事例です。①は解析的に解くことができるが、式が複雑で計算量が多い場合、あるいは式そのものを立てるのが困難な際、確率モデルに置き換えて近似値を計算する手法です。それに対して②は現象そのものが確率的で、その発生確率を規定(あるいは仮定)することで解を求める手法といえます。

 最近はMC法を②確率論的問題に適用する事例の研究が盛んになっており、特に人工知能(AI:Artificial Intelligence)の分野で、強化学習やマルコフ連鎖モンテカルロ法(MCMC:Markov Chain Monte Carlo)においてMC法を適用する事例が数多く紹介されています。このようにMC法は計算機パワーの発達とともに、今後ますます複雑な現象の解明に不可欠のツールになっていくと思います。

5.まとめ

 本稿ではMC法について、ものづくり技術者向けに解説しました。最初にMC法の概要として、その歴史と従来の適用分野について説明しました。次にMC法の具体例としてπの推定問題を取り上げ、計算手順と計算結果および精度向上手法について解説しました。最後にMC法の今後の展開、特にAI分野におけるMC法の適用範囲の拡大について述べました。本稿がものづくり業務の参考になれば幸いです。

 

参考文献

[4] 大村:「シミュレーションのはなし」,日科技連(1991). 
[5] 矢野ほか:「モノグラフ 公式集 5訂版」,科学新興新社(1996).
[6] 大森:「マルコフ連鎖モンテカルロ法の最近の展開」,日本統計学会誌 31(3), 305-344(2001).

...

3.モンテカルロ法の適用事例  [4]

 それではさっそく、具体的な計算例について説明していきます。ここでは技術者にもなじみの深い円周率πの数値計算を扱います。πの計算はスーパーコンピュータの典型的なベンチマーク問題ですが(2020年現在の記録は31兆桁)、高度な数式と複雑なプログラムと膨大な計算機リソースが必要です。これに対してMC法ならば、実用上必要な精度(例えば誤差1%程度)の近似値をPCとExcelで簡単に計算できるというメリットがあります。

 MC法のおおまかな流れは

  1. 数値モデルの作成
  2. 乱数の生成
  3. 数値解の推定
     という3ステップに分けられます。

 3.1 数値モデルの作成

 最初に辺の長さが1の正方形とそれに内接する四半分の円を考えます(図3-1)。四半分の円の面積Sは式3-1で求められます。

 S = (π×1^2)/ 4 = π/4           (式3-1)

 正方形における四半分の円の面積比Rは、正方形の面積は1なので式3-2で求められます。

 R = S/1 = π/4                             (式3-2)

 そこで、この正方形の中にランダムにn個のサンプル点を落とし、そのうちm個が四半分の円の中に落ちたとすれば式3-3が成立します。

 m/n ≒ R = π/4                           (式3-3)

 よって、式3-4により、πの値が推定できます。

    π ≒ 4 m/n                                     (式3-4)

図3-1:πの数値モデル

 3.2 乱数の生成

 次に乱数の生成について説明します。今回は技術者に馴染みの深いExcelを用いているので、0~1の一様乱数を発生する組み込み関数RAND( )を使ってn組のサンプル点(x,y)を生成して、原点0との距離rを式3-5で計算します。

    r^2 = x^2 + y^2                          (式3-5)

 ここで、式3-6が成立しているとき、その点(x,y)は円の内部に落ちていることになりますので、これにより円内に落下したサンプル数m個を決定できます。

    r^2 = x^2 + y^2 ≦ 1                 (式3-6)

 

 3.3 数値解の推定

 図3-2にランダムに100個のサンプル点を発生させた場合のシミュレーション結果の一例を示します。この場合、円内の点は75個だったのでπの推定値とその相対誤差はそれぞれ、式3-7、式3-8で計算できます。

    π ≒ 4×75/100=3.00                         (式3-7)

   相対誤差 = (3.00-3.14)/3.14 = -4.46(%)             (式3-8)

図3-2:モンテカルロ法によるπの推定事例(サンプル点100個のうち、75個が円内に落下)

 3.4 数値解の精度評価

 上記3.3と同様の操作を20回試行した場合の推定値の推移を図3-3(青線:推定値、赤線:真値)に、その相対誤差の推移を図3-4に示します。πの推定値は試行のたびに大きく変動しており、その相対誤差は最大15%以上にもなっています。もっと精度が必要な場合(例えば相対誤差を1%以下)には、どうすれば良いでしょうか。

 MC法の誤差Errは、統計理論の「中心極限定理」*)より、サンプル数nの平方根に反比例することが分かっています。

   Err ∝ 1/√n                                            (式3-9)

 従って、誤差を1/10以下にするためには、サンプル数nを100倍以上に増やす必要があり、上記の例題ではn=100個×100倍=10,000個以上になります。もしこのようにサンプル数を増やすのが困難な場合(Excelで10,000個のサンプル点を発生させるのはかなり大変です)、上記の「中心極限定理」に基づく統計処理により精度向上が可能になります。具体的には図3-3の20回の試行結果のπの推定値を平均すると、π≒3.148(相対誤差0.204%)と大幅に精度が向上します。この統計処理は既に計算済みの結果を用いるので、実質のサンプル数2,000個(100個×試行回数20回)で10,000個と同等以上の成果(効率にして10,000/2,000=5倍)が得られることになり非常に有効な手法ですので、ぜひ覚えておいてください。

 *)中心極限定理[5]:平均μ、標準偏差σの分布の中から取り出されたn個の標本の平均値は、もとの分布がどんな分布であっても、nが大きくなるに従って平均μ、標準偏差σ/√nの正規分布に近づくという非常に強力な統計学の定理です。

図3-3:πの推定値の推移(ランダム点100個、試行回数20回)

   図3-4:πの相対誤差の推移(ランダム点100個、試行回数20回)

4.モンテカルロ法の今後の展開  [6]

 一般にMC法の適用領域は、①決定論的問題と②確率論的問題に分類されますが、第3章のπの推定は①の事例です。①は解析的に解くことができるが、式が複雑で計算量が多い場合、あるいは式そのものを立てるのが困難な際、確率モデルに置き換えて近似値を計算する手法です。それに対して②は現象そのものが確率的で、その発生確率を規定(あるいは仮定)することで解を求める手法といえます。

 最近はMC法を②確率論的問題に適用する事例の研究が盛んになっており、特に人工知能(AI:Artificial Intelligence)の分野で、強化学習やマルコフ連鎖モンテカルロ法(MCMC:Markov Chain Monte Carlo)においてMC法を適用する事例が数多く紹介されています。このようにMC法は計算機パワーの発達とともに、今後ますます複雑な現象の解明に不可欠のツールになっていくと思います。

5.まとめ

 本稿ではMC法について、ものづくり技術者向けに解説しました。最初にMC法の概要として、その歴史と従来の適用分野について説明しました。次にMC法の具体例としてπの推定問題を取り上げ、計算手順と計算結果および精度向上手法について解説しました。最後にMC法の今後の展開、特にAI分野におけるMC法の適用範囲の拡大について述べました。本稿がものづくり業務の参考になれば幸いです。

 

参考文献

[4] 大村:「シミュレーションのはなし」,日科技連(1991). 
[5] 矢野ほか:「モノグラフ 公式集 5訂版」,科学新興新社(1996).
[6] 大森:「マルコフ連鎖モンテカルロ法の最近の展開」,日本統計学会誌 31(3), 305-344(2001).

   続きを読むには・・・


この記事の著者

安武 健司

(CAE+実験)×原理原則=ソリューション提案

(CAE+実験)×原理原則=ソリューション提案


「モンテカルロ法」の他のキーワード解説記事

もっと見る
ものづくり分野における「モンテカルロ法」の活用(その1)

1.モンテカルロ法~基本的アイデアは単純  モンテカルロ法(Monte Carlo・以下MC法)とは、乱数を活用した数値シミュレーションの手法です。...

1.モンテカルロ法~基本的アイデアは単純  モンテカルロ法(Monte Carlo・以下MC法)とは、乱数を活用した数値シミュレーションの手法です。...