ベイズ推定と機械学習入門【具体例でベイズ推定の雰囲気を知る編】

機械学習

DNNやLightGBMにデータを突っ込むだけで機械学習した気分になっていませんか?

私はそうでした。同時に、データを整形して、sklearnやlightgbmをインポートし、model.fit(X_train, y_train)するルーチンにどことなく退屈さを感じていました

そんな折に、こんな本を見つけました。

最短経路で平易に理解できる、今までにない入門書! ベイズ主義機械学習(ベイズ学習)の基本原理にのっとり、「モデルの構築→推論の導出」という一貫した手順でアルゴリズムの作り方を解説。どこまでも分かりやすい!

この本では、一般的な機械学習の本で説明されるようなDNNなどの有名なモデルにとりあえずデータを突っ込むのものではなく、自分でモデルを設計して、推論アルゴリズムを使って解を求めるアプローチが紹介されています。

これは面白そうだと思いました。

私自身はベイズと機械学習それぞれには馴染みがあるものの、確率モデルを構築してゴリゴリ推論するような手法は初心者なので、まっさらな気持ちで本書を進めていこうと思います。

「ベイズ推論」と「ベイズ推定」は基本的に同義

ところで、本のタイトルの「ベイズ推論」という言葉ですが、この本では以下のように定義されています。

ある同時分布が与えられたときに、そこから興味の対象となる条件付き分布や周辺分布を算出することを、本書ではベイズ推論(Bayesian inference, Bayesian reasoning)あるいは単に(確率)推論(inference)と呼ぶことにします。

ちなみに、同じような言葉で「ベイズ推定」というのがありますが、その定義はWikipediaによると以下のとおりです。

ベイズ推定(ベイズすいてい、: Bayesian inference)とは、ベイズ確率の考え方に基づき、観測事象(観測された事実)から、推定したい事柄(それの起因である原因事象)を、確率的な意味で推論することを指す。

どちらも英語ではBayesian inference。定義を見る限り、ベイズ推論の方が具体的な手順を指していますが、作業としてやることは同じように見受けられます。

もしかするとこの本の著者の方は何か特別な思い入れがあって「ベイズ推論」と呼んでおられるのかもしれませんが、ここでは「ベイズ推論」と「ベイズ推定」の違いはinferenceの訳し方だけで同義であるとみなして話を進めていきます。

「ベイズ推定」の考え方

今回は、簡単な例を使って、同時分布から条件付き分布を求める「ベイズ推定」の流れを見ていきましょう。

まず、ここに赤玉と白玉が複数個入った中身が見えない袋が1つあるとします。

赤玉と白玉の比率は未知であり、我々は赤玉の比率(パラメータ)$\theta \in (0, 1)$を知りたいとします。

袋の中を直接覗くのは禁止で、袋から玉を取り出して色を観測して袋に戻す試行を$N$ 回繰り返す操作のみが許されているとします。(観測値を$\bf{Y}=\{y_1, ..., y_N\}$とします。)

大前提として、観測値は確率変数[1]値が試行ごとに確率的に決まる変数の実現値だと考えます。
つまり、ここでは手元の観測データは$\theta$をパラメータとする確率分布$P(\bf{Y}|\theta)$に従って生み出されているとみなしているということです。

ここからどのようにして$\theta$を求めましょうか。

単純なやり方としては、$\theta$は定数であると考え、赤玉が出た回数を$N$で割ってその割合を$\theta$とすることができます(いわゆる最尤推定)。

しかし、例えば$N=2$で赤が出た回数が0回というのは容易に想像できる状況ですが、最尤推定だと$\theta=0$(赤玉の比率が0)になり、それはつまり袋の中に赤玉が存在しないという結論を導いたことになります。これは題意に矛盾していますね。

 

一方でベイズ推定の考え方では、直接観測できない未知のパラメータ$\theta$は確率変数だと考えます。そして、その確率変数が従う何らかの確率分布$P(\theta)$を仮定します。

いま確率変数である観測データが手元にあり、未知のパラメータも確率変数であると仮定したので、$\bf{Y}$と$\theta$の同時分布が以下のように表せます。

$$P(\bf{Y}, \theta) = P(\bf{Y} | \theta)P(\theta)$$

このような同時分布を定義できれば、観測データ$\bf{Y}$が所与のときの$\theta$の確率分布$P(\theta | \bf{Y})$が求まりそうです。具体的にはベイズの定理を用いることで、以下のような関係が導けます。

$$P(\theta | \bf{Y}) \propto P(\bf{Y} | \theta)P(\theta)$$

このように、ベイズ推定ではベイズの定理を使って同時分布から条件付き分布を計算する問題に帰着しています。

ここまでの手順をおさらいすると、求めたいパラメータ$\theta$について仮説の分布P($\theta$)を事前において、データ$\bf{Y}$を観測することでその分布が更新されて$P(\theta | \bf{Y})$が求まるという流れです。

 

以上がベイズ推定の考え方になります。雰囲気だけでも掴んでいただけましたでしょうか。

長くなってしまいましたが、ここまでお読み頂きありがとうございました。

最短経路で平易に理解できる、今までにない入門書! ベイズ主義機械学習(ベイズ学習)の基本原理にのっとり、「モデルの構築→推論の導出」という一貫した手順でアルゴリズムの作り方を解説。どこまでも分かりやすい!

注釈

1 値が試行ごとに確率的に決まる変数

コメント