Science

【入門】グラフィカルモデルと統計的機械学習

【入門】グラフィカルモデルと統計的機械学習

 

Yuma
Yuma
グラフィカルモデルの中でも無向グラフィカルモデルに焦点を当てて、生成モデルとの関連性を解説していきます。

 

本記事の内容

  1. グラフィカルモデルについて
  2. グラフィカルモデルと統計的機械学習
  3. 無向グラフィカルモデルの統計的機械学習

 

 

本記事を読むことでグラフィカルモデルを使ってデータの背後に仮定される確率分布を近似的に再現する学習モデルを学習する方法を学ぶことができます。

本記事の結果を利用することとで、さまざまな学習モデルの学習方程式を導出することができます。

生成モデル?』という方は下記を参考にしてください。

【入門】生成モデルと統計的機械学習について(機械学習)機械学習の一つである生成モデルの基本的な枠組みについて説明しました。これらの枠組みを最初の段階で理解することで高度なモデルも理解することが可能になります。...

 

グラフィカルモデルについて

 

数学のグラフの定義からグラフィカルモデルの導入とメリットを順番に説明していきます。

  1. グラフについて
  2. グラフィカルモデルについて
  3. グラフィカルモデルのメリット

 

グラフについて

 

ここで考えるグラフは皆さんがイメージしているようなグラフではなくて、数学的なグラフです。

数学的なグラフとは、ノード(頂点 or 頂点)集合\(\Omega = \{\Omega_{1}, \ldots, \Omega_{N}  \}\)と、そのノードを結合したエッジ(リンク)集合\(\mathcal{E} = \{E_{ij} \mid V_{i}, V_{j} \text{の間にエッジが存在} \} \)の構造物を表します。

すなわち、数学的なグラフは、\((\Omega, \mathcal{E})\)によって定義されます。

エッジの中でも、方向をもち矢印で書かれるもの(有向エッジ)と、方向を持たないもの(無向エッジ)の2種類があります。

一般的には、\( \Omega_{i} \), \(\Omega_{j}\)の有向エッジは\(\Omega_{i} \to \Omega_{j} \)と表され、無向エッジは\(\Omega_{i} – \Omega_{j}\)と表されます。

全てのエッジが方向を持つグラフを『有効グラフ』と呼び、方向を持たないものを『無向グラフ』と呼びます。

典型的な例を下に示します。

 

グラフ

グラフ理論では、すべてのノード対がエッジで結ばれているグラフを『完全グラフ』といいます。

 

グラフィカルモデル

 

ある確率変数をグラフの各ノードに、その確率変数間の関係性(条件付き独立性)をエッジに対応させたグラフを『グラフィカルモデル』といいます。

 

有効グラフに確率変数を対応させたものを、『有効グラフィカルモデル(ベイジアンネットワーク)』といい、『無向グラフィカルモデル(マルコフ確率場)』といいます。

 

グラフィカルモデルをメリット

 

グラフィカルモデルの最大のメリットは、ノードに対応させた確率変数間の条件付き独立性を表現することができ、同時確率分布をコンパクトな条件付き確率の積で因数分解可能なことです!

また、視覚的に確率変数間の関係を捉えることができるため近似アルゴリズム開発の開発にも役に立ちます。

『条件付き独立性がよくわからん…』という方は下記を参考にしてください。

条件付き独立性

独立ではない確率変数が、他の変数で条件つけることで独立になる性質のことです。

つまり、条件付き独立な確率変数は、以下のように通常では独立になりませんが、

$$P(A, B) \neq P(A)P(B)$$

他の変数で条件つけることで、独立になる確率変数です。

$$P(A, B \mid C) = P(A \mid C) P(B \mid C)$$

 

 

無向グラフィカルモデル(マルコフ確率場)

 

詳しい解説はしませんが、有効グラフィカルモデルの場合は、矢印が条件付き確率による因果関係に直接対応します。

では、無向グラフィカルモデル(マルコフ確率場)の場合はどうなるでしょうか?

一般に無向グラフィカルモデル(マルコフ確率場)では、無向グラフの構造に従ってエネルギー関数\(E({\bf x})\)を定義します。

ここで、\({\bf x} = (x_{1}, x_{2}, \ldots, x_{N})^{\text{T}}\)を表します。

このようなエネルギー関数を用いて、以下のような確率モデルを無向グラフに対応させます。

$$ P({\bf x}) = \frac{1}{Z} \exp \left(- E({\bf x}) \right)$$

ここで、\(Z\)は分配関数と呼ばれ、全ての可能な\( {\bf x} \)に関する確率の総和\(\sum_{{\bf x}} P({\bf x}) = 1\)にするための規格化定数を表し、以下のように定義されます。

$$Z = \sum_{{\bf x}} \exp \left(- E({\bf x}) \right) = \sum_{x_{1}} \sum_{x_{2}} \cdots \sum_{x_{N}} \exp \left(- E({\bf x}) \right) $$

よく使用されるエネルギー関数としては以下のような形があります。

