制限付きボルツマンマシン(RBM)の背後にある直感


15

CourseraのGeoff HintonのNeural Networksコースを受講し、制限付きボルトマンのマシンを紹介しましたが、RBMの背後にある直感を理解していませんでした。

このマシンでエネルギーを計算する必要があるのはなぜですか?そして、このマシンでの確率の使用は何ですか?このビデオも見ました。ビデオでは、計算ステップの前に確率とエネルギーの方程式を書いただけで、どこでも使用するようには見えませんでした。

上記に加えて、尤度関数が何のためにあるのか分かりませんか?


私は質問を片付けようとしましたが、もっと仕事が必要だと思います。あなたは何かを説明する必要がないそうでない質問が広すぎる、理解し、より具体的には、あなたが立ち往生しているところ。
— ニールスレーター

頭に入った唯一のことは、3つのステップがあります。最初は正のフェーズ、次に負のフェーズで、その後に重みの再構成が続きます。しかし、エネルギーと確率関数はどうですか?ここでの使用は何ですか?そして、このプロセスを何回行う必要がありますか(正相->負相>重みの再構成)?
— Born2Code 16

回答:


5

RBMは興味深い獣です。あなたの質問に答え、それらについての私の記憶をジョギングするために、RBMを導出し、その導出を通して話をします。あなたは可能性について混乱していると述べたので、私の導出は可能性を最大化しようとする観点からのものになります。それでは始めましょう。

RBMには、可視と非表示の2つの異なるニューロンのセットが含まれています。それぞれと示します。と特定の構成が与えられた場合、確率空間にマッピングします。h v hvhvh

p(v、h)=e−E(v、h)Z

さらに定義することがいくつかあります。特定の構成から確率空間にマッピングするために使用するサロゲート関数は、エネルギー関数と呼ばれます。定数は、私たちが実際に確率空間にマッピングすることを確保するための正規化係数です。それでは、私たちが本当に探しているものに取り掛かりましょう。可視ニューロンのセットの確率、言い換えれば、データの確率。 Z Z = Σ V ∈ V Σ H ∈ H E - E (V 、H )、 P (V )= Σ H ∈ H P (V 、H )= Σ H ∈ H E - E (V 、h )E(v、h)Z

Z=∑v∈V∑h∈He−E(v、h)
p(v)=∑h∈Hp(v、h)=∑h∈He−E(v、h)∑v∈V∑h∈He−E(v、h)

この方程式には多くの用語がありますが、正しい確率方程式を書くだけです。うまくいけば、これまでのところ、確率を計算するためにエネルギー関数が必要な理由、またはより一般的には正規化されていない確率を行う必要があることを理解するのに役立ちました。パーティション関数は計算に非常にコストがかかるため、非正規化確率が使用されます。Zp(v)∗ZZ

次に、RBMの実際の学習フェーズに進みましょう。尤度を最大化するには、すべてのデータポイントについて、勾配ステップを実行してます。勾配式を取得するには、数学的アクロバットが必要です。最初に行うことは、ログを取得することです。数学を実行可能にするために、これから対数確率空間で操作します。p (v )p(v)=1p(v)

P (V )

ログ⁡(p(v))=ログ⁡[∑h∈He−E(v、h)]−ログ⁡[∑v∈V∑h∈He−E(v、h)]
パラメーターに関する勾配を見てみましょう。p(v)

∂ログ⁡(p(v))∂θ=−1∑h′∈He−E(v、h′)∑h′∈He−E(v、h′)∂E(v、h′)∂θ+1∑v′∈V∑h′∈He−E(v′、h′)∑v′∈V∑h′∈He−E(v′、h′)∂E(v、h)∂θ

今、私は紙の上でこれを行い、このサイトで多くのスペースを無駄にしないように準最終的な方程式を書き留めました。これらの方程式を自分で導出することをお勧めします。次に、導出を継続するのに役立ついくつかの方程式を書き留めます。なお:、及びその、P (V )= Σ H ∈ H P (V 、H )、P (H | V )= P (V 、H )Zp(v、h)=e−E(v、h′)p(v)=∑h∈Hp(v,h)p(h|v)=p(v,h)p(h)

