【読書メモ】しくみがわかるベイズ統計と機械学習

しくみがわかるベイズ統計と機械学習 1 の読書メモ.「ベイズ統計と機械学習の基礎理論を丁寧に解説」との紹介に違わず,ベイズ統計(+機械学習)の考え方で初学者がつまづきそうな部分について,これでもかというくらい丁寧に解説してあり2,痒いところに手が届く(?)仕様となっている.演習問題は内容を復習する上で必要十分なものになっているという印象.解説も充実している.ただし,例題が専らギャンブルであり(本文にもあるように確率論誕生のきっかけはギャンブルであったが…)この書籍は機械学習でギャンブルに勝つ入門なのではないかと錯覚してしまうことも(自分だけか…).

以下に同書籍の気になる点(メモ)を列挙する.

§0:まえがき

以下の文章は個人的にはアツい.

知的な人で「知」について関心のない人はいないだろう.そして統計学や機械学習こそは知を体系的に論じる学問である.それは「知る」という行為が何であるのかを明らかにし,計算機に行わせようとする試みだからである.本書に現れる数式は情報に関する法則を表しているともいえる(P.iii).

§1:統計学と機械学習

本書では生成モデルの機械学習を中心に言及.生成モデルは教師なし学習との関連性が深い.v.s. 識別モデル

  • 識別モデル:正しい識別を行うというタスク達成のための装置を表現.教師あり学習との関連性が深い.
  • 生成モデル:観測データの生成メカニズムを表現.教師なし学習との関連性が深い.

§2:ベイズ統計と機械学習

  • 条件付き確率の真ん中の縦棒は英語における関係代名詞 "when" に相当する(P.16).
  • 正規分布のパラメータ $\sigma$ は関数の変曲点である(P.31〜P.33,問2-9,問2-10).

§3:ベイズ推定入門

(表記): $\boldsymbol{x}$ をスカラ観測値を集めたベクトル,$\boldsymbol{\theta}$ をスカラパラメータを集めたベクトルとする.尚,ベクトルでも議論は同様.

  • 推定量(estimator):推定されたパラメータの値のこと.
  • 条件付き確率 $p(\boldsymbol{x} \mid \boldsymbol{\theta})$ について(P.42),
    • 確率分布の視点:「パラメータベクトルが $\boldsymbol{\theta}$ である時の観測値ベクトル $\boldsymbol{x}$ の確率分布」を表す.このとき $\boldsymbol{x}$ は変数, $\boldsymbol{\theta}$ は定数.
    • 尤度(関数)の視点:観測が行われたことにより $\boldsymbol{x}$ が一意に決定.$\boldsymbol{\theta}$ が不明.このとき $\boldsymbol{x}$ は定数,$\boldsymbol{\theta}$ は変数.
  • モデルエビデンス(P.55):$p$ で表された確率分布,i.e. 観測値を説明するために仮定されたモデルでの観測値の発生しやすさを示す量.そのため観測値を説明しうる確率分布が複数考えられる際はそれぞれの分布のモデルエビデンスを求め比較することで最適モデルを定量的に選択可能(モデル選択(model selection)という).
  • 擬似観測値(pseudo-observations):仮想的な観測値のように作用するハイパパラメータのこと.
  • 予測値をベイズ推定で求めるには(P.63):予測したい確率変数 $y$ について,分布 $p(y \mid \boldsymbol{x})$ は $p(y \mid \boldsymbol{x}) = \int p(y \mid \boldsymbol{\theta})p(\boldsymbol{\theta} \mid \boldsymbol{x})\mathrm{d}\boldsymbol{\theta}$ で求められる.一意に予測値 $\hat{y}$ を得るには $y$ の期待値を利用すればよく,$\hat{y} = \int yp(y \mid \boldsymbol{x}) \mathrm{d}y$ で求められる.

§4:二項分布とその仲間たち

特記事項なし.

§5:共役事前分布

  • スムージング(smoothing):一度も観測されていない値も生じる確率がある程度存在すると見なせるように事前分布のパラメータを設定すること.
  • ガンマ分布の形状パラメータ(shape parameter)は標本数を2倍した値の擬似観測値になっている(P.100).
  • 正規-ガンマ分布を導入するには精度(分散の逆数)の比例定数に相当するハイパパラメータ導入が必要(P.104).
  • メリン変換(Mellin transform):
関数 $f(t)$ に対し,$M[f(t)](x):=\int_0^{\infty} t^{x-1}f(t)\mathrm{d}t$ で定義される. 例えばガンマ関数は $f(t)=\exp\{-t\}$ のメリン変換(P.109).ちょっと調べてみたところ,メリン変換は確率変数の積と関係があるらしい.