$$E({\bf x}) = ~- \sum_{i \in \Omega} \phi_{i}(x_{i}) ~- \sum_{\{i, j\} \in \mathcal{E}} \psi_{ij}(x_{i}, x_{j})$$

各項は以下のように呼ばれます。

  • \( \phi_{i} \) :  バイアス項と呼ばれ、各ノードの取る値の偏りを表す
  • \( \psi_{ij} \) : 重み(結合項)と呼ばれ、確率変数間の関係性を表す

これらの具体的な関数系は、与えられたタスクに応じて自分でカスタマイズします。

 

グラフィカルモデルと統計的機械学習

 

グラフィカルモデルと統計的機械学習の関係について説明していきます。

「統計的機械学習?」という方は下記を参考にしてください。

【入門】生成モデルと統計的機械学習について(機械学習)機械学習の一つである生成モデルの基本的な枠組みについて説明しました。これらの枠組みを最初の段階で理解することで高度なモデルも理解することが可能になります。...

 

グラフィカルモデルを学習モデルに設定

 

統計的機械学習とは、与えられたデータから生成モデルを構築することを意味します。

具体的には、学習モデルを仮定し、その学習モデル特徴づけるパラメータをデータから決定することで構築します。

しかし、『学習モデルを仮定する』と一言で言われても難しいですよね。

適切に学習モデルを仮定する際には、「事前知識をどのように学習モデルに埋め込むべきか?」というのが重要になりそうです。

そこで、事前に与えられている因果関係や、変数同士の関係性をうまく可視化できるグラフィカルモデルが役に立つのです。

 

無向グラフィカルモデルの隠れユニット

 

これまでのモデルでは、与えられたデータと確率変数が一対一対応するように学習モデル(グラフィカルモデル)を構成していました。

しかし、実際の観測データでは情報が欠損していることも多いです…

そこで、一つの対処策としてはデータに対応しない確率変数をグラフィカルモデルに加えて冗長なネットワークを構築するという手法が考えられます。

そのような、データに対応しない確率変数を『隠れ変数』と呼びます。

本記事では、グラフのノードに対応していた変数\( {\bf x} \)をデータに対応する変数(可視変数)\( {\bf v} = (v_{1}, v_{2}, \ldots v_{N_{v}})^{\text{T}} \)と表し、隠れ変数を\( {\bf h} = (h_{1}, h_{2}, \ldots h_{N_{h}})^{\text{T}} \)と表すことにします。

ここで、可視変数の総数を\(N_{v}\)とし、隠れ変数の総数を\(N_{h}\)としました。

 

無向グラフィカルモデル(エネルギーベースモデル)の統計的機械学習

 

今回は、無向モデル(エネルギーベースモデル)の統計的機械学習に焦点を当てて解説していきます。

ここで、与えられたデータから学習モデルのパラメータを決定する方法として、『KLダイバージェンス最小化』という手法を利用します。

以下では、学習モデルのパラメータをまとめて\(\theta\)と書くことにします。

*データの経験分布と学習モデルのKLダイバージェンス最小化は、最尤推定によるパラメータ推定と一致するため最尤推定をしていると思っても良いです。

 

可視変数のみのモデル

 

可視変数のみのモデルの場合は、エネルギー関数\(E({\bf x} ; \theta) \)によって学習モデルは以下のように定義されます。

$$Q_{\theta}({\bf x}) = \frac{1}{Z} \exp \left(- E({\bf x} ; \theta)  \right),~~~~~ Z = \sum_{{\bf x}} \exp \left(- E({\bf x} ; \theta) \right)$$

この学習モデルと経験分布の間のKL Divergenceを最小化するようにパラメータを選びます。

$$\text{D}_{\text{KL}}(\theta) = \sum_{{\bf x}} \hat{P}({\bf x}) \log \frac{\hat{P}({\bf x})}{Q_{\theta}({\bf x})}   $$

最小値を求めるために微分する値を見つけます。

\begin{align}\frac{\partial}{\partial \theta} \text{D}_{\text{KL}}(\theta) &=  \frac{\partial}{\partial \theta} \sum_{{\bf x}} \hat{P}({\bf x}) \left(\log \hat{P}({\bf x}) – \log Q_{\theta}({\bf x})  \right) \\ &= ~ – \frac{\partial}{\partial \theta} \sum_{{\bf x}} \hat{P}({\bf x})  \log Q_{\theta}({\bf x}) \\ &= 0 \end{align}

ここで、仮定した学習モデルを代入することでさらに計算を進めることができます。

\begin{align} – \frac{\partial}{\partial \theta} \sum_{{\bf x}} \hat{P}({\bf x})  \log Q_{\theta}({\bf x}) &=  \frac{\partial}{\partial \theta} \sum_{{\bf x}} \hat{P}({\bf x}) \left(\log e^{-E({\bf x} ; \theta)} – \log Z \right) \\ &= \sum_{{\bf x}} \hat{P}({\bf x}) \left(\frac{\partial E}{\partial \theta} \right) – \sum_{{\bf x}} Q_{\theta}({\bf x}) \left(\frac{\partial E}{\partial \theta}  \right) \\ &= \left\langle \frac{\partial E}{\partial \theta}  \right\rangle_{\text{data}} – \left\langle \frac{\partial E}{\partial \theta} \right\rangle_{\text{model}} \end{align}

