離散変数の無向グラフィカルモデル

前のセクションでは「連続変数」のグラフィカルモデルを学んだ。では、変数が0か1かしか取れない「離散変数」の場合は? ここで登場するのがIsingモデル制限付きボルツマンマシン(RBM)だ。 統計力学から生まれたこのモデルがいかにして機械学習の核心に繋がるか — その答えをこれから見ていこう。

Isingモデル — 離散変数のための確率分布

コインの表裏、遺伝子のオン・オフ、ピクセルの白黒。世の中には「どちらか一方」しか取らない変数が溢れている。

これらの変数が互いにどう関係し合っているか — それを表現するのがIsingモデルだ。

Isingモデルのノードとエッジの相互作用
ノード(白=0、青=1)とエッジで表されるIsingモデル。あるノードの値が変わると隣接ノードも連鎖的に変化する。

Isingモデルでは、変数 $X_j \in \{0, 1\}$ がノードに対応し、 エッジのパラメータ $\theta_{jk}$ が 「ノード $j$$k$ の相互作用の強さ」を表す。 たとえば $\theta_{jk} > 0$ なら、 一方が1のとき他方も1になりやすい(正の相関)。$\theta_{jk} < 0$ なら逆相関だ。

全体の確率分布は次の形をしている:

$$p(X, \Theta) = \exp\left[\sum_{(j,k) \in E} \theta_{jk}X_jX_k - \Phi(\Theta)\right]$$

ここで $E$ はエッジの集合。 そして $\Phi(\Theta)$分配関数(partition function)と呼ばれる正規化定数だ:

$$\Phi(\Theta) = \log \sum_{x \in \{0,1\}^p} \exp\left[\sum_{(j,k) \in E} \theta_{jk}x_jx_k\right]$$

この分配関数の役割は「すべての可能な状態の重みの合計を取ることで、確率が合計1になるよう正規化すること」だ。 各変数が0か1かの組み合わせは $2^p$ 通り存在する。$p$ 個のノードがあれば、この和を取る計算は$p$ が大きくなるほど指数的に増える — それが後の課題となる。

条件付き確率とパラメータ推定

Isingモデルの美しさのひとつは、条件付き確率がロジスティック関数で書けることだ。

他のすべてのノード $X_{-j}$ の値が固定されたとき、 ノード $j$ が1になる確率は:

$$\Pr(X_j = 1 | X_{-j} = x_{-j}) = \frac{1}{1 + \exp(-\theta_{j0} - \sum_{(j,k) \in E} \theta_{jk}x_k)}$$

これはロジスティック回帰そのものだ! つまり、各ノードを「他のノードを特徴量とするロジスティック回帰」として解釈できる。

最尤推定における経験期待値とモデル期待値の一致
最尤推定の条件:データの期待値(黄)とモデルの期待値(赤)が一致するとき(緑)、パラメータが最適になる。

パラメータの最尤推定では、$N$ 個の観測データ$\{x_i\}_{i=1}^N$ から対数尤度を最大化する。 サンプルインデックス $i$ とノードインデックス$j, k$ の二重添字で表すと:

$$\ell(\Theta) = \sum_{i=1}^N \left[\sum_{(j,k) \in E} \theta_{jk}x_{ij}x_{ik} - \Phi(\Theta)\right]$$

ここで $x_{ij}$ は 「$i$ 番目のサンプルにおけるノード$j$ の値」を意味する。 この最大化条件は直感的だ:

$$\hat{E}(X_jX_k) = E_\Theta(X_jX_k)$$

「データから見た $X_j$$X_k$ の同時出現率」と 「モデルが予測する同時出現率」が一致するとき、パラメータが最適になる。 ここで $\hat{E}$ の「ハット」は 経験(データから計算した)平均を意味する。

ただし、$p > 30$ の場合には$2^p$ 通りの状態を列挙する必要があり、分配関数を正確に計算することは非常に難しくなる。 そのため実用上は、ギブスサンプリング平均場近似などの近似法が使われる。

隠れノード — 観測できない変数の役割

「すべての変数が観測できるとは限らない」— これが現実の難しさだ。

ノードを2種類に分けよう:

可視ノードと隠れノードの関係
実線の青い円が可視ノード(観測可能)、点線の黄色い円が隠れノード(観測不能)。隠れノードが消えても、それを通じた間接的な接続が残る。

隠れノードがある場合、観測データだけの対数尤度は 隠れ変数の周辺化(marginalization) — つまり隠れノードがとりうる全ての値についての合計 — が必要になる:

$$\ell(\Theta) = \sum_{i=1}^N \log\left[\sum_{x_H \in \{0,1\}^{p_H}} \exp\left(\sum_{(j,k) \in E} \theta_{jk}x_{ij}x_{ik} - \Phi(\Theta)\right)\right]$$

勾配は次の形になる:

$$\frac{d\ell(\Theta)}{d\theta_{jk}} = \underbrace{\hat{E}_{V}\{E_\Theta(X_jX_k|X_V)\}}_{\text{データで条件づけた期待値}} - \underbrace{E_\Theta(X_jX_k)}_{\text{モデルの無条件期待値}}$$

ここで $\hat{E}_V$ の 「$V$」は「可視データで平均を取る」ことを、 ハットは「経験平均」を意味する。 第1項は「各観測データを固定したときの隠れ変数を含む期待値の平均」、 第2項は「モデル全体での無条件期待値」だ。