§6:EM アルゴリズム

  • 生成過程(generative process):確率分布に従って観測値が作られるプロセスのこと(P.112).統計的機械学習において,実際に生じている現象を単純化したモデルを構築するプロセス.このプロセスは非常に重要であり,以下の説明がある.

    ベイズ統計やそれに基づく機械学習における重要なステップは観測変数や潜在変数をリストアップし,それらの間に想定される関係性を確率分布として表すことである.これはモデルであり,いわば観測値の背後に潜むメカニズムについての仮説である(P.113).

  • 階層ベイズモデル(hierarchical Bayesian model):段階的なプロセスによって観測変数の値が決まるモデルのこと.混合モデルは最もシンプルな階層ベイズモデルに相当.

  • 潜在変数(Latent Variable)導入のメリット3
不完全データ(incomplete data)からなる混合モデル $p(\boldsymbol{x} \mid \boldsymbol{\theta}) = \sum_k \prod_n \pi_k p(x_n \mid \boldsymbol{\theta}_k)$ の対数尤度 $\ln p(\boldsymbol{x} \mid \boldsymbol{\theta})$ を計算することは難しいが,潜在変数ベクトル $\boldsymbol{z}$ を導入した完全データ(incomplete data)からなる混合モデル $p(\boldsymbol{x},\boldsymbol{z} \mid \boldsymbol{\theta}) = \prod_n p(x_n, \boldsymbol{z}_n \mid \boldsymbol{\theta})$ では,積の計算が先に来るため対数は $\ln p(\boldsymbol{x},\boldsymbol{z} \mid \boldsymbol{\theta}) = \sum_n \ln p(x_n, \boldsymbol{z}_n \mid \boldsymbol{\theta})$ の形で簡単に計算できる.$\boldsymbol{z}$ は確率変数ベクトルであるため,周辺化(積分消去)可能,$\boldsymbol{z}$ に依存しない値が得られる.すなわち,対数尤度 $\ln p(\boldsymbol{x} \mid \boldsymbol{\theta})$ が近似的にではあるが計算で求めることができる. 上記の性質を得るために $\boldsymbol{z}$ は one-hot ベクトル(ある次元の値が 1, その他の次元の値は 0 となるベクトル)であることがミソ. $\boldsymbol{z}$ の分布は観測値 $\boldsymbol{x}$ 及び観測値から得られた推定量 $\hat{\boldsymbol{\theta}}$ から決定し,対数尤度 $\ln p(\boldsymbol{x} \mid \boldsymbol{\theta})$ を期待値 $\mathbb{E}_\boldsymbol{z}[\ln p(\boldsymbol{x},\boldsymbol{z} \mid \boldsymbol{\theta})] = \int p(\boldsymbol{z} \mid \boldsymbol{x}, \hat{\boldsymbol{\theta}}) \ln p(\boldsymbol{x},\boldsymbol{z} \mid \boldsymbol{\theta}) \mathrm{d}\boldsymbol{z} = \sum_n \int p(\boldsymbol{z} \mid \boldsymbol{x}, \hat{\boldsymbol{\theta}}) \ln p(x_n, \boldsymbol{z}_n \mid \boldsymbol{\theta}) \mathrm{d}\boldsymbol{z}$ に置き換えて計算する. 直観的には,混合モデルの複雑な分布について先に混合前の簡単な分布(混合要素)に分解してからパラメータを推定していることに相当する.P.121 の図 6.4 が理解の最高の助けになる.

自分でも理解を深めるため以下に示すイメージ(図1)を作成した.

f:id:y-tana:20191220013043p:plain
図1 潜在変数を導入,完全データを扱った場合(イメージ)

§7:変分ベイズ

  • 変分(functional derivative)とは:関数による汎関数(functional)の微分(derivative)のこと(P.143).英語だと分かりやすい.
  • EM アルゴリズムは変分ベイズの特殊例(P.143)4
  • §7.2.3 平均場近似の説明は非常に丁寧.自分なりにまとめると,「統計物理では個々の原子について状態を確率変数で表し,1個の原子の状態を求める際にはその他全ての原子の状態の期待値を計算する『場からの平均的影響を計算する』」というもの.統計物理を初歩で良いので理解するべきなのかなぁ…
  • 汎関数最大化の変分(p.151):関数をベクトルの一種としてみなす.ベクトルは次元ごとに対応する数値が存在するが,関数は引数(時系列であれば時刻に相当)ごとに対応する数値が存在する.すなわち関数は無限次元のベクトルとみなせる(図2参照).よって変分はベクトルの微分を無限次元に拡張したものである.
  • 変数にも種類がある.
    • 標本ごとに存在する変数(潜在変数):内包的変数(intensive variable),局所変数(local variable)
    • 全ての標本に共通で使われる変数(パラメータ):外延的変数(extensive variable),大域変数(global variable)
  • 変分ベイズの近似した事後分布(変分事後分布)は,真の分布について,同時分布を周辺化した場合に相当する.
    • 変分事後分布は $\exp$ の形であり,指数型分布族であることが分かる.そのため,対象とするデータの分布は指数型分布族であることが望ましく,そのために適切に特徴量を変換・設計できるかがミソである気がする. f:id:y-tana:20191220013501p:plain
      f:id:y-tana:20191220013639p:plain
      図2 関数は無限次元のベクトルとみなせる(イメージ,自己解釈用)

