パターン認識と機械学習の勉強ノート【2.1 二値変数,2.2 多値変数】

深層学習を学ぶシリーズ

こちらの『パターン認識と機械学習』を読んで,勉強したことをまとめていきます.

前回は,1.6節の情報理論についてまとめました.

今回は,2.1節の二値変数, 2.2節の多値変数です.

二章の概要

一章では確率理論の基礎について述べ,ガウス分布を用いたフィッティングについて述べましたが,問題によって確率分布モデルは色々の種類を使い分ける必要があります.

その色々な確率分布モデルを紹介するのが二章の主な目的です.

また,二章を通して,ガウス分布の一般的な性質について,各尤度関数に対するの事前分布は何かについても述べます.

この記事では,二値変数,多値変数に対する確率分布としてベルヌーイ分布や二項分布,ベータ分布,マルチヌーイ分布,ディレクレ分布を紹介します.

二値変数

ここでは例として,コインを投げて,表か出る確率,裏が出る確率みたいなものを考えて話を進めていきます.

二値変数x=0,1について,x=1を表,x=0を裏だとし,x=1(表が出る確率)を,パラメータ\muを用いて

    \[p(x=1|\mu) = \mu\]

とします.つまり,\muは表が出る確率そのものです.普通のコインなら,\mu=\franc{1}{2}です.

x=0(裏が出る確率)は,表じゃない確率なので,p(x=0|\mu) = 1-\muです.これらを考えると,コインを投げた時にxが出る確率は

ベルヌーイ分布

    \[B(x|\mu)=\mu^x(1-\mu)^{1-x}\]

となります.この確率分布をベルヌーイ分布と呼びます.x=1を代入すると\muなり,x=0を代入すると1-\muになります.

ベルヌーイ分布に従うコインをN回投げて,その表裏の結果をD= x_1, x_2,..., x_Nx_iは0か1)とすると,そのような結果(データ)が実現される確率は

    \[p(D|\mu)=\prod_{n=1}^{N}p(x_n|\mu)=\prod_{n=1}^{N}\mu^x_n(1-\mu)^{1-x_n}\]

となり,これはパラメータ\muを与えた時にデータDを与える確率なので,尤度関数です.尤度関数の意味については,https://atsblog.org/machine-pattern-1-2-2/を参照してください.

では,この尤度関数に関して,最尤推定していきます.つまり,このようなデータが実現されるようなパラメータはどんなものか?というものを計算していきます.

対数尤度は

    \[\log p(D|\mu) = \sum_{n=1}^{N} \{x_n \log\mu+(1-x_n)\log(1-\mu)\}\]

となり,これが0となるときのパラメータ\muは,

    \[\mu_{ML}=\frac{1}{N}\sum_{n=1}^{N}x_n\]

となります.つまり,ベルヌーイ分布に従うコインの表が出る確率\muはデータの平均値から求められるということになります.

また,表(x=1)が出る回数をmとすると,上式は

    \[\mu_{ML}=\frac{m}{N}\]

と表すことができます.表が出た回数さえ分かれば,尤度を最大化するような表が出る確率\muが分かるということです.

また,ベルヌーイ分布に従う事象が複数回起こったときの分布である,二項分布を紹介します.

二項分布は,以下のような分布です.

二項分布

    \[Bin(m|N,\mu) = \left( \begin{array}{cc} N\\ m\\ \end{array} \right) \mu^m(1-\mu)^{N-m}\]

ただし,\left( \begin{array}{cc} N\\ m\\ \end{array} \right)=_NC_nです.

これはベルヌーイ分布に従うコインをN回投げた時に,m回表が出る確率分布モデルです.

二項分布の事前分布

しかしながら,このままの枠組みでは,コインを3回投げて表が3回出た時に\mu_{ML}=\frac{3}{3}=1となり,このコインは必ず表を出すコインと予想してしまうことになります.これは我々の感覚からしたら「過剰適合」です.

このような過剰適合を少なくし,より感覚的な答えを出すために,\muに関しての共役事前分布を導入していきます.

