Goodfellow,Bengio,CourvilleさんのDeep learning本の16章まとめ

# Goodfellow,Bengio,CourvilleさんのDeep learning本の16章まとめ

* 重要と思った部分だけ独断で抽出しています.
* 本当にメモ書き程度です.すみません.
* 間違っている記述があるかもしれません.
* 心眼で書いている部分があるかもです.
* Bishop本の8章をだいたい読んでおくことをお勧めします.
* KollerさんのProbabilistic Graphical ModelsというCourseraの講義もオススメです.

## 16 Structured Probabilistic Models for Deep Learning

* Structure Probabilistic Modelとはgraphical modelとほぼ同義である.
* 確率モデルの難しい点は変数の相互作用の仕方とかグラフの構造を決める点である.

### 16.1 The Challenge of Unstructured Modeling

* 確率モデルのモチベーションとして分類以外に次のようなものがある.
    * 密度推定
    * Denoising: Noiseを取ること
    * Imputation: Missing valueを推測すること. 
    * Sampling
* 一般的に何千もの変数があるときむやみにモデルを組むのは計算的にも統計学的にも無謀である.
* Structured probilistic modelは変数間の相互作用を制限することによって上の問題を解決する.

### 16.2 Using Graphs to Describe Model Structure

有向モデルと無向モデルの二種類に分かれる.

#### 16.2.1 Directed Models

* Bayeisan networkともいう.
* 条件付き確率でモデリングしていく.

#### 16.2.2 Undirected Models

* Markov random fieldともいう.
* 相互作用に因果性が特にないとき無向モデルを使う.
* グラフのクリークの集合を$G$とするとき　$\tilde{p}(x) = \prod_{C\in G}\phi (C) $となる.(規格化されている必要はない, また非負である必要がある)

#### 16.2.3 The Partition Function

* さきほどの分布を規格化したいとする. しかし一般的に規格化定数を求めるため積分をすることは難しい. 加えて積分が発散して存在しないこともある.
* 無向モデルのほうがゆるい
* 無向モデルにおいて変数のDomainは確率分布に重要な影響をもたらす(binaryであるかとか実数かとか)

#### 16.2.4 Energy-Based Models

* $\tilde {p}(x)$が0とならないとき$exp(-E(x))$とかける. $E(X)$はエネルギー関数である.
* さきほどの分布をBoltzman分布という. そこでそのような分布に基づくモデルをBoltzmann machineという.
* 潜在変数をもっていなくてももっていてもいいけど, もっている場合をBoltzmann machineといいもっていない場合はMarkov random fieldsと言うことが多い.
* logをとってやることでEnergy-Based Modelsの確率分布がエネルギーの足しあわせからできているという解釈ができる

#### 16.2.5 Separation and D-separation 

* 無向モデルのとき条件付き独立性の判定は簡単である. 経路が遮断されていたら条件付き独立の判断すればよい.
* 有向モデルのとき条件付き独立性の判定はちょいめんどい. (いわゆる弁明現象がおきる,Bishop本を詳しくは参考)
* グラフから全ての独立性がわかる訳ではないことに注意

#### 16.2.6 Converting between Undirected and Directed Graphs

* 有向か無向どちらがいいかは状況に依存する
* 例えばsamplingは有向グラフが簡単だし, 変分推論では無向グラフが有効な時がおおい.
* 完全グラフみたいなものは無向グラフの枠組みだと一つのクリークとして捉えられるが, 有向グラフの枠組みだと非循環になって悲惨なことになる.
* 無向の枠組みではそのまま捉えられない有向なグラフがある. それをimmortalityという. 親同士が結婚していないイメージである. 有向から無向にしたかったら親同士を結婚させるmoralized graphを作ればよい.
* 反対側でも同じようなこと成立

#### 16.2.7 Factor Graphs 

