制限付きボルツマンマシンと多層ニューラルネットワーク


22

私が直面している分類問題について、ニューラルネットワークで実験したいと思っていました。RBMについての論文に出くわしました。しかし、私が理解できることから、それらは多層ニューラルネットワークを持つことと違いはありません。これは正確ですか?

さらに、私はRで働いていますが、RBMの缶詰パッケージは見ていません。私は基本的にスタックされたRBMであるディープラーニングネットワークについて話している文献に出会いましたが、Rでそれらを実装する努力の価値があるかどうかはわかりません。ありがとう


3
これら、backpropでトレーニングされた多層ネットワークと異なります。あらゆる種類のニューラルネットのリソースを次に示します。stats.stackexchange.com
Stumpy Joe Pete

回答:


21

まず第一に、RBMは通常のニューラルネットとは確かに異なり、適切に使用するとパフォーマンスが大幅に向上します。また、RBMのいくつかのレイヤーをトレーニングし、見つかった重みをマルチレイヤーNNの開始点として使用すると、単にマルチレイヤーNNを使用するよりも良い結果が得られることがよくあります。

私が考えることができる最良の指針は、RBMの責任者の一人であるGeoffrey Hintonが教えているCourseraのこのコースです。

https://class.coursera.org/neuralnets-2012-001/class/index

RBMとDenoising Autoencodersのビデオは、トピックに興味がある人にとって貴重な学習リソースです。

Rでの実装については、どちらもわかりませんが、実装したい場合は、純粋なRを使用しない方がよいでしょう(データが大きくない限り)。RBMのトレーニングには非常に長い時間がかかり、CでRの代わりに純粋なRを使用すると、大幅に成長する可能性があります。


1
RBMを書いたので、Rのパフォーマンスの問題について話すことができます。計算時間の大部分は行列乗算に費やされますが、Rでは他の言語よりも遅くなる傾向があります(おそらく3倍または5倍)。カスタマイズされたBLAS(線形代数ライブラリ)を使用して独自のシステム用にRを再コンパイルすると、Rcppを使用して低速部分をC ++に変換できるため、非常に役立ちます。1隠し層のRBMを書くのは実際には十分に速いので、速度を最適化する前に最も快適な言語でコーディングするのが理にかなっています。
デビッドJ.ハリス

@David J. Harris Rで実装を共有しましたか?私はそれらを見てみたいです。
ザック14年

1
@Zach現時点ではかなり忙しいですが、将来的にはオープンソース化に関して何ができるかを見ていきます。文書化されていない/途中で終了したプロジェクトをソートすることを気にしない場合は、プロファイル内のアドレスに私が持っているもののコピーをメールで送信することもできます。
デビッドJ.ハリス14年

8

Rでは、使用することができますneuralnetRSNNS(へのインタフェースを提供シュトゥットガルトニューラルネットワークシミュレータを標準多層ニューラルネットワークに合わせて)が、RBMに違いがあります。

ディープニューラルネットをRに実装することに関して、価値のある戦略は既存のFOSS実装をインターフェースすることだけだと思います。これは通常、自分で物事を再実装するよりもはるかに優れたソリューションです(誰もが車輪を再発明する必要がある理由はよくわかりません)。Rはこれを行うための多くの機能を提供し、既存のソリューションの高速ですぐに使用できる側面でRのデータ処理を活用できます。たとえば、MDPをPython / Rインターフェイス機能とインターフェイスさせることができます。たとえば、このペーパーを参照してください。

編集: Statisticsly SignificantのAndrew Landgraf がRBMのRコードを提供しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.