はじめに
『ベイズ推論による機械学習入門』(MLSシリーズ)の独学時のノートです。各種のモデルやアルゴリズムについて「数式・プログラム・図」を用いて解説します。
本の補助として読んでください。
この記事では、平均と精度が未知の1次元ガウス分布に対するベイズ推論の数式の行間を埋めます。
【前節の内容】
【他の節一覧】
【この節の内容】
3.3.3 1次元ガウス分布のベイズ推論の導出:平均・精度が未知の場合
1次元ガウスモデル(Gaussian model)に対するベイズ推論(Bayesian inference)を導出する。この記事では、生成分布の平均パラメータ(mean parameter)と精度パラメータ(precision parameter)が未知の場合を扱う。平均と精度が未知の1次元ガウスモデルでは、尤度関数を1次元ガウス分布(Gaussian distribution・一変量正規分布・Normal distribution)、事前分布をガウス-ガンマ分布(Gaussian-Gamma distribution・正規-ガンマ分布・Normal-Gamma distribution)とする。
1次元ガウスモデルについては「3.3.0:1次元ガウスモデルの生成モデルの導出【緑ベイズ入門のノート】 - からっぽのしょこ」、1次元ガウス分布については「1次元ガウス分布の定義式 - からっぽのしょこ」を参照のこと。
結合事後分布の設定
まずは、平均と精度が未知の1次元ガウス分布のパラメータ の結合事後分布(joint posterior distribution)を導出する。
ガウス-ガンマ分布については「ガウス-ガンマ分布の定義式 - からっぽのしょこ」を参照のこと。
観測データ が与えられた(条件とする)下でのパラメータ
の条件付き結合分布(結合事後分布)を求める。
途中式の途中式(クリックで展開)
- 1: ベイズの定理
より、観測変数
を条件に移した式を立てる。
事後分布は、 の結合分布と
の周辺分布を用いて、次のようにも求められる。
1行目では、条件付き分布 より、
を条件に移している。
2行目では、周辺化 した
を明示している。
3行目では、 の依存関係に従い項を分割している。
生成モデル(結合分布)については「生成モデルの導出」を参照のこと。
- 2:
と無関係な項を省く。
- 3: 観測データ集合
の生成確率を、各データ
の生成確率の積に分解する。
- 3: 依存関係のあるパラメータ
の項を分割する。
- 4: 平均と精度が未知のガウスモデルの定義より、尤度関数をガウス分布、事前分布をガウス-ガンマ分布に置き換える。
周辺分布(分母)は に影響しないため省いて、比例関係のみに注目する。省略した項については、最後に正規化することで対応できる。
結合事後分布(左辺)は、依存関係に従い次のように分割できる。
の結合事後分布は、
の事後分布と
の事後分布の結合分布である。
2つのパラメータそれぞれの事後分布を求めていく。
平均パラメータの事後分布
平均パラメータ の事後分布を導出する。
結合事後分布の式(1)と式(2)を用いて、観測データ が与えられた(条件とする)下でのパラメータ
の条件付き分布(事後分布)を求める。
途中式の途中式(クリックで展開)
- 1: 式(1)の左辺の
の項を式(2)により分割して、
の項を右辺に移す(両辺を
の事後分布で割る)。
- 2:
と無関係な項を省く。
- 3: 平均と精度が未知のガウスモデルの定義より、尤度関数をガウス分布、
の事前分布をガウス分布に置き換える。
に影響しない項を省いて、比例関係のみに注目する。省略した項については、最後に正規化することで対応できる。
平均と精度が未知のガウスモデル(3.3.3項)における の事後分布(3)は、平均が未知のガウスモデル(3.3.1項)における
の事後分布(3.49)と、同様の式の形状( 精度パラメータが
から
に置き換わっただけ)である。つまり、平均が未知のガウスモデルにおける事後分布の式(3.51)と、同様の手順で求められる(同様のパラメータになる)。
そこで、平均が未知のガウスモデルにおける事後分布のパラメータ の式(3.53)を構成する精度パラメータ
について、平均と精度が未知のガウスモデルにおける精度パラメータ
に置き換える。
事後分布の式(3.51)についても置き換える(同様の手順で導出する)と、パラメータ の1次元ガウス分布となる。
の事後分布の式が得られた。
また、式(3.83)が、事後分布のパラメータ(超パラメータ) の計算式(更新式)である。
詳しい導出過程については「3.3.1:1次元ガウス分布のベイズ推論の導出:平均が未知の場合【緑ベイズ入門のノート】 - からっぽのしょこ」を参照のこと。
以上で、平均パラメータの事後分布を導出した。
精度パラメータの事後分布
続いて、精度パラメータ の事後分布を導出する。
結合事後分布の式(1)と式(2)を用いて、観測データ が与えられた(条件とする)下でのパラメータ
の条件付き分布(事後分布)を求める。
途中式の途中式(クリックで展開)
- 1: 式(1)の左辺の
の項を式(2)により分割して、
の項を右辺に移す(両辺を
の事後分布で割る)。
- 2:
と無関係な項を省く。
- 3: 平均と精度が未知のガウスモデルの定義より、尤度関数をガウス分布、
の事前分布をガウス分布、
の事前分布をガンマ分布、
の事後分布をガウス分布(3.82)に置き換える。
に影響しない項を省いて、比例関係のみに注目する。省略した項については、最後に正規化することで対応できる。
両辺の対数をとり、指数部分の計算を分かりやすくして、 に関して式を整理する。
途中式の途中式(クリックで展開)
- 1: 式(3.85)に関して、対数をとった式を立てる。
- 2-3: 自然対数の性質
、
より、分数の項を展開する。
対数の性質より、総乗 の対数をとると、対数の総和
になる。
- 3:
と無関係な項を
とおく。
- 4: 平均と精度が未知のガウスモデルの定義より、尤度関数をガウス分布、
の事前分布をガウス分布、
の事前分布をガンマ分布、
の事後分布をガウス分布(3.82)に置き換える。
に影響しない項を
とおく。省略した項については、最後に正規化することで対応できる。
右辺の各分布に具体的な式を代入して、式の形状を明らかにしていく。
途中式の途中式(クリックで展開)
- 1: 尤度関数はガウス分布、
の事前分布はガウス分布、
の事前分布はガンマ分布を仮定しており、
の事後分布はガウス分布(3.82)になるので、それぞれ定義式に置き換える。
ここで、 は、ガンマ分布(事前分布)の正規化項である。(式変形に影響しないので簡易的に表記している。)
ルートを指数で表すと である。
- 2: 自然対数の性質
、
、
、対数と指数の関係
より、定義式の項を展開する。
- 3:
に関する総和
の波括弧を展開する。
と無関係な項は
倍
となる。
- 3:
を括り出す。
- 4: 2乗の括弧を展開する。
- 5:
に式(3.83)を代入する。
の項と
の項が打ち消し合う。
の項と
の項が打ち消し合う。
- 6:
の項をそれぞれまとめる。
適宜、 に影響しない項を
にまとめている。パラメータの計算式(3.83)より、
は
に影響しない(
の式に
を含まない)。
事後分布の式(3.86)について、次のようにおく。
式(3.86)について、 で置き換える。
さらに、 を外して
を正規化項に置き換える(正規化する)と、事後分布は式の形状から、パラメータ
のガンマ分布であることが分かる。
の事後分布の式が得られた。
ここで、 は、ガンマ分布(事後分布)の正規化項である。
また、式(3.88)が、事後分布のパラメータ(超パラメータ) の計算式(更新式)である。
以上で、精度パラメータの事後分布を導出した。
結合事後分布の導出
2つのパラメータ それぞれの事後分布が求まったので、
の結合事後分布を求める。
の結合事後分布の式(2)に
の事後分布の式(3.82)と
の事後分布の式(3.87)を代入すると、結合事後分布は式の形状から、パラメータ
のガウス-ガンマ分布であることが分かる。
の結合事後分布の式が得られた。
また、式(3.83)と式(3.88)が結合事後分布のパラメータ(超パラメータ) の計算式(更新式)である。
以上で、平均と精度が未知の1次元ガウスモデルにおける事後分布を導出した。
予測分布の導出
次は、平均と精度が未知の1次元ガウス分布に従う未観測データ の予測分布(predict distribution)を導出する。
1次元スチューデントのt分布については「1次元スチューデントのt分布の定義式 - からっぽのしょこ」を参照のこと。
事前分布による予測分布
結合事前分布(観測データによる学習を行っていない の分布)を用いた予測分布(事前予測分布)を求める。
途中式の途中式(クリックで展開)
- 1: 未知変数
とパラメータ
の結合分布に対して、
を周辺化した式を立てる。
- 2: 依存関係のある
の項を分割する。
- 3: 平均と精度が未知のガウスモデルの定義より、尤度関数をガウス分布、事前分布をガウス-ガンマ分布に置き換える。
事前予測分布は、未知のデータ の生成分布(3.80)と、パラメータ
の結合事前分布(3.81)を用いた、
の周辺分布である。
積分の計算を避けるため式(3.89)は直接用いずに、ベイズの定理を用いて、 と
の関係を考える。
左辺の項は、1つのデータ が与えられた下での
の条件付き結合分布(結合事後分布)と言える。つまり、
個のデータ
が与えられた下での条件付き結合分布(結合事後分布)の式(4)と、同様の手順で求められる(同様のパラメータになる)。
そこで、 による結合事後分布のパラメータの式(3.83)と式(3.88)を用いて、
より、次のようにおく。
途中式の途中式(クリックで展開)
- 1: 式(3.88)について、
個の観測データ
を1つの未知データ
に置き換えた式を立てる。
- 2:
に式(3.92)を代入する。
- 3: 2乗の括弧を展開する。
- 4:
を括り出す。
- 5: 2乗の括弧を展開する。
- 6: 2乗の乗法公式
より、波括弧内の項を2乗の括弧でまとめる。
による結合事後分布は、パラメータ
のガウス-ガンマ分布となる。
による結合事後分布の式が得られた。1行目では、
の依存関係に従い結合分布を分割している。
による結合事後分布の式(5)について、指数部分の計算を分かりやすくするため、両辺の対数をとる。
予測分布に関して式を整理する。
に影響しない項を
とおく。省略した項については、最後に正規化することで対応できる。式(6)より、結合分布を分割している。
右辺の各分布に具体的な式を代入して、式の形状を明らかにしていく。
途中式の途中式(クリックで展開)
- 1: 尤度関数はガウス分布(3.80)を仮定しており、未知変数による
の事後分布はガウス分布(3.91)、未知変数による
の事後分布はガンマ分布(3.91)になるので、それぞれ定義式に置き換える。
- 2: 自然対数の性質より、定義式の項を展開する。
- 3:
を括り出す。
適宜、 に影響しない項を
にまとめていく。パラメータの計算式(3.92)より、
は
に影響しない(
の式に
を含まない)。
に式(3.92)を代入して、
に関して式を整理する。
途中式の途中式(クリックで展開)
- 1: 式(7)の
に式(3.92)を代入する。
- 2: 2乗の括弧を展開する。
- 2:
を括り出す。
- 2:
を括り出す。
- 3:
を括り出す。
- 3: 対数の性質
より、対数の項を分割する。
- 4: 2乗の括弧を展開する。
- 4:
に式(3.92)を代入する。
予測分布の式(3.93)について、次のようにおく。
式(3.93)について、 で置き換える。
途中式の途中式(クリックで展開)
- スチューデントのt分布の定義式の形状となるように、式を整形する。
対数の項に を分割して掛ける。
さらに、 を外して
を正規化項に置き換える(正規化する)と、予測分布は式の形状から、パラメータ
の1次元スチューデントのt分布であることが分かる。
の事前予測分布の式が得られた。
ここで、 は、1次元スチューデントのt分布(事前予測分布)の正規化項である。
また、式(3.95)が、予測分布のパラメータ の計算式である。
事後分布による予測分布
予測分布の計算に事前分布 を用いて、観測データ
による学習を行っていない予測分布(事前予測分布)
(のパラメータ
)を求めた。事後分布
を用いると、観測データ
によって学習した予測分布(事後予測分布)
(のパラメータ
)を求められる。
途中式の途中式(クリックで展開)
- 1: 観測変数
を条件として、未知変数
とパラメータ
の結合分布に対して、
を周辺化した式を立てる。
- 2: 依存関係のある
の項を分割する。
- 3: 平均と精度が未知のガウスモデルの定義より、尤度関数をガウス分布、事後分布をガウス-ガンマ分布に置き換える。
事後予測分布は、未知のデータ の生成分布(3.80)と、パラメータ
の結合事後分布(4)を用いた、
の周辺分布である。
事後分布は事前分布と同じくガウス-ガンマ分布なので、事前予測分布の式(3.94)と、同様の手順で事後予測分布の式も求められる。
そこで、事前予測分布のパラメータ の式(3.95)を構成する事前分布のパラメータ
について、事後分布のパラメータ
の式(3.83)と式(3.88)に置き換えたものを事後予測分布のパラメータ
とおく。
予測分布の式(3.94')についても置き換える(同様の手順で導出する)と、パラメータ の1次元スチューデントのt分布となる。
の事後予測分布の式が得られた。
また、式(3.95')が、予測分布のパラメータ の計算式(更新式)である。
以上で、平均と精度が未知の1次元ガウスモデルにおける事後予測分布を導出した。
この記事では、平均と精度が未知の場合の1次元ガウス分布に対するベイズ推論を導出した。次の記事では、実装する。
参考文献
おわりに
ここまではめちゃくちゃ難しい訳ではないのですがとにかく大変でした。
3月はトピックモデルの実装の予定でして、あと次の節は行列計算が出てくるっぽいので暫くお休みします。あ、でも修正作業と予測分布を組んでみたを追加するのは3月中にやるつもりです。
4月からはPythonを触ってみる予定ですので、その時に勉強がてらPython版を追加するとともに再開できればと思います。
2020/03/05:加筆修正しました。
ここまでの感想:データ数が増えると分布の見分けがつかない。
各節で同じことをしていると分かりやすくするためにも表記・表現の統一に拘っていたのですが、思ったよりも大変で時間をとられてしまいました。なので以降はもう少し緩くまとめていくことにします。全体を読み終えてから、俯瞰的な知識の整理も含めてそういった作業を改めてできればと思います。
2021/04/04:加筆修正しました。その際にRで実装編と記事を分割しました。
現在表記・表現の統一中です。
途中式が非常にゴチャゴチャしていますが、プラスマイナスで打ち消されて項が綺麗に消えていくのは気持ちいいですよ。いやうんたぶん。
2022/09/16:同時事後分布について書き足して、全体的に再構成しました。
- 2026.01.17:加筆修正しました。
ここの加筆修正の履歴を眺めるだけでも、数年前から同じ内容をクルクル回って深掘りはできてるものの発展できてないのが分かってしまう、と毎度悩んでるけど、暫く経ってから読み返すと気になってしまうところが多々出てきて手を付けてしまうのです。
最後に、えびちゅうのライブ映像を1曲をどうぞ♪
【次節の内容】
- スクラッチ実装編
1次元ガウスモデルに対するベイズ推論をプログラムで確認します。
- 数式読解編
多次元ガウスモデルの生成モデルを数式で確認します。