Je voulais expérimenter avec un réseau de neurones pour un problème de classification auquel je suis confronté. Je suis tombé sur des articles qui parlent de RBM. Mais d'après ce que je peux comprendre, ils ne sont pas différents d'avoir un réseau neuronal multicouche. Est-ce exact?
De plus, je travaille avec R et je ne vois aucun paquet en conserve pour les RBM. J'ai rencontré de la littérature qui parle de réseaux d'apprentissage profond qui sont essentiellement des RBM empilés mais je ne sais pas si cela vaut la peine de les mettre en œuvre dans R. Est-ce que quelqu'un aurait des pointeurs? Merci
Réponses:
Tout d'abord, les RBM sont certainement différents des réseaux neuronaux normaux et, lorsqu'ils sont utilisés correctement, ils obtiennent de bien meilleures performances. En outre, la formation de quelques couches d'un RBM, puis l'utilisation des poids trouvés comme point de départ pour un NN multicouche donne souvent de meilleurs résultats que d'utiliser simplement un NN multicouche.
Le meilleur pointeur auquel je peux penser est ce cours sur Coursera, dispensé par Geoffrey Hinton, qui est l'un des responsables des RBM:
https://class.coursera.org/neuralnets-2012-001/class/index
les vidéos sur les RBM et les encodeurs automatiques de débruitage sont une ressource d'apprentissage précieuse pour quiconque s'intéresse au sujet.
Quant à l'implémentation dans R, je n'en connais pas non plus, mais si vous voulez l'implémenter, mieux vaut ne pas utiliser du R pur (à moins que vos données ne soient pas trop grandes). La formation d'un RBM prend assez de temps, et si vous utilisez du R pur au lieu de R avec C, il peut se développer de manière significative.
la source
Dans R, vous pouvez utiliser neuralnet et RSNNS (qui fournit une interface au simulateur de réseau neuronal de Stuttgart ) pour s'adapter aux réseaux neuronaux multicouches standard, mais il existe des différences avec RBM.
En ce qui concerne la mise en œuvre de réseaux neuronaux profonds dans R, je pense que la seule stratégie valable serait d'interfacer les implémentations FOSS existantes, ce qui est généralement une bien meilleure solution que de simplement réimplémenter les choses par vous-même (je n'ai jamais bien compris pourquoi tout le monde devait réinventer la roue). R offre de nombreuses fonctionnalités pour ce faire et vous pouvez tirer parti de la gestion des données de R avec la rapidité et les aspects prêts à l'emploi des solutions existantes. Par exemple, on pourrait interfacer MDP avec les capacités d'interfaçage Python / R, voir par exemple ce document .
Edit: Andrew Landgraf de Statistically Significant fournit un code R pour RBM .
la source