Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Deepboltzmannmachine

55 views

Published on

深層ボルツマンマシン(DBM)の説明

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

Deepboltzmannmachine

  1. 1. Boltzmann machine 2017 4/22, eF-4 土井
  2. 2. 概要 深層学習の種類の1つである 深層ボルツマンマシン(deep Boltzmann machine, DBM)について ここでは、概念的な説明のみ
  3. 3. ボルツマンマシン(BM)とは =ボルツマン分布を用いて確率密度を計算する生成モデル エネルギー関数Φに-1を掛けたものの指数 関数をとった上で値を規格化したもの 𝑝 𝒙|𝜽 = 1 𝑍 𝜽 exp −Φ 𝒙, 𝜽
  4. 4. BMの学習プロセス パラメターの学習 =「対数尤度関数」 log𝐿 𝜽 = 𝑛=1 𝑁 log𝑝 𝒙 𝑛|𝜽 = 𝑛=1 𝑁 −Φ 𝒙 𝑛|𝜽 − log𝑍 𝜽 の最大化を目的とした「勾配上昇法」 1 𝑁 𝜕log𝐿 𝜽 𝜕𝑏𝑖 = 1 𝑁 𝑛=1 𝑁 𝑥 𝑛𝑖 − 𝒙 𝑥𝑖 𝑝 𝒙|𝜽 1 𝑁 𝜕log𝐿 𝜽 𝜕𝑤𝑖𝑗 = 1 𝑁 𝑛=1 𝑁 𝑥 𝑛𝑖 𝑥 𝑛𝑗 − 𝒙 𝑥𝑖 𝑥𝑗 𝑝 𝒙|𝜽
  5. 5. 制約付ボルツマンマシン(RBM) ボルツマンマシンに ・「隠れ変数」を導入 →最尤推定時の目的関数に隠れ変数に関して周辺化した可視関数のみの分布 ・制約を加える。 =可視ノード同士、隠れノード同士のリンク無し →・可視ノードのみからなる可視層、隠れノードのみからなる隠れ層の2つの層 ・可視層内、隠れ層内の変数が互いに影響しない(条件付き独立)
  6. 6. RBMの計算プロセス このステップ数Tが膨大であれば、 𝒗(𝑻) , 𝒉(𝑻) はサンプルに使った確率分布𝑝 𝒗, 𝒉|𝜽 に近くなる。 → 𝒗, 𝒉のサンプルを複数生成し、平均値を勾配の式中の期待値とする。 (ギブスサンプリング) 少ない計算コストでもよい更新量を得る手法=contrastive divergence法 …ミニバッチで繰り返しサンプリングを行い、同様に期待値を求める。 vを初期化して𝒗(𝟎) …ex.ランダムに各成分を0,1で割り振る →𝑝𝑗 = 𝑝(ℎ𝑗 = 1|𝒗(𝟎)) →(区間 0,1 での一様変数) < 𝑝𝑗ならばℎ𝑗 =1 (区間 0,1 での一様変数) > 𝑝𝑗ならばℎ𝑗 = 0 → 𝑝𝑖 = 𝑝(𝑣𝑖 = 1|𝒉(𝟎)) →(区間 0,1 での一様変数) < 𝑝𝑖ならばℎ𝑖 =1 (区間 0,1 での一様変数) > 𝑝𝑖ならばℎ𝑖 = 0 𝒉(𝟎) 𝒗(𝟏)
  7. 7. RBMの勾配計算 1 𝑁 𝜕log𝐿 𝜕𝑏𝑖 = 1 𝑁 𝑛=1 𝑁 𝑣 𝑛𝑖 − 𝒗,𝒉 𝑣𝑖 𝑝 𝒗, 𝒉|𝜽 1 𝑁 𝜕log𝐿 𝜕𝑐𝑖 = 1 𝑁 𝑛=1 𝑁 𝑝 ℎ𝑗 = 1|𝒗 𝑛 − 𝒗,𝒉 ℎ𝑗 𝑝 𝒗, 𝒉|𝜽 1 𝑁 𝜕log𝐿 𝜕𝑤𝑖𝑗 = 1 𝑁 𝑛=1 𝑁 𝑣 𝑛𝑖 𝑝 ℎ𝑗 = 1|𝒗 𝑛 − 𝒙 ℎ𝑗 𝑝 𝒗, 𝒉|𝜽 →勾配の計算には可視層・隠れ層の期待値が必要 →直接の計算は困難 →ギブスサンプリングで期待値を近似的に計算
  8. 8. 深層ボルツマンマシン(DBM) =RBMを積み上げて構成 最下層に可視層、その上に隠れ層を積み上げる →層が深いほど推定するパラメターの数が増え、局所解に落ちるリスクが高まる 学習の工夫=事前学習 ・下から順に、層2つずつをRBMとみなし、そのペア ごとに事前学習 ・一番下のRBMで学習 →そのRBMにおいて「可視層から隠れ層の条件 付き分布」から隠れ層の値をサンプリング →一つ上のRBMの可視層の入力とみなし、学習
  9. 9. 深層ボルツマンマシン(DBM) =RBMを積み上げて構成 最下層に可視層、その上に隠れ層を積み上げる →層が深いほど推定するパラメターの数が増え、局所解に落ちるリスクが高まる 学習の工夫=事前学習 ・下から順に、層2つずつをRBMとみなし、そのペア ごとに事前学習 ・一番下のRBMで学習 →そのRBMにおいて「可視層から隠れ層の条件 付き分布」から隠れ層の値をサンプリング →一つ上のRBMの可視層の入力とみなし、学習

×