私が直面している分類問題について、ニューラルネットワークで実験したいと思っていました。RBMについての論文に出くわしました。しかし、私が理解できることから、それらは多層ニューラルネットワークを持つことと違いはありません。これは正確ですか?
さらに、私はRで働いていますが、RBMの缶詰パッケージは見ていません。私は基本的にスタックされたRBMであるディープラーニングネットワークについて話している文献に出会いましたが、Rでそれらを実装する努力の価値があるかどうかはわかりません。ありがとう
私が直面している分類問題について、ニューラルネットワークで実験したいと思っていました。RBMについての論文に出くわしました。しかし、私が理解できることから、それらは多層ニューラルネットワークを持つことと違いはありません。これは正確ですか?
さらに、私はRで働いていますが、RBMの缶詰パッケージは見ていません。私は基本的にスタックされたRBMであるディープラーニングネットワークについて話している文献に出会いましたが、Rでそれらを実装する努力の価値があるかどうかはわかりません。ありがとう
回答:
まず第一に、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を使用すると、大幅に成長する可能性があります。
Rでは、使用することができますneuralnetとRSNNS(へのインタフェースを提供シュトゥットガルトニューラルネットワークシミュレータを標準多層ニューラルネットワークに合わせて)が、RBMに違いがあります。
ディープニューラルネットをRに実装することに関して、価値のある戦略は既存のFOSS実装をインターフェースすることだけだと思います。これは通常、自分で物事を再実装するよりもはるかに優れたソリューションです(誰もが車輪を再発明する必要がある理由はよくわかりません)。Rはこれを行うための多くの機能を提供し、既存のソリューションの高速ですぐに使用できる側面でRのデータ処理を活用できます。たとえば、MDPをPython / Rインターフェイス機能とインターフェイスさせることができます。たとえば、このペーパーを参照してください。
編集: Statisticsly SignificantのAndrew Landgraf がRBMのRコードを提供しています。