様々な確率分布
【概要】
- よく使われる確率分布の紹介と実装例をまとめました
【目次】
はじめに
ベイズ推論についての書籍をいくつか読んでいて、なんとなく理解はできても具体的なイメージってつきにくくないですか?
ということで、実装して理解を深めたいと思います。
この記事では、ベイズ推論の中でよく使われる確率分布について、概要と実装例をまとめてみます。 参考にした書籍は、「ベイズ深層学習」です。
- 作者: 須山敦志
- 出版社/メーカー: 講談社
- 発売日: 2019/08/08
- メディア: 単行本
- この商品を含むブログを見る
間違いなどあったら指摘していただけると助かります。
本記事の範囲
本記事では、ベイズ深層学習の3章の内容をいくつか実装していきます。 当初は、よく出てくる確率分布の紹介とベイズ線形回帰まで一気に書くつもりだったんですが、確率分布の章が思いの外長くなってしまったため、記事を分割することにしました。
まず、確率分布とは何か?ということを考えた後に、よく使われる確率分布についてそのイメージを掴むために可視化してみます。
実装については、以下のjupyter notebookに載っています。なお、先に書いた通り、ベイズ線形回帰まで書こうと思ったので、以下のnotebookにはベイズ線形回帰まで載っています。
gist47ca094d0ee45af92eed3a8b9b3c09ec
確率分布
統計の分野においては、データはある確率分布から生成されると考えるのが基本です(統計をベースにしている「機械学習」も同じ)。
いつでも完全に同じデータが得られるような現象は稀です。 観測時の計測ノイズや本質的な揺らぎ(量子的な揺らぎ)を原因として、データは揺らぎます。 このような揺らぎを表現するための道具として確率分布を使います。
確率分布をパーツとして、解析したい問題(現象)をモデリングしていきます。 明示的に確率分布を組み合わせて構成したモデルを特に、「確率モデル」と呼ぶことが多い気がします(ここは言葉の理解が怪しいです)。 「機械学習」の文脈でよく使われる、線形回帰やニューラルネットワークも確率モデルとして扱うことができます。
では実際に、確率分布とはどのようなものがあるのかを図で確認してみます。
上記のnotebookには以下の8種類の分布を可視化するためのコードが書かれています。馴染みのある分布から聞いたことがない分布もあると思いますが、特にベイズ推論の中ではこれらの分布は頻出します。
1次元ガウス分布(正規分布)
ガウス分布は正規分布とも呼ばれます。 この分布は最も有名であり、また、最も良く使われる連続量の確率分布です。
ガウス分布は多くのノイズ(ばらつき)のモデルに利用されています。 また、学力の程度を示す指標の一つである「偏差値」も試験の点数がガウス分布に従うと仮定して算出されています*1。 さらに、ガウス分布でモデリングしているとは気付かずに使っている場合も多いです*2。
ここで、は1次元の実数値で、分布の中心を表します。は分散と呼ばれ、分布の広がりを定義します。
可視化してみると、以下のような形をしています。密度関数の式からも明らかに、平均から左右に指数的に減少することがわかります。
上記の図を描きだすためのコードは、notebookのセル番号[2]にあります。 また、ガウス分布は、一様乱数から生成することができます(Box-Mullar法)。 Box-Mullar法によって一様乱数から生成するためのコードをセル番号[3]に記載しています。
多次元ガウス分布
上記のガウス分布を多変量に拡張した分布です。多変量なので、D次元の実数ベクトル()を生成する確率分布です。
定義式は以下の通りです。
ここで、はD次元の平均ベクトルで、多変量の各軸の中心を表します。 は共分散行列で、各変量間の関係性を表現しています。
二次元のガウス分布を可視化してみます。
上記の図を描きだすためのコードは、notebookのセル番号[4]にあります。 セル番号[4]は、scipyを使って2次元ガウス分布からの乱数を生成していますが、独立な正規分布に従う乱数を利用して変数変換することでライブラリを利用せずに多変量ガウス分布に従う乱数を生成することができます(参考:ガウス過程と機械学習)。 実際に独立なガウス分布から生成した乱数を使って2次元ガウス分布に従う乱数を生成したコードはセル番号[5]に記載しています。
二項分布(ベルヌーイ分布)
コイントスのように、状態が二つ(表、裏)だけで、各試行が独立でその確率は一定であるような試行はベルヌーイ試行と呼ばれています。 ベルヌーイ試行をN回行って、一つの状態が生じた回数x(コイントスの場合は表が出た回数など)が従う確率分布を二項分布と呼びます。
ここでは、一方の状態が生じる確率です(他方の確率はとなります)。 なお、N=1の場合を特別に「ベルヌーイ分布」と呼びます。
二項分布のNとを変えて可視化してみます。
上記の図を描きだすためのコードは、notebookのセル番号[6]です。
多項分布(カテゴリ分布)
二項分布は状態が二つだけの分布でした。 例えば、サイコロの出る目や、多クラス分類問題を扱いたい場合には、多次元の分布を考える必要があります。 そこで、二項分布を多次元に拡張した分布として多項分布があります。
ここで、はK種類の状態それぞれの取りうる確率()を表します。 Mは全体の試行回数です。
確率を変えてK=3の場合の多項分布を可視化してみます。
上記の図を描きだすためのコードは、notebookのセル番号[7]です。
上記の図はK=3(3次元)の確率変数ですが、xの総和はMと等しくなるので、二つの状態が確定すれば3つ目の状態も確定します。そのため、二次元のヒートマップで確率分布を表すことができます。また、確率の総和は1であるため、上三角の領域のみに値が存在します。
ポアソン分布
二項分布はN回の試行の中で事象が発生する回数xについての確率分布でした。 世の中には明確に試行回数が決められないものも多くあります。例えば、交通事故の発生件数など*3。 このように何らかの事象の発生回数xについての確率分布としてポアソン分布というものがあります。
二項分布について、発生確率が極度に小さく試行回数無限大の極限でポアソン分布が導出できます(だからといって試行回数が極端に多い現象にしか使えないという訳ではないですよ)(参考:データ解析のための統計モデリング入門)。
ここで、は事象の平均発生回数を表すパラメータです。
パラメータを変えてみた場合のポアソン分布を可視化してみます。
上記の図を描きだすためのコードは、notebookのセル番号[8]です。
ベータ分布
ここまで、ガウス分布、離散確率分布といった比較的馴染み深い確率分布を紹介してきました。 次に、ベータ分布という分布を紹介します。 この分布は、0から1の範囲の実数を生成するための確率分布です。
ここで、a,bはそれぞれハイパーパラメータです。はガンマ関数と呼ばれる関数です(ここでは扱いません)。
ベータ分布は、一般には馴染みが薄い分布だと思います。しかし、ベイズ推論の分野では以下の3つの理由から非常によく現れます。
- 0から1の範囲の変数を生成するという性質のため、「確率」をモデリングするには絶好の分布
- ベータ分布はaとbという二つのパラメータを持ちます。この二つのパラメータを調整することで様々な形状の分布を生成することができます。
- 上式の正規化項を除いた部分に注目すると、この部分は二項分布と似ています。ベータ分布は二項分布(ベルヌーイ分布)の「共役事前分布」と呼ばれており、二項分布と掛け合わせることでベータ分布が生成されるという特別な関係があります。
特に3つ目の理由が重要で、この関係を利用することで推論計算を解析的に解くことができます。
パラメータを変えてみた場合のベータ分布を可視化してみます。
a,bのパラメータを調整することで、様々な形状になることがわかります。 上記の図を描きだすためのコードは、notebookのセル番号[9]です。
ディリクレ分布
二項分布を一般化したものが多項分布でしたが、ベータ分布を多次元に拡張した分布がディリクレ分布です。 ベータ分布の拡張ということからもわかるように、ディリクレ分布は多項分布の共役事前分布となります。
ディリクレ分布は、K次元のベクトルを出力します。 それぞれの要素は、、かつ、となります。
上記の図を描きだすためのコードは、notebookのセル番号[10]です。
ガンマ分布
ガンマ分布は正の実数()を生成する確率分布です。 ガンマ分布はそれ自体を生成モデルとして扱う場合もありますし、ガンマ分布のパラメータやポアソン分布のパラメータの共役事前分布として使われることもあります。
ここで、aはハイパーパラメータです。
上記の図を描きだすためのコードは、notebookのセル番号[11]です。
おわりに
ということで、よく使われる確率分布を8種類紹介し、それらの概形を把握するために可視化してみました。
結局、これだけでは何が嬉しいのかはわからないと思うのですが、これらの分布を組み合わせてモデルを構築し、様々な現象に起因するデータを解析していくことになります。
確率分布を利用した分析の最もシンプルな例として、チョコボールのエンゼル出現確率を二項分布や多項分布でモデル化するというものが挙げられます(私が書いている以下の記事参照)。
私自身もまだ勉強中なので、他に良い例を紹介できないのですが、今後新たに実験をしたらその結果を紹介したいと思います。
おまけ
ベイズ深層学習の輪読会やってます。興味のある方参加いただけたらと思います。
第1回目の資料はこちら
www.slideshare.net
また、ここで紹介した確率分布を使った最もシンプルな例を以下の書籍(同人誌)にまとめています。もし興味があればポチっていただけると嬉しいです。
参考文献
- 作者: 須山敦志
- 出版社/メーカー: 講談社
- 発売日: 2019/08/08
- メディア: 単行本
- この商品を含むブログを見る
ガウス過程と機械学習 (機械学習プロフェッショナルシリーズ)
- 作者: 持橋大地,大羽成征
- 出版社/メーカー: 講談社
- 発売日: 2019/03/09
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
データ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC (確率と情報の科学)
- 作者: 久保拓弥
- 出版社/メーカー: 岩波書店
- 発売日: 2012/05/19
- メディア: 単行本
- 購入: 16人 クリック: 163回
- この商品を含むブログ (29件) を見る