AI

ベイズ統計と機械学習~理論編~

*本記事は旧TechblogからCOLORSに統合した記事です。

※本記事は統計に関する知識がまったくない方でも読めるように書いておりますが、
統計検定2級レベルの知識をお持ちですと、より興味深く感じていただけると思います。

※本記事は、「理論編」「実践編」の二部構成であり。今回は「理論編」になります。

0.目次
1.はじめに
2.ベイズ統計とは
3.統計と確率論
4.最尤推定
5.MAP推定
6.ベイズ推定
7.おわりに

1.はじめに

はじめまして。AIFのT.O.と申します。本記事では“ベイズ統計ってなに?”というところから、“ベイズ統計を使ってAIアルゴリズムをつくれる”というところまで、順を追ってお話していきたいと思います。

2.ベイズ統計とは

ベイズ統計とは何なのか?一般的な統計学とはちがうのか?実はこれはかなりナイーブな問題でたびたび論争になります。なぜ問題になるかと言うと、根本的な考え方が違うのに多くの共通部分をもつからです。そこでベイズ統計と一般的な統計を“立場が違う”として、“ベイズ主義”、“頻度主義”という呼称が使われることもあります。本記事ではこの呼称を使っていきます。あとで説明しますが、統計学において“確率”は重要な役割を果たします。ベイズ主義と頻度主義ではこの確率のとらえ方が異なります。

例えばサイコロで1の目が出る確率を比較してみます。先に頻度主義の考え方では、“無限回サイコロを振ったときに1の目が出た割合”が1の目が出る確率と考えます。サイコロが歪んでいないなら、だれでも1/6と考えるでしょう。これを客観確率と呼びます。

一方ベイズ主義では、“1の目が出る信念(見込み)を0~1で表したもの”が1の目が出る確率と考えます。おそらく“???”という感じでしょう。例えばあなたの経験上、1の目が出ることが多かったのなら1の目が出る信念は大きくなり1/3になるかもしれません。いや、1の目が出ることは少なかったということであれば1/8かもしれません。もちろん、偏りはなかったとして1/6と考えてもよいです。このように、ベイズ主義では確率は“主観的”なものであり、主観確率と呼ばれます。

この主観性が歴史的にベイズ主義と頻度主義の対立を深めた原因のひとつです。

3.統計と確率論

数学に主観を持ち込んでいいのか!?となっていることと思いますが、その問題は一旦置いておいて、“統計においてなぜ確率が重要なのか”をお話していきたいと思います。もし、統計の対象となるデータがすべて手元に揃っているならば、確率は必要ありません。しかし、対象のデータがすべて揃っていることは多くありません。例えばコンビニでポテトを買ったとしましょう。容器には“300グラム”と書かれています。しかしこれは、“平均すると300グラムくらいですよ”という意味であり、1つ1つは300グラムぴったりではありません。すると、“本当に平均は300グラムなのか?”と気になるかもしれませんが、すべてのポテトを集めて平均をとることは不可能です。全国で販売されているなら純粋に数が多いですし、過去に販売されたポテトや未来に販売するポテトも対象に含めると物理的に調べられません。そこで、データの一部からデータ全体を推測する必要があります。ここで確率の出番です。

“確率分布”という言葉を聞いたことがありますか?正規分布やポアソン分布などが有名ですが、この確率分布をつかってデータ全体の推測をします(これをパラメトリックな推測といいます)。
先に進む前に、一旦確率分布について掘り下げましょう。そのためには“確率変数”を知る必要があります。厳密な定義は置いておいて、確率変数とは“確率的に揺らぐ数”のことです。例えば“1時間以内に流れ星がみえる数”は確率的に揺らぐので確率変数です。1個かもしれないし、3個かもしれないし、はたまた0個かもしれません。この確率変数に対して確率分布を考えます。例えば1時間以内にみえる流れ星の数(確率変数)にはポアソン分布を仮定することができます。観測された確率変数の値を“実現値”といいますが、実現値によって確率が変わってきます。流れ星の場合、0個、1個、2個…が実現値となりますが、それぞれの確率は違ってきて、平均をピークにだんだんと減少するでしょう。

これは1時間の流れ星の平均個数を3個とした場合のポアソン分布のグラフです。平均付近で確率が高いのがわかります。

