はじめに
『トピックモデル』(MLPシリーズ)の勉強会資料のまとめです。各種モデルやアルゴリズムを「数式」と「プログラム」を用いて解説します。
本の補助として読んでください。
この記事では、カテゴリモデルに対するMAP推定(ハイパーパラメータ推定)の数式の行間を埋めます。
【前節の内容】
【他の節の内容】
【この節の内容】
2.7 ユニグラムモデルのMAP推定の導出:ハイパーパラメータ推定
ユニグラムモデル(unigram model)に対する不動点反復法(固定点反復法・fixed point iteration)を用いた最大事後確率推定(MAP推定・maximum a posteriori estimation)におけるハイパーパラメータの計算式を導出する。この節では、ハイパーパラメータに事前分布を設定して、ハイパーパラメータを推定する。
ユニグラムモデルの定義や記号については「2.2:ユニグラムモデルの生成モデルの導出【青トピックモデルのノート】 - からっぽのしょこ」、ハイパーパラメータに事前分布を設定しない(パラメータを推定する)場合については「2.4:ユニグラムモデルのMAP推定の導出:パラメータ推定【青トピックモデルのノート】 - からっぽのしょこ」を参照のこと。
MAP解の設定
ここでは、単語分布のハイパーパラメータ を一様な値 として で表す( 次元ベクトルをスカラで表記する)。
また、ハイパーパラメータ の事前確率(事前分布)として、パラメータ を持つガンマ分布 を設定する。
ハイパーパラメータに事前確率を設定したMAP推定では、事後確率 を最大化するハイパーパラメータ を求める。
は、関数 を最大化させる引数(変数) を表す。また、単語分布のハイパーパラメータのMAP解を とする。
計算を簡単にするため、対数をとった事後確率 の最大化を考える。
ハイパーパラメータに事前分布を設定したユニグラムモデルにおける事後確率は、ベイズの定理より、パラメータ を周辺化した周辺尤度 とハイパーパラメータ の事前確率 を用いて、次の式で定義される。
途中式の途中式(クリックで展開)
- 1: ベイズ定理 より、確率変数(観測データ)とパラメータの条件関係を入れ替える。
ベイズの定理に当てはめなくても得られる。
- 1: 条件付き確率 より、項を分割する。
- 2: 連続型の確率変数の周辺化 より、周辺化されていた(ハイパー)パラメータ を明示する。
- 3: 乗法定理 より、依存関係に従い項を分割する。
分母は、 を周辺化した周辺確率 であり、 に影響しない。
この式を式(1)に代入して、式を整理する。
途中式の途中式(クリックで展開)
- 1: 式(1)の事後確率の項を事後確率の式(2.5')に置き換える。
- 2: 対数の性質 、 より、分数を分解する。
- 3: と無関係な周辺確率の項を省く。
- 4: ユニグラムモデルの定義(2.2節)より、周辺尤度(パラメータを周辺化した文書集合の生成確率)とハイパーパラメータの事前確率(ガンマ分布)を具体的な式に置き換える。
周辺尤度の式については「2.2:ユニグラムモデルの生成モデルの導出【青トピックモデルのノート】 - からっぽのしょこ」を参照のこと。
に影響しない項は省ける。
事後確率を最大化するパラメータは、周辺尤度と事前確率の対数の和を最大化するパラメータを求めればよいことが分かった。
ただし、周辺尤度を解析的に計算するのは困難である。そこで、不動点反復法により繰り返し値を更新してMAP解を近似することを考える。
不動点反復法の更新式の導出
周辺尤度(2.8')に関して、2つの項をそれぞれ
に置き換えて、下限 とおく。
また(式が長くなるので)、次のようにおいた。
途中式の途中式(クリックで展開)
- 1: 対数ガンマとディガンマ関数の不等式を用いて、式を置き換える。
に対して、、 のとき、次の関係が成り立つ。
を 、 を に対応させて項を変形する。
また、 に対して、 のとき、次の関係が成り立つ。
を 、 を に対応させて項を変形する。
現在の値を 、更新後の値を とする。周辺尤度に関して の周りでテイラー展開(近似)して下限として用いる。
詳しくは「対数ガンマ関数とディガンマ関数の不等式の導出【青トピックモデルのノート】 - からっぽのしょこを参照のこと。
周辺尤度の代わりに下限を用いて、近似的な事後確率を最大化するハイパーパラメータを考える。
途中式の途中式(クリックで展開)
- 1: 周辺尤度と事前確率の対数の和(2)に関して、周辺尤度を下限(近似) に置き換える。
- 2: 周辺尤度の下限とハイパーパラメータの事前確率(ガンマ分布)を具体的な式に置き換える。
- 3: 対数の性質 、、 より、積が和、商が差、べき乗が積になる。
- 4: と無関係な項を省く。
- 5: の項をそれぞれまとめる。
に影響しない項は省ける。または、定数 としてまとめておくと偏微分の際に0になり消える。
(近似的な)事後確率を最大化するハイパーパラメータは
を最大化するハイパーパラメータを求めればよいことが分かった。
周辺尤度の下限 と事前確率の対数の和を とおく。また、 に影響しない(式(4)以外の)項をまとめて とする。
関数 を に関して微分する。
途中式の途中式(クリックで展開)
- 1: の式全体の微分を考える。ただし、 に関する微分なので、 は定数として扱う。
- 2: 和の微分 より、項ごとの微分の和に分割する。
- 3: の係数は の外に出せ、定数の微分は(定数 を で微分すると) である。
- 4: 変数の微分は(変数 を で微分すると) 、自然対数の微分は である。
となる を求める。
途中式の途中式(クリックで展開)
- 1: を とおく。
- 2: について式を整理する。
- 3: に具体的な式(3)を代入する。
- 4: 括弧を展開する。
不動点反復法によるハイパーパラメータの更新式が得られた。
回目の更新において、 を現ステップ(更新前)の値( 回目の更新値) 、 を次ステップ(更新後)の値( 回目の更新値) とする。
また、ハイパーパラメータの初期値を とする。
この式により更新を繰り返すことで、MAP解 に近付いていく。
この記事では、ユニグラムモデルに対する不動点反復法を用いたMAP推定によるハイパーパラメータの計算式を導出した。次の記事では、実装してハイパーパラメータを推定する。
参考書籍
おわりに
- 2024.05.07:加筆修正の際に「一様なハイパーパラメータの場合の経験ベイズ推定の導出」から記事を分割しました。
本で数行、修正前の記事でも30行ほどだった内容を丁寧に書いたら1記事分になりました。
順序立てて書くために問題設定から追ってみて分かった(分からなくなった)のですが、これはMAP推定ってことですよね。4週目にしてようやくそれらしいキーワードで書かれていることを認識できました。
2.7節では2手法を扱ってるから節タイトルが目的である「ハイパーパラメータ推定」になってたんですかね。
この手法でも多様ハイパラ版を書くつもりで始めたんですが、パラメータ推定のMAP推定では書かなかったですし、書かなくていいですよね。実装はどうしましょうか。
この記事の更新時点で、2章の数式読解編は全て書き直せました。実装編は2つ組めて解説は未着手な状況です。実装しなければこれが2章最後の記事です。
【次節の内容】
- スクラッチ実装編
ユニグラムモデルに対するMAP推定をプログラムで確認します。
- 数式読解編
混合ユニグラムモデルを数式で確認します。