ここで、\( \langle \cdots \rangle_{data} = \sum_{{\bf x}} \hat{P}({\bf x}) \cdots \)を表し、\( \langle \cdots \rangle_{model} = \sum_{{\bf x}} Q_{\theta}({\bf x}) \cdots \)を表します。

このような連立方程式を学習方程式と呼ぶこともあります。

一般に、この連立方程式を解くことは難しいため、以下のようなアルゴリズム(勾配降下法)を用いて数値的に解きます。

$$\theta^{(t+1)} \leftarrow \theta^{(t)} ~- \epsilon \left(\left\langle \frac{\partial E}{\partial \theta}  \right\rangle_{\text{data}} – \left\langle \frac{\partial E}{\partial \theta} \right\rangle_{\text{model}}  \right) $$

 

隠れ変数をもつモデル

 

まず、隠れ変数と可視変数をもつエネルギー\( E({\bf v}, {\bf h} ; \theta) \)を用いて以下のような確率分布を定義する。

$$P({\bf v}, {\bf h} \mid \theta) = \frac{1}{Z} e^{- E({\bf v}, {\bf h} ; \theta)} ,~~~~~ Z = \sum_{{\bf v}, {\bf h}} e^{- E({\bf v}, {\bf h} ; \theta)} $$

隠れ変数をもつモデルは、以下のように隠れ変数を周辺化したモデルを学習モデルに採用します。

$$Q_{\theta}({\bf v}) = \sum_{{\bf h}}P({\bf v}, {\bf h} \mid \theta) $$

同様に、この学習モデルと経験分布の間のKL Divergenceが最小になるようにパラメータを決定します。

\begin{align}\frac{\partial}{\partial \theta} \text{D}_{\text{KL}}(\theta) &= ~ – \frac{\partial}{\partial \theta} \sum_{{\bf x}} \hat{P}({\bf x})  \log Q_{\theta}({\bf x}) \\ &=~ – \frac{\partial}{\partial \theta} \sum_{{\bf v}} \hat{P}({\bf v}) \left(\sum_{\bf h} e^{- E({\bf v}, {\bf h} ; \theta)} – \log Z  \right) \\ &= \sum_{{\bf v}} \hat{P}({\bf v}) \sum_{{\bf h}} P({\bf h} \mid {\bf v}) \left(\frac{\partial E}{\partial \theta}  \right) – \sum_{{\bf v}, {\bf h}} P({\bf v}, {\bf h}) \left(\frac{\partial E}{\partial \theta}  \right) \\ &= \left\langle \frac{\partial E}{\partial \theta} \right\rangle_{data} – \left\langle \frac{\partial E}{\partial \theta} \right\rangle_{model} \end{align}

ここで、\( \langle \cdots \rangle_{data} = \sum_{{\bf x}} \hat{P}({\bf x}) \sum_{{\bf h}} P({\bf h} \mid {\bf v}) \cdots \)を表し、\( \langle \cdots \rangle_{model} = \sum_{{\bf x}} Q_{\theta}({\bf x}) \cdots \)を表します。

同様に、以下のようなアルゴリズム(勾配降下法)を用いて数値的に解きます。

$$\theta^{(t+1)} \leftarrow \theta^{(t)} ~- \epsilon \left(\left\langle \frac{\partial E}{\partial \theta} \right\rangle_{data} – \left\langle \frac{\partial E}{\partial \theta} \right\rangle_{model}  \right)$$

これで、隠れ変数をもつタイプのモデルも学習できます。

参考文献

 

参考文献について紹介します。

パターン認識と機械学習 下

 

確率的グラフィカルモデル

 

深層学習 Deep Learning

 

これならわかる深層学習入門

 

深層学習

 

どの本もわかりやすくオススメです。

 

まとめ

 

グラフィカルモデルと統計的機械学習について簡単に説明しました。

  1. グラフィカルモデルについて
  2. グラフィカルモデルと統計的機械学習
  3. 無向グラフィカルモデルの統計的機械学習

 

これらの一般論を理解しておくことで、ボルツマンマシンや制限ボルツマンマシンの学習法を簡単に理解することができます。

また、上記の考え方は一般のグラフィカルモデルに対して成り立つため新たなモデルを作成するときのベースラインになります。

また、筆者の誤植や理解の違いがあった場合は、Twitter等でコメントいただけると幸いです。

ABOUT ME
努力のガリレオ
【運営者】 : 東大で理論物理を研究中(経歴)東京大学, TOEIC950点, NASA留学, カナダ滞在経験有り, 最優秀塾講師賞, オンライン英会話講師試験合格, ブログと独自コンテンツで収益6桁達成 【編集者】: イングリッシュアドバイザーとして勤務中(経歴)中学校教諭一種免許取得[英語],カナダ留学経験あり, TOEIC650点