* 無向グラフの曖昧さを補うためにあるものが因子グラフである.
* 因子グラフは因数分解を詳細に表現する
* 無向グラフに対応する因子グラフの場合, 局所的な同時分布が因子となる.
* 有向グラフに対応する因子グラフの場合, 局所的な条件付き分布が因子となる.

#### 16.3 Sampling from Graphical Models

* 有向モデルのときには伝承サンプリグを用いればよい.
* 伝承サンプリングは早いしが, 有向グラフかつ変数がうまく順序付けされていなければ使えない.
* 無向グラフの場合はGibbs samplingを使うことが多い.

### 16.4 Advantages of Structured Modeling

* Structured Modelingを使うことは計算コストの面でよい.

### 16.5 Learning about Dependencies

#### 16.5.1 Latent Variables Versus Structure Learning
* ここでいうStructure Learningとは潜在変数を用いない観測変数だけから作られたGraphical modelのことを指している
* よいStrcture modelは高次の相互作用を考慮に入れたものとなる. しかし計算論的な意味でも統計的な意味でもコストが高い. (例えばメモリの問題とか次元爆発の問題)
* Structure modelでは良いモデルを探すことが難しい. 基本的には貪欲法になる. もっというとモデルの複雑さを罰則項とするようスコアを用いてもっともよいスコアを持つ構造を探す.(詳しくはKollerさんのProbabilistic Graphical ModelsというCourseraの講義とか参照)
* 一方, 潜在変数を用いるModelingでは相互作用を潜在変数に落とし込む. 構造を固定しても全然大丈夫.

#### 16.5.2 Latent Variables for feature Learning

* 潜在変数を用いることがfeature learningに繋がる. つまり観測変数$v$, 潜在変数$h$があるときhが特徴量となる.

### 16.6 Inference and Approximate Inference

* 潜在変数の事後確率であったっり, 周辺化されたものを計算することは一種の推論の問題と言える.
* 厳密に計算することは難しい(木構造を持つ因子グラフにおいては積和アルゴリズムというメッセージをだんだん伝搬していくアルゴリズムがある, Bishop本参照)
* そこで近似を行う. 19章で事後確率を近似する変分近似について語られる.

### 16.7 The Deep Learning Approach to Structured Probabilistic Models

* 伝統的なgraphical modelとDeep learning styleのgraphical modelの違いとしてまず挙げられるものはモデルの"深さ"の意味の違いである. つまり伝統的な方は深さをモデルの見かけ上の複雑さで判断するが, Deep learning的にはComputational graphの意味での複雑さが重要である.
*  先ほども話した通りDeep learningでは(伝統的なgrphical modelより)潜在変数の数が多くて,　潜在変数たちに相互作用を担わせている.　一方, 伝統的な方は観測変数を複雑に結ぶことで相互作用を表す.
*  Deep learningを使うとき, 使う人は意図して潜在変数に意味をもたせることはない. (よくわからないが結果的に意味を持っている)一方, 伝統的な方は解釈できるようにモデルを組み潜在変数を使う場合も直接的に意味のあるものを使うことが多い. 後者は解釈が分かりやすいという点で良いが, scalabilityがないとか汎用性がないという問題点がある.
* 他の違いとしてconnectivityの違いがある. 伝統的な方は計算上とかの問題で変数同士のconnectionが少ない.　一方, deep learningの方は観測変数がたくさんの潜在変数とつながっていて分散化された表現になっている.
* 伝統的なgraphical modelでは使われるbelief propagationはdeep learningでは使われない. Deep learningではGibbs samplingや変分推論を使う.
* 最後に挙げられている違いとしてunknownにどれだけ耐えられるかということが書いてある.

#### 16.7.1 Example: The Restricted Boltzmann Machine
* RBMでは潜在変数と隠れ変数があって潜在変数内, 観測変数内では直接的な相互作用がない.
* Block Gibbs samplingで$h$や$v$を交互にサンプリングできる. (条件付き独立なのでブロック化できる)

### 参考文献

http://www.deeplearningbook.org/