(共役事前分布は,以前にも説明したように,事前分布と事後分布が同じ形になるような事前分布です)

二項分布の共役事前分布は,以下のような分布です.

ベータ分布

    \[Beta(\mu|a,b)=\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}\mu^{a-1}(1-\mu)^{b-1}\]

\frac{\Gamma(a;b)}{\Gamma(a)\Gamma(b)}の部分は0\leq \mu \leq 1で積分したときに1となるための規格化定数です.

このベータ分布は\muの分布を表しています.abは定数パラメータです.

例えば,コインは0.5の確率で表が出そうなので,a=2b=2として以下の図の左のような分布を用意します(事前に分かっているとします).

パターン認識と機械学習から引用

この図の真ん中のグラフは,二項分布のN=1, m=1の場合,つまり一回コインを投げて表が出る確率分布です.

さて,ベイズの定理

事後分布 \propto 尤度 × 事前分布

によって事後分布を計算すると,図の右のようなグラフになります.このようなベイズの定理による手続きを行うことで,尤度関数だけで考えていた時には\mu_{ML}=1となって直感からずれていたものが,事前分布の効果によって右図のような直感に分布に近づきます.

事前に\muの分布情報が分かっていれば,その情報と実際のデータから得られた尤度と合わせて分布を作ればそれっぽくなるということです.

そして,また新しいデータが手に入れば,そのデータから尤度を計算し,それまでに得られている事後分布を事前分布に用いて,あらたな事後分布を計算していけばよりそれっぽい分布が得られます.

ちなみに,事後分布(上図の右)の式は,二項分布とベータ分布をかけて規格化したものなので

    \[p(\mu|m,l,a,b)=\frac{\Gamma(m+a+l+b)}{\Gamma(m+a)\Gamma(l+b)}\mu^{m+a-1}(1-\mu)^{l+b-1}\]

となっており,確かに事前分布(ベータ分布)と同じ形になっています.l=N-mです.

多値変数

さて,ここまででx=0,1の2つの値を取る分布について述べました.ここでは,x=1,2,...,Nの多値をとる変数に関する分布を扱います.

例としては,コインのような2つの事象しかないものではなく,サイコロのようないくつかの事象が起こりうるような問題を考えればよいでしょう.

ただし,x=3などと明示的に書くのではなく,ここではx_i=0,1を用いて

    \[\mathbf x = (x_1, x_2, ..., x_N)^\mathrm{T}\]

と書くことにします.

例えばN=6つの値を取るとき,x=3を意味するものとして\mathbf x = (0,0,1,0,0,0)^\mathrm{T}(つまりx_3=1)と書きます.ただし,一度に起こる事象はx_1, x_2, ..., x_Nのどれかなので,

    \[\sum_{k=1}^{K} x_k = 1\]

です.つまり\mathbf xの要素のうち一つだけが1で,それ以外は0です.

この条件の下で,パラメータ\mu_kを用いて,\mathbf xが起きる分布は

    \[p(\mathbf x|\mbox{\boldmath $\mu$})=\prod_{k=1}^{K}\bm\mu_k^{x_k}\]

です.ここで,\mbox{\boldmath $\mu$}=(\mu_1,...,\mu_K)^\mathrm{T}です.ちなみに,\mu_kkが起こる確率であり,いずれかのkが起きるので

    \[\sum_{k=1}^{K} \mu_k = 1\]

です.

このK個の値を取る事象をN回観測したとき(もちろん,毎回のkの値は違っても良い),それが起こる確率は

    \[\begin{split} p(D|\mbox{\boldmath $\mu$})&=\prod_{n=1}^{N}\prod_{k=1}^{K}\mu_k^{x_{nk}} \\&=\prod_{k=1}^{K}\mu_k^{\sum_{n}x_{nk}} \\&=\prod_{k=1}^{K}\mu_k^{m_k} \end{split}\]

となります.

ここで,

    \[m_k=\sum_{n}x_{nk}\]

x_k=1となる回数,すなわち事象kが起こる回数を表します.

