Artificial-neural-network-boltzmann-machine

提供:Dev Guides
移動先:案内検索

ボルツマンマシン

これらは、反復構造を持つ確率的学習プロセスであり、ANNで使用される初期の最適化手法の基礎です。 ボルツマンマシンは、1985年にジェフリーヒントンとテリーセノフスキーによって発明されました。 より明確なことは、Boltzmann MachineのHintonの言葉で見ることができます。

「このネットワークの驚くべき機能は、ローカルで利用可能な情報のみを使用することです。 重量の変化は、それが接続する2つのユニットの動作にのみ依存しますが、たとえ変化によってグローバルな測定値が最適化されるとしても」

ボルツマンマシンに関するいくつかの重要な点-

  • 繰り返し構造を使用します。
  • これらは確率ニューロンで構成され、1または0の2つの可能な状態のいずれかを持ちます。
  • このニューロンの一部は適応型(自由状態)で、一部は固定されています(凍結状態)。
  • シミュレートされたアニーリングを離散ホップフィールドネットワークに適用すると、ボルツマンマシンになります。

ボルツマンマシンの目的

ボルツマンマシンの主な目的は、問題の解決を最適化することです。 その特定の問題に関連する重みと量を最適化するのは、ボルツマンマシンの仕事です。

建築

次の図は、ボルツマンマシンのアーキテクチャを示しています。 図から明らかなように、これはユニットの2次元配列です。 ここで、ユニット間の相互接続の重みは –p です( p> 0 )。 自己接続の重みは b で与えられます( b> 0 )。

ボルツマン

トレーニングアルゴリズム

ボルツマンマシンの重みは固定されていることがわかっているため、ネットワーク内の重みを更新する必要がないため、トレーニングアルゴリズムはありません。 ただし、ネットワークをテストするには、重みを設定し、コンセンサス関数(CF)を見つける必要があります。

ボルツマンマシンにはユニット* U〜i〜および U〜j〜*のセットがあり、それらに双方向接続があります。

  • * w〜ij〜*などの固定ウェイトを検討しています。
  • * U〜i〜 U〜j〜が接続されている場合、 *w〜ij〜≠0 また、重み付き相互接続には対称性があります。 * w〜ij〜 = w〜ji〜**。
  • * w〜ii〜*も存在します。 ユニット間に自己接続があります。
  • ユニット* U〜i〜の場合、その状態 u〜i〜*は1または0になります。

ボルツマンマシンの主な目的は、次の関係によって与えられるコンセンサス関数(CF)を最大化することです。

CF \:= \:\ displaystyle \ sum \ limits _ \ {i} \ displaystyle \ sum \ limits _ \ {j \ leqslant i} w _ \ {ij} u _ \ {i} u _ \ {j}

さて、状態が1から0または0から1に変化すると、コンセンサスの変化は次の関係によって与えられます-

\ Delta CF \:= \ :( 1 \:-\:2u _ \ {i})(w _ \ {ij} \:+ \:\ displaystyle \ sum \ limits _ \ {j \ neq i} u _ \ { i} w _ \ {ij})

ここで、* u〜i〜 U〜i〜*の現在の状態です。

係数の変動(* 1-2u〜i〜*)は次の関係で与えられます-

(1 \:-\:2u _ \ {i})\:= \:\ begin \ {cases} +1、およびU _ \ {i} \:is \:currently \:off \\-1、& U _ \ {i} \:is \:currently \:on \ end \ {cases}

通常、ユニット* U〜i〜*は状態を変更しませんが、変更すると、情報はユニットのローカルに存在します。 その変更により、ネットワークのコンセンサスも増加します。

ユニットの状態の変化を受け入れるネットワークの確率は、次の関係によって与えられます-

AF(i、T)\:= \:\ frac \ {1} \ {1 \:+ \:exp [-\ frac \ {\ Delta CF(i)} \ {T}]}

ここで、 T は制御パラメーターです。 CFが最大値に達すると減少します。

テストアルゴリズム

  • ステップ1 *-以下を初期化してトレーニングを開始します-
  • 問題の制約を表す重み
  • 制御パラメーターT
  • ステップ2 *-停止条件が真でない場合、ステップ3〜8を続行します。
  • ステップ3 *-ステップ4〜7を実行します。

ステップ4 *-状態の1つが重みを変更したと仮定し、整数 *I、J1n の間のランダムな値として選択します。

  • ステップ5 *-コンセンサスの変化を次のように計算します-

\ Delta CF \:= \ :( 1 \:-\:2u _ \ {i})(w _ \ {ij} \:+ \:\ displaystyle \ sum \ limits _ \ {j \ neq i} u _ \ { i} w _ \ {ij})

  • ステップ6 *-このネットワークが状態の変化を受け入れる確率を計算する

AF(i、T)\:= \:\ frac \ {1} \ {1 \:+ \:exp [-\ frac \ {\ Delta CF(i)} \ {T}]}

  • ステップ7 *-この変更を次のように承認または拒否します-

ケースI *- *R <AF の場合、変更を受け入れます。

ケースII *- *R≥AF の場合、変更を拒否します。

ここで、 R は0〜1の乱数です。

  • ステップ8 *-次のように制御パラメーター(温度)を下げます-
  • T(新)=⁡0.95T(旧)*
  • ステップ9 *-次のような停止条件をテストします-
  • 温度が指定値に達する
  • 指定された反復回数の状態に変化はありません