∂log(p(v))∂θ=−1p(v)∑h′∈Hp(v、h′)∂E(v、h′)∂θ+∑v′∈V∑h′∈Hp(v′、h′)∂E(v′、h′)∂θ∂log(p(v))∂θ=−∑h′∈Hp(h′|v)∂E(v、h′)∂θ+∑v′∈V∑h′∈Hp(v′、h′)∂E(v′、h′)∂θ

さらに、RBMの最尤推定値を導き出しました。必要に応じて、それぞれの用語(条件付き確率と結合確率)を期待して最後の2つの用語を記述できます。

ニューロンのエネルギー関数と確率論に関する注意。

上記の説明からわかるように、エネルギー関数の定義はかなり曖昧なままにしました。それを行う理由は、RBMの多くの異なるバージョンがさまざまなエネルギー機能を実装しているためです。ヒントンが上記のリンクの講義で説明し、@ Laurens-Meeusが示したものは

E(v,h)=−aTv−bTh−vTWh.

期待値フォームを介して上記の勾配項について推論する方が簡単かもしれません。

∂log⁡(p(v))∂θ=−Ep(h′|v)⁡∂E(v,h′)∂θ+Ep(v′,h′)⁡∂E(v′,h′)∂θ

最初の項の予想は実際に計算するのが本当に簡単で、それがRBMの背後にある天才でした。接続を制限することにより、条件付き期待値は、表示されているユニットが固定されたRBMの前方伝播になります。これは、ボルツマンマシンのいわゆるウェイクフェーズです。現在、2番目の項の計算ははるかに難しく、通常はモンテカルロ法が使用されています。モンテカルロ実行の平均を介して勾配を書く:

∂log⁡(p(v))∂θ≈−⟨∂E(v,h′)∂θ⟩p(h′|v)+⟨∂E(v′,h′)∂θ⟩p(v′,h′)

上記のように、第1項の計算は難しくないため、モンテカルロは第2項で行われます。モンテカルロ法では、分布のランダムな連続サンプリングを使用して、期待値(合計または積分)を計算します。古典的なRBMでのこのランダムサンプリングは、確率に基づいて確率を0または1に設定すること、つまり、ニューロンの確率が1に設定されている場合、ランダムな均一数を取得することとして定義されています0に設定するよりも大きい。


隠れ層のバイナリもどうやって作るのですか?アクティベーション関数操作後のBcozは、0〜1の範囲の値を取得します。
— Born2Code

これは通常、アクティベーションのしきい値を設定することによって行われます。0.5を超えると1になり、それより下は0になります。
— アーメンアガジャニヤン16

しかし、このリンクでは、セクション3.1で、ヒントンは「この確率が0と1の間で一様に分布する乱数よりも大きい場合、隠されたユニットがオンになる」と述べています。これは実際にはどういう意味ですか?また、このリンクでは、「0から1までの一様分布の乱数を選択したときに、その値がsig [j]より小さいことがわかるとj番目のユニットがオンになります。そうでなければオフになります。」私はこれを手に入れませんでした。
— Born2Code 16

????? その特定のユニットがオンまたはオフになっているかどうかを言うには?
— Born2Code 16

編集を追加しました。このアルゴリズムの確率論はそこから導出されるため、モンテカルロ法を読むことをお勧めします。
— アーメンアガジャニヤン

5

既存の答えに加えて、このエネルギー関数と、その背後にある直感についてお話したいと思います。これが少し長くて物理的な場合は申し訳ありません。

エネルギー関数は、いわゆるイジングモデルを記述します。これは、統計力学/量子力学の観点から強磁性のモデルです。統計力学では、いわゆるハミルトニアン演算子を使用して、量子力学的システムのエネルギーを記述します。そして、システムは常にエネルギーが最も低い状態になろうとします。

現在、Isingモデルは基本的に、外部磁場存在下で、+ 1または-1のスピンを持つ電子間の相互作用を記述しています。2つの電子と間の相互作用は、係数によって記述されます。このハミルトニアン(またはエネルギー関数)は で、はハミルトニアンを表します。エネルギー関数から確率に到達するための標準的な手順。システムが所定の状態にあること(つまり、ここで:スピンの構成、例えばσkh私jJ私j

H^=∑私、jJ私jσ私σj−μ∑jhjσj
H^σ1=+1、σ2=−1、。。。)温度と言うボルツマン分布、使用することである、確率システムの状態にあるとエネルギーとで与えられる この時点で、これらの2つの方程式は、ヒントンのビデオおよびArmen Aghajanyanの答えとまったく同じ方程式であることに注意してください。これは次の質問につながります。Tp私私E私
p私=exp⁡(−E私/kT)∑私exp⁡(−E私/kt)