さて,2値変数のデータに対して最尤推定したときと同様に,ここでも最尤推定を行います.

ただし,今回は制約\sum_{k=1}^{K} \mu_k = 1があるので,最大化する関数は

    \[\sum_{k=1}^{K}m_k \log \mu_k+\lambda \left( \sum_{k=1}^{K} \mu_k - 1 \right)\]

です.\lambdaはラグランジュ定数です.これを\mbox{\boldmath $\mu$}で微分して0とおくと,

    \[\mu_k^{ML}=\frac{m_k}{N}\]

が得られます.

また,ベルヌーイ分布に対して二項分布を用意したように,多値変数の事象をN回繰り返た時の分布を用意します.

N回試行したときに,事象km_k起こる確率は

マルチヌーイ分布

    \[Mult(m_1,m_2,...m_K| \mbox{\boldmath $\mu$},N)=\left( \begin{array}{cc} N\\ m_1,m_2,...m_K\\ \end{array} \right)\prod_{k=1}^{K}\mu_k^{m_k}\]

これをマルチヌーイ分布といいます.

ただし,\left( \begin{array}{cc} N\\ m_1,m_2,...m_K\\ \end{array} \right)=\frac{N!}{m_1!m_2!...m_K!}です.

また,事象がk出た回数m_kkについて足し合わせればNになります(kのうち必ず何かが起こるので).

    \[\sum_{k=1}^{K}m_k = N\]

マルチヌーイ分布の事前確率

マルチヌーイ分布を尤度としたときの,\mbox{\boldmath $\mu$}に関しての事前分布は次のディレクレ分布です.

ディレクレ分布

    \[Dir(\mbox{\boldmath $\mu$}|\mbox{\boldmath $\alpha$})=\frac{\Gamma(\alpha_0)}{\Gamma(\alpha_1)...\Gamma(\alpha_K)}\prod_{k=1}^{K}\mu_k^{\alpha_k-1}\]

ここで,\alpha_0=\sum_{k=1}^{K}\alpha_Kです.

実際,マルチヌーイ分布とディレクレ分布の積をとると,事後分布は

    \[p(\mbox{\boldmath $\mu$}|D, \mbox{\boldmath $\alpha$})=\frac{\Gamma(\alpha_0+N)}{\Gamma(\alpha_1+m_k)...\Gamma(\alpha_K+m_K)}\prod_{k=1}^{K}\mu_k^{\alpha_k+m_k-1}\]

となり,ディレクレ分布と同じ形になります.係数の

    \[\frac{\Gamma(\alpha_0+N)}{\Gamma(\alpha_1+m_k)...\Gamma(\alpha_K+m_K)}\]

は規格化定数です.

まとめ

2値変数の事象が起こる確率分布

二項分布

    \[Bin(m|N,\mu) = \left( \begin{array}{cc} N\\ m\\ \end{array} \right) \mu^m(1-\mu)^{N-m}\]

二項分布の事前分布はベータ分布

ベータ分布

    \[Beta(\mu|a,b)=\frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}\mu^{a-1}(1-\mu)^{b-1}\]

多値変数の事象が起こる確率分布

マルチヌーイ分布

    \[Mult(m_1,m_2,...m_K| \mbox{\boldmath $\mu$},N)=\left( \begin{array}{cc} N\\ m_1,m_2,...m_K\\ \end{array} \right)\prod_{k=1}^{K}\mu_k^{m_k}\]

マルチヌーイ分布の事前分布はディレクレ分布

ディレクレ分布

    \[Dir(\mbox{\boldmath $\mu$}|\mbox{\boldmath $\alpha$})=\frac{\Gamma(\alpha_0)}{\Gamma(\alpha_1)...\Gamma(\alpha_K)}\prod_{k=1}^{K}\mu_k^{\alpha_k-1}\]

今回は2値変数,多値変数の分布について述べました.次回からはあらゆる分野で重要な分布であるガウス分布について述べていきます.

コメント

タイトルとURLをコピーしました