ホーム » Deep Belief Network

Deep Belief Network」カテゴリーアーカイブ

TensorFlow で制約ボルツマンマシン (RBM)

TensorFlow で制約ボルツマンマシン (RBM : restricted Boltzmann machines)

制約ボルツマンマシン

ニューラルネットワークの層の教師なし学習・事前学習としては、AutoEncoder 以前に RBM – restricted Boltzmann machines, 制約(制限つき)ボルツマンマシン – があります。RBM は相互結合型で無向グラフィカルモデル(= 確率変数の関係を記述)として定義され確率分布が導入されます。Deep Belief Network のビルディングブロックであり深層学習の重要なパーツです。

RBM は EBM – Energy-based モデル(後述)から導出すべきですが、概要を簡単に説明しておきますと、まず BM – ボルツマンマシンは自己結合がない相互結合型ネットワークで、無向 (undirected) グラフ、つまりユニット間は双方向結合になります。ユニット間の重みは対照とします。各ユニットは二値ユニットですがその出力が確率的に決まる点が特徴です。(決定論的に決まる例はホップフィールド・ネットワーク, Hopfield network があります。)各ユニットは確率変数と見なされ、確率分布としてボルツマン分布が導入されます。
更に隠れユニット(or 非可視ユニット – 入力データを直接には処理しません)を持つモデルに拡張することも可能で、十分な数の隠れユニットがあれば複雑な分布を表現できることが知られています。

そして RBM は隠れユニットを持つ BM に visible-visible と hidden-hidden 結合がないように制限します。結果、RBM は可視層(or 入力層)と隠れ層の2層構造を取り、層内での情報伝達はありません。
(但し、複数の隠れ層を持つモデルも考えられます。)

参考: RBM 入門としては deeplearning4j のチュートリアルが分かりやすいです :
A Beginner’s Tutorial for Restricted Boltzmann Machines

Understanding RBMs

本家のペーパーは以下等 :
A Practical Guide to Training Restricted Boltzmann Machines Version 1
Geo rey Hinton, Department of Computer Science, University of Toronto

Energy-based モデルと RBM

少しだけモデル定義についてふれておくと、天下り的ですが、Energy-based モデルの確率分布は一般にエネルギー関数を使って次のように表されます :
\[p(x) = \frac {e^{-E(x)}} {Z}\]

ここで正規化因子(規格化定数、分配関数)は :

\[Z = \sum_x e^{-E(x)}\]

RBM のエネルギー関数は以下 :
\[E(v,h) = – b’v – c’h – h’Wv\]

端的に言えば、この条件下で観測(入力)データ \(x\)が与えられたとして、結合重み \(W\) とバイアス \(b\)、\(c\) を求めたいということです。対数尤度から微分して勾配を求めるわけですが、解析的に解くのは困難なため、実際には次項の Contrastive Divergence 法を用います。

参考: EBM – Energe-based モデルの数学的詳細は以下の 48 ページ “5. Energy-Based Models and Boltzmann Machines” が詳しいです :
Learning Deep Architectures for AI
By Yoshua Bengio

Contrastive Divergence 法

(解析的でない)近似解法として Gibbs sampling、Contrastive Divergence (CD) がありますが、CD 法の実装については以下が比較的親切です。改良版の Persistent CD が使用されています :
Restricted Boltzmann Machines (RBM)

取りあえず Theano の基本サンプルで動作確認してみました。以下は適当な epoch 数後のフィルタ画像、つまり重み行列を画像化したものです :

CD-1

0 epoch

5 epochs

rbm_filters_at_epoch_0-k1

rbm_filters_at_epoch_5-k1

10 epoch

14 epochs

rbm_filters_at_epoch_10-k1

rbm_filters_at_epoch_14-k1

CD-15

10 epoch

14 epochs

rbm_filters_at_epoch_10

rbm_filters_at_epoch_14

 
そして以下は訓練後に RBM から生成された画像です :

CD-1
rbm_samples2

CD-15
rbm_samples

TensorFlow で RBM

TensorFlow で CD 法を実装後、隠れユニット数による reconstruction(復元)の誤差の違いを比較検証してみました。128, 512, 1024 そして 2048 の隠れユニット数で比較してみましたが、明らかに多い方が良い結果を示します。題材は MNIST です :

ccrbm_hidden2

 
ついで、gibbs-sampling のステップ数を違えて比較してみました。1, 3, 5 の順で reconstruction の誤差は悪くなるのですが、これは比較方法が悪いかもしれません。ただ、ステップ数が少なくても、1 ステップでも良いという考え方は間違っていないようです :

ccrbm_gibbs2

 
以下は、連続値を許容する Gaussian-Bernoulli RBM 実装で Cifar-10 を題材に訓練したグラフです :

ccrbm_cifar10_gauss2

 

以上

AI導入支援 #2 ウェビナー

スモールスタートを可能としたAI導入支援   Vol.2
[無料 WEB セミナー] [詳細]
「画像認識 AI PoC スターターパック」の紹介
既に AI 技術を実ビジネスで活用し、成果を上げている日本企業も多く存在しており、競争優位なビジネスを展開しております。
しかしながら AI を導入したくとも PoC (概念実証) だけでも高額な費用がかかり取組めていない企業も少なくないようです。A I導入時には欠かせない PoC を手軽にしかも短期間で認知度を確認可能とするサービの紹介と共に、AI 技術の特性と具体的な導入プロセスに加え運用時のポイントについても解説いたします。
日時:2021年10月13日(水)
会場:WEBセミナー
共催:クラスキャット、日本FLOW(株)
後援:働き方改革推進コンソーシアム
参加費: 無料 (事前登録制)
人工知能開発支援
◆ クラスキャットは 人工知能研究開発支援 サービスを提供しています :
  • テクニカルコンサルティングサービス
  • 実証実験 (プロトタイプ構築)
  • アプリケーションへの実装
  • 人工知能研修サービス
◆ お問合せ先 ◆
(株)クラスキャット
セールス・インフォメーション
E-Mail:sales-info@classcat.com