RBMは、強磁性のこの量子力学的モデルと何の関係がありますか?

エントロピーという最終的な物理量を使用する必要があります。熱力学からわかるように、システムは最小エネルギーの状態に落ち着きます。これは最大エントロピーの状態にも対応します。

1946年にシャノンによって導入されるように、情報理論的には、エントロピーまたにおける情報内容の尺度として見ることができるの全ての可能な状態の上、以下の和によって与えられる、: ここで、の情報コンテンツをエンコードする最も効率的な方法は、エントロピーを最大化する方法を使用することです。Hバツバツ

H(バツ)=−∑私P(バツ私)ログ⁡P(バツ私)
バツH

最後に、ここでRBMに戻ります。基本的に、このRBMでできるだけ多くの情報をエンコードするようにします。したがって、RBMシステムで(情報理論的な)エントロピーを最大化する必要があります。1982年にホップフィールドが提案したように、物理理論エントロピーとまったく同じように情報理論エントロピーを最大化できます。上記のIsingモデルのようにRBMをモデリングし、同じ方法を使用してエネルギーを最小化します。それが、RBMでこの奇妙なエネルギー関数が必要な理由です!

Armen Aghajanyanの答えの素敵な数学的導出は、エネルギーを最小限に抑え、エントロピーを最大限にし、RBMにできるだけ多くの情報を保存/保存するために必要なすべてを示しています。

PS:親愛なる物理学者、この技術者の派生の不正確さを許してください。不正確(または間違い)についても、コメントしたり修正したりできます。


私はこのビデオを見ました、その時点からビデオを見てください。サンプリングされた数値をどのように取得しますか?matlabでrand()を実行して取得しただけですか?そして、それはh(i)ごとに異なります。おお 機械が適切に学習するとは思わない。
— Born2Code 16

@ Born2Codeこれは別の質問です。新しい質問としてこのサイトに投稿できますか?話している方程式を新しい質問に追加して、理解できない部分を説明してください。
— hbaderts


0

@Armenの答えは、私に多くの洞察を与えました。ただし、1つの質問には答えられていません。

目標は、確率(または尤度)を最大化することです。これは、および関連するエネルギー関数の最小化と相関しています。vvh

E(v、h)=−aTv−bTh−vTWh

変数は、、およびであり、これらはトレーニングする必要があります。このトレーニングがRBMの究極の目標になると確信しています。abW


隠れ層のバイナリもどうやって作るのですか?アクティベーション関数操作後のBcozは、0〜1の範囲の値を取得します。
— Born2Code

@ Born2Code:活性化機能は、したがって、あなたは「それはバイナリ作る」にあなたのニューロンは値1を持っていること確率を与えるサンプルのいずれかのために計算された確率からまたは -あなたは文字通りような何かを他の言葉で-これがなければなりませんニューロンごと、およびサンプルが必要なたびに実行されます。hvh_bin = (rand() < h_val) ? 1 : 0
— ニールスレーター

@NeilSlater:しかし、なぜ乱数なのか?また、各反復でランダムを生成するか、すべての反復で同じ数を使用する必要がありますか?もう1つの深刻な疑い、何回の反復が必要ですか?トレーニングセットVがあり、これには1つのベクトル(v1)しかありません。v1では、何回繰り返す必要がありますか?
— Born2Code 16

@NeilSlater:もう1つの疑問は、同じ乱数を隠しレイヤーのすべての値と比較するかどうかです。これはばかげた質問ですが、それでも
— Born2Code

1
これは、確率がバイナリ値に解決される方法であるため、乱数です。これは、各ニューロンの内部に異なる番号であるhかv、あなたがしている- サンプリングバイナリの値のベクトルhまたはvの代表であることの高い統計チャンスがある、すなわち例-ネットワークが存在している「と考えている」という例を生成するためには、トレーニングセット。トレーニング中に、既存のトレーニング例とどれだけ一致するかを判断し、それに応じて重みを調整します。
— ニールスレーター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.