私は RBM を実装しようとしています。次に、プレイ テニス ケースを使用して rbm をテストしました。
以前にオートエンコーダーを試したことがありますが、結果は良好でした。実際、RBM 自体の機能と混同しています。オートエンコーダーと同じように、特徴抽出のために入力 (各インスタンス) をエンコードし、モデル (ネットワーク) をテストまたは検証して、いくつかのインスタンスのエンコードとデコードを試みることができると思います。
しかし、私が直面した問題は、RBM の一部の関数の結果が奇妙に思われることでした。
たとえば、ギブス サンプリングの結果、サンプリング データの結果は実際のデータに非常に近いです。効果は、サンプリング データからの h(x) の結果であり、実際のデータは十分に近いものです。
そのため、非表示層のすべてのユニットを実際の値にデコードした結果を比較しようとすると、結果は悪く、各機能 (ユニット) の結果はほぼ同じで、約 0.4 から 0.5 です。
そして、失われた関数の f(x) = 1/m*sigma(log(p(x))) 自体は約 0.07142857142857142 であり、決して変化しません (約 0.00000000000000001 または 0.0000000000000002 の変化)。
入力範囲の値が 0 から 1 になるように、標準の正規化を使用して、各機能に継続値を使用しました。
誰にも提案がありますか?
*下手な英語でごめんなさい:D