質問: 隠されたベクトルがRBMで果たす役割は何ですか? 私は制限されたボルツマンマシンについて学んでいますが、私は隠れベクトルRBMは役に立たない。 以下は、隠れたベクトルが果たす役割に対する私の2つの理解です。私は何かを誤解したことがありますか?もしそうでなければ、それらのベクトルが果たす役割はどう違うのでしょうか? 1. This is the first understanding: **I learned from this video RBM that hidden units are just structural support and we don't care about what those hidden vectors really are.** We introduce hidden units into RBM just for it to gain more expressive power for probability distribution. Let's say I have only one image, and I transform this image to a binary vector and feed this vector into a RBM with random variables (all the weights and biases are chosen randomly). Then, by turning on the machine, the first hidden vector would be constructed. But this hidden vector does not tell us anything, it would be only used to reconstruct a visible vector. **(my understanding for this reconstructed visible vector is this vector is a vector encoded in the defined RBM in the first place, we are not really construct something new, but we just happen to sample this vector from the defined RBM)** And we just run this loop of construction and reconstruction for infinitely many times. Finally, what we will get is just the probability distribution encoded in this RBM with random variables. 2. My second understanding goes like this: **RBM can be used to perform dimensionality reduction, and those hidden vectors are some abstract representations of the raw inputs**: Given a RBM, each hidden units of the RBM would be a classifier, and what it does is to check the input vector lies in which side of the hyperplane defined by this hidden unit(by the weights and bias). So, if we input an image into this RBM, what the RBM will do is to project this input vector onto those hyperplanes defined by all the hidden units. Thus for an input vector, the corresponding hidden vector is very important, it is some abstract representation. And we can further feed this representation into other models for doing classification. RBMがMNISTにどのように使用されているかを説明することで、あなたが私にとって非常に役立つと答えていただければ、これらは私の理解です。
回答: 私の視点からは、両方の答えが正しい - それはあなたが達成したいものに依存します。 RBMを使用する方法の1つは、**生成モデル**です。これを行うには、入力データの実際の分布に可能な限り近い分布を生成する重みを得るためにネットワークを訓練します(CDがサンプルに収束しないことが分かっている流通、しかしこれはちょうど脇に)。たとえば、部分的または完全に新しい画像から画像を再構成することができます。このコンテキストでは、隠れユニットの主な目的は、ネットワークのパワーを増加させることです。隠れユニットを持たないボルツマンマシンは、同じ第2の瞬間でターゲット分布を区別できません。しかし、あなたの主な目標はサンプルを生成することなので、その間および後の隠れユニットの実際の価値はあまり重要ではありません。 **機能**を検出するためにモデルを使用する場合は、隠しユニットに追加の役割があります。これを説明するために、学習アルゴリズムとして対比発散を使用するとします。その後、各反復で、可視ユニットから隠しユニットをサンプリングし、隠れユニットの新しい値から可視ユニットをサンプリングします。結果が目に見える単位の元の値に近い場合、つまり、**再構築エラー**が小さい場合、明らかに、隠れユニットと重みは、値を再構成するためのトレーニングデータについて十分に学習しています隠れユニットの値から見えるユニットの数。あなたが言うように、これは実際には次元の縮小またはオートエンコーダーに似ています。隠しユニットの上に2番目のRBMを作成することができます。つまり、RBMをスタックして深層ネットワークを構築することができます。新しい階層の隠れユニットでは、トレーニングデータの抽象的な機能がますます学習されます。