問題タブ [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.
matlab - (RBM の) 実数値の入力深層信念ネットワークの問題
MNIST digits matlab コードの適応バージョンを使用してオリベッティの顔データセットを自動エンコードするニューラル ネットワークを使用してデータの次元を削減するで報告されている結果を再現しようとしていますが、いくつかの問題があります。エポック、レート、またはモメンタムの数をどれだけ微調整しても、スタックされた RBM は大量のエラーを伴って微調整段階に入り、その結果、微調整段階であまり改善されないようです。別の実数値データセットでも同様の問題が発生しています。
最初のレイヤーでは、(論文で説明されているように) 学習率が小さい RBM を使用しています。
サポート資料にある指示に従っていると確信していますが、正しいエラーを達成できません。
足りないものはありますか?以下の実数値の可視単位 RBM と、ディープ トレーニング全体に使用しているコードを参照してください。残りのコードはここにあります。
rbmvislinear.m:
dofacedeepauto.m:
御時間ありがとうございます
statistics - 制限付きボルツマンマシン-再構築
制限付きボルツマンマシンに関する記事をいくつか読みました。これらのマシンは、再構築機能についてテストされました。トレーニングがどのように機能するかは理解していますが、この再構築がどのように行われるかは理解していません。誰かが私にいくつかのヒントを与えることができますか?
java - 制限ボルツマンマシンの自由エネルギー近似式
ディープラーニングのチュートリアルによると:
Pythonの自由エネルギーは
私はPythonがあまり得意ではありません。基本的に、各可視ユニットの製品エキスパートをベクトル wx_b として取得し、 exp と plus 1 を計算し、 log を計算して、非表示の用語を合計します。
これは、Learning Deep Architectures の自由エネルギー方程式とは少し異なると思います。
FreeEnergy(x) = −b′x − ∑log∑e^hi(ci+Wix)。
どこ:
hi
はユニットのi
隠れ層であり、ci
i
ベクトル cの隠れバイアスです。
exp と sum を計算し、合計値に対して log を計算します。結局、目に見えるユニットの数に基づいてすべての製品エキスパートを合計します。
上記の式は、Learning Deep Architectures for AI (Yoshua Bengio) の eq.5.21 です。
以下は私の Java 実装のドラフトです。vis_v は可視層のサンプル、hid_v は非表示層ユニットのサンプルです。
これはある種の近似ですか?Javaで同じことを実装しようとしていますが、混乱しています。助けてくれてありがとう!
machine-learning - ベクターデータ用の制限付きボルツマンマシンの代替(バイナリではなく)
私は非常に大きなコーパスを持っており、各要素は大量の高次元データで構成されています。要素は常にコーパスに追加されています。潜在的に、コーパスの一部のみを各相互作用について考慮する必要があります。要素にはラベルが付けられており、複数のラベルとそれらのラベルの強度に関連付けられた重みが付けられている可能性があります。私が理解している限り、データはまばらではありません。
入力データは、約(10-1000)入力間の-1...1の範囲のパラメーターのセットです。これは、どの機械学習方法が最も適切かによって、多少柔軟になる場合があります。
私はハイエンドのスマートフォンデバイスをターゲットにしています。理想的には同じデバイスで処理を行うことができますが、私はそれを控えめなサーバーに送信する可能性を開いています。
この種の状況に適した機械学習アプローチは何でしょうか?
私はランダムフォレスト決定木、制限付きボルツマンマシン、深層学習ボルツマンマシンなどについて読んでいますが、経験豊富な手のアドバイスを実際に使用して、条件をうまく与える研究へのいくつかのアプローチに導くことができました。
私の説明がおかしいと思われる場合は、私がまだアイデアを理解しているので、私に知らせてください。根本的にいくつかの側面を誤解している可能性があります。
java - 制限付きボルツマン マシンとディープ ラーニング用の Java コード
ここ数日から、制限付きボルツマン マシンとディープ ラーニングについて読んで勉強しています。深層学習の能力をテストするために、私は Java コードを探しています。Google で長い間検索しましたが、満足のいく実装が得られませんでした。
例として、制限付きボルツマン マシン用の次の Java ライブラリを見つけました。
しかし、そのソースコードも、その使用法に関する詳細なヘルプも入手できませんでした。彼らはこのコードの Java ドキュメントを持っていますが、その使用法については説明していません。サンプルの例は示されていません。
私が Python で見つけた簡単な実装があります:
https://github.com/echen/restricted-boltzmann-machines
ボルツマン マシンとディープ ラーニングの両方について、Java で同様の実装を入手できる場所を誰か教えてもらえますか? (ソースコードを入手できれば最高です。それ以外の場合は、サンプルの使用コードまたは使用方法に関する詳細なヘルプを含む Java ライブラリが少なくとも必要です。)
ありがとう、ニティン
machine-learning - 実数値データ用のGB-RBMの実装
音声認識用のディープビリーフネットワークを実装しようとしています。したがって、ガウス可視ユニットを持つには、RBMの最初のレイヤーが必要です。
@Andrej Karpathyのmatrbm(https://code.google.com/p/matrbm/)を使用し、Bernouli-BernouliRBMをGaussian-Bernouliに変換するためにいくつかの変更を加えました。
変更されたバージョンはhttp://pastebin.com/KTPHnizdで入手できます。
私は何か間違ったことをしていますか?
matlab - 連続 RBM: 負の値の入力データに対してのみパフォーマンスが低下しますか?
連続RBMのこのpython実装をMatlabに移植しようとしました: http://imonad.com/rbm/restricted-boltzmann-machine/
(ノイズの多い) 円の形をした 2 次元のトレーニングデータを生成し、2 つの可視レイヤーと 8 つの隠れレイヤーで rbm をトレーニングしました。実装をテストするために、一様に分散されたランダムデータを RBM に供給し、再構築されたデータをプロットしました (上記のリンクで使用されているのと同じ手順)。
ここで紛らわしい部分: (0,1)x(0,1) の範囲のトレーニングデータを使用すると、非常に満足のいく結果が得られますが、範囲 (-0.5,-0.5)x(-0.5,-0.5) または ( -1,0)x(-1,0) RBM は、円の右上のデータのみを再構築します。これの原因がわかりません。実装のバグにすぎませんか?
いくつかのプロット、青い点はトレーニング データ、赤い点は再構成です。
これがRBMの私の実装です: トレーニング:
activHid.m:
activVis.m:
sigFun.m:
再建:
machine-learning - 実数値データの制限付きボルツマンマシン - ガウス線形単位 (glu) -
制限付きボルツマン マシンに実数値データの新しい表現を学習させたい (参照: Hinton - 2010 - A Practical Guide to Training RBMs )。ガウス線形単位の実装に苦労しています。
可視層にガウス線形単位があると、エネルギーは に変化しE(v,h)= ∑ (v-a)²/2σ - ∑ bh - ∑v/σ h w
ます。Contrastive Divergence Learning Algorithm を変更する方法がわかりません。可視ユニットは線形であるため、これ以上サンプリングされません。状態として期待値 (平均化活性化)p(v_i=1|h)= a +∑hw + N(0,1)
を使用します。関連付けは変更されません ( pos: data*p(h=1|v)'
neg: p(v=1|h)*p(h=1|v)'
)。しかし、これはデータを再構築したい場合にのみランダムノイズにつながります。エラー率は 50% 前後で改善しなくなります。
最後に、両方のレイヤーでガウス線形単位を使用したいと考えています。隠しユニットの状態を取得するにはどうすればよいですか?平均場活性化を使用することをお勧めしますp(h_i=1|v)= b +∑vw + N(0,1)
が、よくわかりません。