ベイズ推定とMCMC(マルコフ連鎖モンテカルロ法)の概要
ベイズ推定とは、ベイズの定理を用いて、事前分布と観測データに基づいて未知のパラメータを推定する統計的手法であり、これをもう少し詳しく述べると、事前分布、尤度関数、そしてベイズの定理を組み合わせることで、事後分布を求め、さらにその事後分布からパラメータの事後平均や事後分散などの統計量を計算する手法であるということができる。
ベイズ推定は、最尤推定法に比べて、データ数が少ない場合やパラメータが複雑な場合でも有効な手法であり、信号処理や画像処理、自然言語処理など様々な分野で、ベイズ推定を用いたモデルが提案されている。また、ベイズ推定は、機械学習や深層学習においても重要な手法の一つであり、特に、ベイズ的ニューラルネットワークやベイズ最適化などの研究が進んでいる。
ベイズ推定によるパラメータ推定では、事前分布によって事後分布の形が変化するため、適切な事前分布を選ぶことが重要であり、それらの事後分布を推定する手法としては、マルコフ連鎖モンテカルロ法(MCMC)や変分推論などが利用される。
マルコフ連鎖モンテカルロ法(MCMC)は、確率分布からサンプルを生成するための一種のシミュレーション手法です。MCMCは、大きな確率分布から効率的にサンプルを得るために開発された手法で、ベイズ推定や”統計物理学と人工知能技術への応用“で述べている統計物理学、機械学習などの分野で広く用いられています。
MCMCは、状態空間モデルを用いて確率的な遷移を行うことで、目的とする確率分布からのサンプリングを実現します。具体的には、現在の状態から確率的に次の状態を選択することで、一定の確率で目的の分布からのサンプルを得ることができます。このとき、現在の状態から次の状態を選択する確率が、目的の分布に比例するように設計されます。この確率分布を「提案分布」と呼びます。
MCMCの一般的な手順は、以下の通りです。
- 初期状態を設定する。
- 現在の状態から、提案分布に従って次の状態をサンプリングする。
- 次の状態が目的の分布に従っている確率を計算する。
- 現在の状態と次の状態を比較して、次の状態を受け入れるか否かを決定する。
- 受け入れた場合、次の状態を現在の状態として採用する。そうでない場合は現在の状態を維持する。
- 上記2-5を一定回数繰り返すことで、目的の分布からのサンプルを得る。
MCMCは、提案分布の設計やサンプリングの回数など、いくつかのパラメータを調整する必要があります。また、MCMCは、適切な提案分布を設計することで、非常に高次元の確率分布からも効率的にサンプリングを行うことができます。
ベイズ推定は、様々な分野で幅広く用いられています。以下にいくつかの適用事例を挙げてみます。
- 医療:医療においては、病気の診断や治療にベイズ推定が用いられます。例えば、がんの診断や治療において、病気の進行確率や治療効果の確率を推定するために使用されます。
- 機械学習:機械学習の分野では、ベイズ推定を用いて、モデルパラメータの確率分布を推定し、モデルの不確実性を評価することができます。また、ベイズ最適化によって、ハイパーパラメータの最適化を行うことができます。
- 言語処理:自然言語処理の分野では、ベイズ推定を用いて、単語の意味や文の構造の解析を行うことができます。また、機械翻訳の精度向上にもベイズ推定が用いられます。
- 証券市場:株式市場においては、ベイズ推定を用いて、企業の業績や市場環境の変化に対する株価の変化を予測することができます。
- ロボティクス:ロボティクスの分野では、センサーデータからの位置推定や物体認識にベイズ推定が用いられます。また、ロボットの行動計画において、環境の変化に応じた適応的な行動を決定するためにも使用されます。
これらは、あくまで一例であり、ベイズ推定は、様々な分野で広く用いられています。ベイズ推定は、不確実性のある問題の解決に有用であり、確率的なアプローチを採用することで、より信頼性の高い結果を得ることができます。
ベイズ推論とMCMCのフリーソフト
ベイズ統計とはデータだけではなく、データの背後にある要素も確率的に生成されるというものとなる。これは以前述べた「サイコロ(ある確率でデータを生成するもの)を製造する装置がある確率でゆらぎを持ってサイコロを製造する」というイメージを持つと分かりやすい。つまり確率分布にメタ的な確率を適用したモデリングとなる。
このベイズモデリングを計算するためには、確率の計算を行う必要がある。それらに対するアプローチとしてMCMC(Markov Chain Monte Carlo Method;マルコフ連鎖モンテカルロ法)がある。これは多変量の確率分布からサンプルを抽出する(乱数を発生する)ためのアルゴリズムの一つとなる。
ベイズ推定として複雑な確率分布を計算しようとすると、推定すべきパラメータの数が多くなり、MCMC等の手法で計算しようとすると、計算コストが大きくなってしまう課題が生じる。これを解決するため、「似た様なパラメーター」たちに共通の制約を与えることでパラメータの数を限定する「階層ベイズ」の手法が用いられる。
また時系列データに確率モデルを適用する際には、一般的な確率モデルでは多数のサンプルを対象としてそれぞれが独立であるという仮定の元で考慮するのに対して、時系列データでは一つのサンプルの変化を見ていくため自己相関性を考慮することが必要となる。
実際のツールを使ったベイズ推定としてはStanを使ったアプローチがある。StanはMCMCを使ってサンプルデータを生成する、いわば乱数的なシミュレーションの一種である。通常の機械学習は主にモデルと実データのギャップを最小化するために関数を最適化していくのに対して、モデリング系は最初に設定したモデルのパラメータをシミュレーションしながら最適化していく為、学習データが少ないケースで強みを発揮する。
ベイズ統計とは通常の統計学と比較すると「あまり理屈のいらない簡単な統計学」と定義されることもある。それらがシンプルになる理由としては「普通の統計学(頻度主義の統計学)よりも仮定が多い」というものが根拠の一つとなる。
この仮定とはどのようなものなのか、というとベイズ統計では、データだけではなく、データの背後にある要素も確率的に生成されるというものとなる。これは以前述べた「サイコロ(ある確率でデータを生成するもの)を製造する装置がある確率でゆらぎを持ってサイコロを製造する」というイメージを持つと分かりやすい。つまり確率分布にメタ的な確率を適用したものとなる。
MCMCは「マルコフ連鎖モンテカルロ法」(Markov Chain Monte Carlo Method)の力で、多変量の確率分布からサンプルを抽出する(乱数を発生する)ためのアルゴリズムの一つとなる。
MCMCは単なる計算方であり、タスクを解くためには、MCMCで解ける様に問題を整理する作業(統計モデリング)が必要となる。算数の文章題で、加減乗算の計算そのものより「何を計算するか」が肝心なのと同様なものとなる。
最小二乗法で曲線をあてはめたり、最尤法で確率分布のパラメータを推定するのに必要なものは「行列の分解」や「最適化」となる。それらは目的が「一つの決まった曲線や数字」(点推定値)を直接求めるものである為で、それに対してベイズ統計では「答」はまず「事後分布」という「分布」の形で与えられる。そこで、分布からのサンプルを生成するMCMCとの相性が抜群となる。点推定値や誤差、予測区間など、最終的に必要な情報はMCMCで生成した多数のサンプルから求める。
複雑なデータをあつかう統計モデルは、推定するパラメータ数が増えるが、階層ベイズモデルでは「似た様なパラメーター」たちに共通の制約を与えるのが特徴となる。このおかけで、たとえばデータの個数よりパラメーターの個数が多い場合でも、統計モデルをうまくそのデータに当てはめることができる。
さらにその様なモデルを作った場合、実際のデータを使うことでモデルのパラメータを推定する手法がいくつか提案されている。その手法のうちの一つがマルコフ連鎖モンテカルロ(MCMC)法となる。
ここでそれらを実際に考えるために、以下の様な、12歳の男子小学生たち(のべ108人)の身長を測定し、一年後に2回目の測定をおこなった架空のデータを想定する。
通常の統計解析では、データが独立にサンプリングされたことを前提としている。従って、データが独立ではなく、データ間になんらかの構造がある場合には、それに対応した統計解析を行う必要がある。例えば、いくつかのグループからデータが取られていて、グループ間でデータの値に差がある様な場合は、グループをランダム効果とした混合モデルが使われる。同様に、データ内に時間的な構造がある場合や、空間的な構造がある場合には、それを考慮した統計的手法が必要になる。
気温の変化や株価の変化等、時間的に変化するデータ、つまり時系列データを扱う場面では、ある時点の測定値とその前後の測定値との間に相関(自己相関)があることが珍しくない。この様なデータは時間的に独立ではなく、独立なものとして扱う統計手法を適用すると誤った結論を導き出すおそれがある。
このため、時系列データを扱うさまざまな統計的手法が開発され、実際に利用されている。状態空間モデルと呼ばれるモデルもそのような手法の一つとなる。状態空間モデルの特徴は、時系列に沿って変化する「状態」から「観測値」が生成されると考えるところにある。
- MCMCソフトを利用する
- STAN入門
- RでのSTANを使ったベイズ推定
実際のツールを使ったものとしてはStanを使ったアプローチがある。StanはMCMCを使ってサンプルデータを生成する、いわば乱数的なシミュレーションの一種である。通常の機械学習は主にモデルと実データのギャップを最小化するために関数を最適化していくのに対して、モデリング系は最初に設定したモデルのパラメータをシミュレーションしながら最適化していく為、学習データが少ないケースで強みを発揮する。
実際にStanを使うには、Rの’RSatn’と言うツールをインストールして利用する。
- pythonのMCMCライブラリ
- MCMCソフトウェアの比較
- 時間・空間を含むベイズモデルのいろいろな表現形式
コメント
[…] ベイズ推論とMCMCのフリーソフト […]
[…] 機械学習技術サマリー 人工知能技術サマリー デジタルトランスフォーメーション技術サマリー 確率的生成モデルサマリー ベイズ推論とMCMCのフリーソフト […]
[…] 機械学習技術サマリー 人工知能技術サマリー ベイズ推論とMCMCのフリーソフト デジタルトランスフォーメーション技術サマリー 確率的生成モデルサマリー […]
[…] 機械学習技術 人工知能技術 デジタルトランスフォーメーション技術 確率的生成モデル ベイズ推論とMCMCのフリーソフト マルコフ連鎖モンテカルロ法 […]
[…] 機械学習技術サマリー 人工知能技術サマリー デジタルトランスフォーメーション技術サマリー 確率的生成モデルサマリー ベイズ推論とMCMCのフリーソフト マルコフ連鎖モンテカルロ法サマリー […]
[…] ベイズ推論とMCMCのフリーソフト […]