Ich wollte mit einem neuronalen Netzwerk experimentieren, um ein Klassifizierungsproblem zu lösen, mit dem ich konfrontiert bin. Ich stieß auf Papiere, die von RBMs sprachen. Aber soweit ich das verstehen kann, unterscheiden sie sich nicht von einem mehrschichtigen neuronalen Netzwerk. Ist das genau?
Außerdem arbeite ich mit R und sehe keine eingemachten Pakete für RBMs. Ich bin auf Literatur gestoßen, die von Deep-Learning-Netzwerken handelt, bei denen es sich im Grunde um gestapelte RBMs handelt, aber nicht sicher ist, ob es sich lohnt, sie in R umzusetzen. Hätte jemand einen Hinweis? Vielen Dank
r
machine-learning
classification
neural-networks
Brokkoli
quelle
quelle
Antworten:
Erstens unterscheiden sich RBMs zweifellos von normalen neuronalen Netzen, und wenn sie richtig verwendet werden, erzielen sie eine viel bessere Leistung. Wenn Sie ein paar Schichten eines RBM trainieren und dann die gefundenen Gewichte als Ausgangspunkt für ein Mehrschicht-NN verwenden, erhalten Sie häufig bessere Ergebnisse als mit einem Mehrschicht-NN.
Der beste Hinweis, den ich mir vorstellen kann, ist dieser Kurs über Coursera, der von Geoffrey Hinton gehalten wird, einem der Verantwortlichen für RBMs:
https://class.coursera.org/neuralnets-2012-001/class/index
Die Videos zu RBMs und Denoising Autoencoders sind eine wertvolle Lernressource für alle, die sich für das Thema interessieren.
Was die Implementierung in R angeht, kenne ich auch keine, aber wenn Sie es implementieren möchten, sollten Sie lieber kein reines R verwenden (es sei denn, Ihre Daten sind nicht zu groß). Das Training eines RBM dauert ziemlich lange, und wenn Sie reines R anstelle von R mit C verwenden, kann es erheblich wachsen.
quelle
In R können Sie Neuralnet und RSNNS (das eine Schnittstelle zum Stuttgarter Neural Network Simulator bereitstellt ) verwenden, um Standard-Multilayer- Neuralnetze anzupassen. Es gibt jedoch Unterschiede zu RBM.
Bezüglich der Implementierung von tiefen neuronalen Netzen in R denke ich, dass die einzige sinnvolle Strategie darin besteht, vorhandene FOSS-Implementierungen miteinander zu verbinden. Dies ist normalerweise eine viel bessere Lösung als nur die Neuimplementierung von Dingen auf eigene Faust (ich habe nie ganz verstanden, warum jeder das Rad neu erfinden muss). R bietet hierfür viele Funktionen, und Sie können das Datenhandling von R mit der Geschwindigkeit und den einsatzbereiten Aspekten vorhandener Lösungen nutzen. Beispielsweise könnte man MDP mit den Python / R-Schnittstellenfunktionen verbinden, siehe z . B. dieses Dokument .
Bearbeiten: Andrew Landgraf von Statistically Significant bietet einige R-Code für RBM .
quelle