いま平均個数を3個として確率分布を示しましたが、本当に3個なのでしょうか?もし平均個数が違えば確率分布の形はかわってきます。

このように確率分布の形をきめる量のことを“パラメータ”と呼びます。(パラメトリックな)統計的推測とは、確率分布を仮定して、パラメータの真の値を推測することです。

4.最尤推定

パラメータの真の値をどう推測するか?ここでまたベイズ主義と頻度主義でわかれます。まずは頻度主義でよく使われる“最尤推定”についてお話します。頻度主義では真のパラメータは未知なだけで不変な値と考えます(あたり前と思うかもしれませんが、ベイズ主義では違います)。

では具体的にどうやって推測するか?平たく言うと“手元にあるデータが最も生じやすいパラメータの値”を真のパラメータの推定値とします。“手元にある”=“実際に生じた”ということなので、直感的にも理解できると思います(数学的な裏付けもあります)。

この最尤推定は手元にあるデータが十分に大きければ良い推定量なのですが、データが少ないと、いわゆる“過学習”を起こします。例えば歪んだコインがあったとして、このコインの表の出る確率を最尤推定します。
コイントスをして、3回連続で裏が出たとします。この時、最尤推定では表の出る確率は0になってしまいます。これは明らかに過学習です。

5.MAP推定

ではベイズ主義ではどうするのか?ベイズ主義では、パラメータを確率変数とみなします。そしてパラメータの確率分布を考えます。すると、パラメータのためのパラメータが存在することになり、これをハイパーパラメータと呼びます。
まず、ハイパーパラメータを設定します。事前になんらかのパラメータに関する知識があればハイパーパラメータに反映してよいですし、なければ偏りの少ないハイパーパラメータを設定します。これはサイコロの話で確率を主観的に決めたのと同じです。こうして得られるのがパラメータの“事前分布”です。この事前分布に“尤度”と呼ばれる“手元のデータが生じた確率”を掛け合わせることで、データを加味したパラメータの分布=“事後分布”を得ることができます。尤度に関しては“パラメータとデータの相性”とするのが本当は正しい表現です。この“パラメータの事後分布で最大値”をとるようなパラメータを真のパラメータの推定値とするのがMAP推定です。
また、パラメータの事後分布の期待値を推定値としてもよく、その場合コイントスの例では、事前分布として表の出る確率を1/2とすると、裏が3回出たとき表の出る確率の推定値は1/5となります。過学習していないのがわかります。

6.ベイズ推定

MAP推定までは真のパラメータを推定してきました。ここで、なぜ真のパラメータが知りたいのか考えてみましょう。真のパラメータがわかれば新たなデータを予測できるからです。

つまり、本当に推定したいのはパラメータではなく、新たなデータです。パラメータの事後分布をつかって新たなデータの確率分布を得ることができる場合があります。データに対して仮定している確率分布を“確率モデル”とよびp(X|θ)と表します。ここでXはデータを表す確率変数、θはパラメータです。パラメータの事後分布をp(θ|D)と表し、Dは事後分布を計算する時に使用したデータです(つまり学習済みであることを表します)。

すると、データを学習した上での新たなデータの確率分布p(X|D)は                    

p(X|D)=∫ p(X|θ)p(θ|D) dθ

という積分計算でもとめることができます(パラメータに関する周辺化)。
この計算では、“あらゆるパラメータの値について想定し、確率で重み付けして足し合わせ”ています。
この新たなデータの確率分布を“予測分布”とよびます。
予測分布こそが、データを学習した上での新たなデータの確率分布になります。

7.おわりに

ここで理論編をおわりにしたいと思います。最初のくだりでベイズ統計について”!?”となっていた方も、最終的にベイズ統計の有用性を理解していただけていたら幸いです。本記事はベイズ統計の有用性を伝えるものであるので、”頻度主義<ベイズ主義”のような書き方になってしまっていますが、ベイズ主義と頻度主義はどちらが正しいというものではなく、立場の違いだということをもう一度強調しておきます。また、活躍する場面も異なります。

次回は「実践編」です。ベイズ統計が実際に機械学習にどう役立てられるのか、紹介していきたいと思います。最後までご精読いただき、ありがとうございました。