この計算には、各観測についてギブスサンプリングを2回実行する必要がある:

  1. 可視変数 $X_V$ を固定して、隠れ変数 $X_H$ をサンプリング(第1項の計算)
  2. どの変数も固定せず、モデルの定常分布からサンプリング(第2項の計算)

これは計算量が多く、中程度の問題でも非常に遅くなる。 では、この困難をどう解決するか — それがSection 5のRBMだ。

(なお、Section 4ではいったん「グラフ構造が未知の場合」という別の問題を取り上げる。)

グラフ構造の推定 — どのエッジが存在するか

いったん視点を変えよう。これまでは「グラフ構造(どのノード間にエッジがあるか)が既知」という前提だった。 しかし実際には、グラフ構造自体も推定する必要がある。

L₁正則化によるスパースなグラフ構造の推定
完全グラフから始まり、L₁ペナルティで不要なエッジが消えていく。残った緑のエッジが「真の依存関係」を表す。

直感的なアプローチは「余分なエッジをゼロにする」ことだ。 前章で学んだグラフィカルLassoの発想を、 離散変数に応用できる。

実用的な方法として Wainwright らのアプローチ(2007) がある: 各ノード $j$ に対して、 他のすべてのノードを説明変数とするL₁ペナルティ付きロジスティック回帰をフィットする。

これにより:

ガウスモデルとの重要な違いも抑えておこう:

制限付きボルツマンマシン — 深層学習への架け橋

Section 3で「隠れノードがあると計算が困難になる」という問題を見た。 この困難を構造的に解決したのが制限付きボルツマンマシン(Restricted Boltzmann Machine, RBM)だ。

RBMの「制限」とは何か?同じ層内のノード同士は接続しないという制約だ。

RBMの3層構造と交互ギブスサンプリング
可視層V1(青)、隠れ層H(黄)、可視層V2(緑)の3層構造。層間のみ接続され、交互に更新される。

構造は2層(または3層)になっている:可視層 $V_1$、 隠れ層 $H$、可視層 $V_2$

この制約が絶大な効果を生む。各層内のユニットが互いに独立になるため、交互ギブスサンプリングが可能になる:

  1. 可視層を固定して隠れ層をサンプリング
  2. 隠れ層を固定して可視層をサンプリング
  3. 1と2を繰り返す

隠れ層内のユニットが独立になるため、ステップ1では全隠れユニットを並行してサンプリングできる。これが計算を劇的に速くする。

実用例:手書き数字の認識(MNISTデータセット)

対比発散 — 実用的な学習アルゴリズム

RBMの交互ギブスサンプリングは計算効率が良いが、 それでも収束には多くのステップが必要だ。 特に学習初期、パラメータが真の値から遠いときは時間がかかる。

この問題を解決したのが Hinton(2002) による対比発散(Contrastive Divergence, CD)アルゴリズムだ。

対比発散の概念図
青点(データ)から出発し、赤点が数ステップだけ谷の底(最適解)に向かって移動する。完全収束を待たずにパラメータを更新できる。

アイデアはシンプルだ:「マルコフ連鎖が完全に収束するまで待つ必要はない」。 たった1ステップのサンプリングでも、パラメータを正しい方向に更新するのに十分だ。

CDアルゴリズムの手順

  1. データでマルコフ連鎖を初期化する — ランダムな状態から始めるより、データに近い点から始める
  2. 数ステップだけギブスサンプリングを実行(完全収束させない)
  3. 「元のデータの状態」と「少しサンプリングした後の状態」の差でパラメータを更新

2段階学習アプローチは、さらに表現力を高める方法だ:

  1. 第1段階:784個の可視ユニット(画像ピクセル)+ 500個の隠れユニットのRBMを、ラベルなしで画像データのみを使って訓練する
  2. 第2段階:第1段階で学習した隠れユニットの状態(これが画像の「圧縮表現」になっている)を 可視層として、今度はラベルを予測するための別のRBMを積み上げる

この「層を積み重ねて表現を学ぶ」アイデアが、現代の深層学習の出発点となった。 各層が前の層の「特徴」を学習し、複雑な表現を段階的に獲得していく — ディープニューラルネットワークはこの思想を発展させたものだ。

まとめ — 離散グラフィカルモデルの全体像

この章で学んだ離散変数の無向グラフィカルモデルを振り返ろう。

ガウスグラフィカルモデルとIsingモデルの比較
左:連続変数のガウスグラフィカルモデル、右:離散変数のIsingモデル。どちらも「グラフ構造で依存関係を表現する」という共通の思想を持つ。

Isingモデルから制限付きボルツマンマシンの道のりは、 統計力学から機械学習への橋渡しを物語っている。 各ステップで新たな課題が生じ、それを解決する構造的なアイデアが生まれた:

ガウスグラフィカルモデルと離散グラフィカルモデルは、 連続変数・離散変数という違いはあるものの、変数間の依存関係をグラフで表現するという同じ思想を共有している。

特にRBMは「教師なしで特徴量を学習する」という革新的なアイデアを持ち、 現代のディープラーニングの先駆けとなった。$X_j$ が手書き数字の各ピクセルであれば、 隠れユニット $H$ は「曲線」「角」「ループ」などの 低次特徴を自動的に発見する