§8:マルコフ連鎖モンテカルロ法

  • モンテカルロ法では,データの生成モデル(確率分布)を直接求める代わりに,そのモデルに従うデータ列を生成することを考えることで計算量の問題を解決しようとしている.
  • 提案分布(proposal distribution):真の分布に比較的似ていて,サンプリングが比較的用意である確率分布のこと.棄却サンプリングでは,真の分布と提案分布の比に比例し,かつ0〜1の範囲である数を考え,それらについて生成が容易な一様分布を利用してサンプリングするか否かを決定し,真の分布に従うデータ列を生成する.
  • マルコフ連鎖モンテカルロ法(MCMC: Markov Chain Monte-Carlo method)では,定常性よりも強い性質である詳細釣り合いの条件を利用して,確率変数の系列が定常性を持つようにしている.

§9:変分オートエンコーダ

  • 符号(code):情報が別の表され方をしている,という意味(P.181).その意味では情報処理の際は適当な符号を探すことが重要な問題となってくる.
  • オート(auto)は「自分自身」の意味である.
  • 入力データ $\boldsymbol{x}$ から符号化により低次元の中間表現 $\boldsymbol{z}$ を生成,中間表現から復号化して再度復元する流れとなっており,$\boldsymbol{z}$ が情報の本質を抜き出す部分に相当している.低次元化しているが,単なる次元削減とは一線を画す5
  • 変分オートエンコーダは符号化,及び復号化のプロセスで総数の多いニューラルネットワークを使用することが一般的であるため,深層学習の一手法と捉えられることもあるが,考え方は深層学習に限るものではない

その他

  • 本書を読んで,自分はベイズ統計及び機械学習のことを全然知らないことを思い知らされた…
  • 日本語の書籍としては珍しく(?),図のキャプションが文章となっている.そのためか図を見て深い理解が得られた.自分も図のキャプションを文章で説明しようかな(キャプションの文章の部分は本文でも使えば良いし).

  1. 手塚太郎, “しくみがわかるベイズ統計と機械学習, ” 朝倉書店,2019.

  2. 解説を読みながら,ことばで明確に説明できる能力の重要性をひしひしと感じている.ちなみに当該書籍は図も充実,理解の助けになる.

  3. 変分ベイズも発想は似ている.最尤推定において最適な $\boldsymbol{\theta}$ を尤度から計算する際,潜在変数の影響で和が先にくると計算困難であるが如く,ベイズ推定において事後分布 $p(\boldsymbol{\theta} \mid \boldsymbol{x})$ の計算に必要な規格化定数(の対数,実は周辺尤度,モデルエビデンスに相当)$\ln p(\boldsymbol{x}) = \ln \left( \int \int p(\boldsymbol{x}, \boldsymbol{\theta},\boldsymbol{z})\mathrm{d}\boldsymbol{\theta} \mathrm{d}\boldsymbol{z} \right)$ (§6に示されているモデル(潜在変数を導入しているモデル)の場合)の計算も一般に困難である.変分ベイズでは Jensen の不等式を利用して $\mathbb{E}_{q(\boldsymbol{\theta},\boldsymbol{z}\mid\boldsymbol{x})} [\ln p(\boldsymbol{x}, \boldsymbol{\theta},\boldsymbol{z})]$に置き換えて計算を簡単化している.ただし $q(\boldsymbol{\theta},\boldsymbol{z}\mid\boldsymbol{x})$ は近似した事後分布であり,計算の都合上 $q(\boldsymbol{\theta},\boldsymbol{z}\mid\boldsymbol{x}) = q(\boldsymbol{\theta}\mid\boldsymbol{x})q(\boldsymbol{z}\mid\boldsymbol{x})$を仮定している.

  4. そりゃ同じ発想になるわ.ちなみに事前分布が一様である条件下,$q(\boldsymbol{\theta}\mid\boldsymbol{x})$ がデルタ関数 $\delta (\boldsymbol{\theta}-\hat{\boldsymbol{\theta}})$ に一致するとき最尤推定となる(この際の議論は『持橋大地, “自然言語処理のための変分ベイズ法,” ATR SLC internal seminar, 2005. http://chasen.org/~daiti-m/paper/vb-nlp-tutorial.pdf』が詳しい).

  5. 非負値行列因子分解(NMF: Non-negative Matrix Factorization)や多様体による次元削減と比較して考えてみるといいかもしれない.