He estado queriendo experimentar con una red neuronal para un problema de clasificación que estoy enfrentando. Me encontré con documentos que hablan de RBM. Pero por lo que puedo entender, no son diferentes de tener una red neuronal multicapa. ¿Es esto exacto?
Además, trabajo con R y no veo ningún paquete enlatado para RBM. Me encontré con literatura que habla sobre redes de aprendizaje profundo que básicamente son RBM apiladas, pero no estoy seguro de si vale la pena el esfuerzo para implementarlas en R. ¿Alguien tendría alguna sugerencia? Gracias
Respuestas:
En primer lugar, las RBM son ciertamente diferentes de las redes neuronales normales, y cuando se usan correctamente logran un rendimiento mucho mejor. Además, entrenar algunas capas de un RBM y luego usar los pesos encontrados como punto de partida para un NN multicapa a menudo produce mejores resultados que simplemente usar un NN multicapa.
El mejor indicador que se me ocurre es este curso en Coursera, impartido por Geoffrey Hinton, quien es una de las personas responsables de las GBR:
https://class.coursera.org/neuralnets-2012-001/class/index
Los videos sobre RBM y Denoising Autoencoders son un recurso de aprendizaje valioso para cualquier persona interesada en el tema.
En cuanto a la implementación en R, tampoco conozco ninguno, pero si desea implementarlo, mejor no use R puro (a menos que sus datos no sean demasiado grandes). El entrenamiento de un RBM lleva bastante tiempo, y si usa R puro en lugar de R con C, puede crecer significativamente.
fuente
En R puede usar neuralnet y RSNNS (que proporciona una interfaz para el Simulador de redes neuronales de Stuttgart ) para adaptarse a redes neuronales multicapa estándar, pero existen diferencias en RBM.
Con respecto a la implementación de redes neuronales profundas en R, creo que la única estrategia que vale la pena sería interactuar con las implementaciones de FOSS existentes, que generalmente es una solución mucho mejor que simplemente volver a implementar las cosas por su cuenta (nunca entendí por qué todos necesitan reinventar la rueda). R ofrece muchas funcionalidades para hacer esto y puede aprovechar el manejo de datos de R con la velocidad y los aspectos listos para usar de las soluciones existentes. Por ejemplo, uno podría interconectar MDP con las capacidades de interfaz de Python / R, consulte, por ejemplo, este documento .
Editar: Andrew Landgraf de Statistically Significant proporciona un código R para RBM .
fuente