問題タブ [rbm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
584 参照

matlab - GRBM の実装

MATLAB でガウス入力ベースの RBM を実装しています。

vi次元は 100*784、w次元は 784*500、sigma次元は 1*784 です。

p(h|v)= sigmoid(cj+wij*vi/sigma^2). 掛けると寸法誤差が出ますw*v/sigma^2。以下のように実装しましたが、

コードのエラーの原因は何ですか

0 投票する
2 に答える
992 参照

rbm - rbm のガウス可視単位

私はGaussian RBMを実装したいと思っています。そのために、データの平均と単位分散をゼロにしたいのです。私のデータはMNISTデータセットです。データセットは次のリンクから取得されたものです。

http://www.cs.toronto.edu/~hinton/code/makebatches.m にアクセスしてください

以下の方法で実装しましたが、私のデータはNANになります。データを標準偏差で除算するとNANになります。

%START ポジティブ フェーズ

%ゼロ平均と単位分散

私はこれを小さな例のセットで試しました.うまくいきます.NANになる理由は何ですか.

これを取り除き、ゼロ平均と単位分散でガウス入力を作成する方法。

0 投票する
1 に答える
2517 参照

machine-learning - RBM を使用したディープ オートエンコーダー

RBM を使用してディープ オートエンコーダーを実装しています。ネットワークを展開するには、エンコーダーの転置された重みをデコーダーに使用する必要があることを理解しています。しかし、デコーダーにどのバイアスを使用すればよいかわかりません。誰かが私のために詳しく説明したり、疑似コードのリンクを送ってくれたりしてくれれば幸いです。

0 投票する
1 に答える
1540 参照

machine-learning - 制限付きボルツマン マシンの実装をテストする方法は?

単純なバイナリ制限付きボルツマン マシンの実装を開発しましたが、それをテストしたいと思います。(最終的には DBN に使用するつもりですが、個別にテストしたいと思います)。

MNIST データセットのテストについて何人かの人々や論文が話しているのを見ましたが、それを行う方法の詳細は見つかりませんでした。

隠れユニットに接続された新しい分類レイヤーを追加し、逆伝播を使用してトレーニングする必要がありますか? 別の方法はありませんか?

重みをプロットしている人もいますが (これも MNIST で)、重みをプロットする方法と、それが何を表しているかについて問題があります...

ありがとう

0 投票する
2 に答える
753 参照

python - sklearn 0.14.1 RBM が NaN または Inf で停止する

ここではドキュメントからアイデアを借りて、分類に RBM + ロジスティック回帰を使用しています。

ただし、データマトリックスのすべてのエントリが数値であるため、スローされるべきではないエラーが発生します。

コード:

出力:

データ マトリックスに infs も nans もありません...この動作の原因は何ですか?

編集:どうやら私だけではありません

0 投票する
1 に答える
952 参照

c++ - RBM が正しく機能しない理由を見つける方法は?

RBM を実装しようとしていて、MNIST データセットでテストしています。しかし、収束しないようです。

28x28 の可視ユニットと 100 の非表示ユニットがあります。サイズ 50 のミニバッチを使用しています。エポックごとに、データセット全体をトラバースします。学習率は 0.01、運動量は 0.5 です。重みは、平均 0.0 および stdev 0.01 のガウス分布に基づいてランダムに生成されます。可視バイアスと非表示バイアスは 0 に初期化されます。アクティブ化としてロジスティック シグモイド関数を使用しています。

各エポックの後、すべてのミニバッチの平均再構築エラーを計算します。取得したエラーは次のとおりです。

チェックする重みのヒストグラムをプロットしました (左から右: 非表示、重み、可視、上: 重み、下: 更新):

エポック 3 後の重みのヒストグラムエポック 3 後 の重みのヒストグラム http://baptiste-wicht.com/static/finals/histogram_epoch_3.png

エポック 4 後の重みのヒストグラムエポック 4 後 の重みのヒストグラム http://baptiste-wicht.com/static/finals/histogram_epoch_4.png

しかし、少し奇妙に見える隠れた偏見を除けば、残りは問題ないようです。

私はまた、隠された重みをプロットしようとしました:

エポック 3 後の重み

エポック 3 後の重み http://baptiste-wicht.com/static/finals/hiddens_weights_epoch_3.png

エポック 4 後の重み

エポック 4 後の重み http://baptiste-wicht.com/static/finals/hiddens_weights_epoch_4.png

(それらは、その関数を使用して 2 色でプロットされます。

)

そして、ここでは、それらはまったく意味がありません...

さらに進むと、再構築エラーはもう少し減少しますが、0.025 を超えないようにしてください。しばらくして勢いを変えても、上がったり下がったりするけど面白くない。さらに、エポックが増えると、重みは意味をなさなくなります。私が見たほとんどの実装例では、完全なデータ セットを 2 ~ 3 回繰り返した後、重みがある程度意味を成していました。

また、可視ユニットから画像を再構築しようとしましたが、結果はほぼランダムに見えます。

実装で何が問題なのかを確認するにはどうすればよいですか? 重みはある範囲内にあるべきですか?データ内で何かが本当に奇妙に見えますか?

完全なコード: https://github.com/wichtounet/dbn/blob/master/include/rbm.hpp