Me preguntaba si hay buenas bibliotecas R para redes neuronales de aprendizaje profundo. Sé que está el nnet
,, neuralnet
y RSNNS
, pero ninguno de estos parece implementar métodos de aprendizaje profundo.
Estoy especialmente interesado en el aprendizaje no supervisado seguido del aprendizaje supervisado y en el uso de la deserción escolar para evitar la coadaptación .
/ editar: Después de unos años, he encontrado que el paquete de aprendizaje profundo h20 está muy bien diseñado y es fácil de instalar. También me encanta el paquete mxnet , que es (un poco) más difícil de instalar pero admite cosas como covnets, se ejecuta en GPU y es realmente rápido.
Respuestas:
OpenSource h2o.deepLearning () es un paquete para profundizar el aprendizaje en R desde h2o.ai aquí hay un escrito http://www.r-bloggers.com/things-to-try-after-user-part-1-deep-learning- con-h2o /
Y código: https://gist.github.com/woobe/3e728e02f6cc03ab86d8#file-link_data-r
fuente
Hay un paquete llamado "darch"
http://cran.um.ac.ir/web/packages/darch/index.html
Cita de CRAN:
fuente
Hay otro nuevo paquete para redes profundas en R: deepnet
Todavía no he intentado usarlo, pero ya se ha incorporado al paquete de caret .
fuente
Para responder a mi propia pregunta, escribí un pequeño paquete en R para RBM: https://github.com/zachmayer/rbm
Este paquete aún está en desarrollo, y sé muy poco acerca de los RBM, por lo que agradecería cualquier comentario (y solicitudes de extracción) que tenga. Puede instalar el paquete usando devtools :
El código es similar a la implementación de Andrew Landgraf en R y la implementación de Edwin Chen en python , pero escribí que la función es similar a la función pca en la base R e incluye funcionalidad para el apilamiento. Creo que es un poco más fácil de usar que el paquete Darch , que nunca pude descubrir cómo usar (incluso antes de que fuera eliminado de CRAN).
Si tiene instalado el paquete gputools , puede usar su GPU para operaciones matriciales con la función rbm_gpu. ¡Esto acelera mucho las cosas! Además, la mayor parte del trabajo en un RBM se realiza con operaciones matriciales, por lo que solo instalar un buen BLAS, como openBLAS , también acelerará mucho las cosas.
Esto es lo que sucede cuando ejecuta el código en el conjunto de datos de ejemplo de Edwin:
fuente
propack.svd()
desde elsvd
paquete.?rbm
. Tenga en cuenta que los rbm no están supervisados.Puede probar el módulo de aprendizaje profundo de H2O, se distribuye y ofrece muchas técnicas avanzadas, como la regularización de abandono y la tasa de aprendizaje adaptativo.
Diapositivas: http://www.slideshare.net/0xdata/h2o-deeplearning-nextml Video: https://www.youtube.com/watch?v=gAKbAQu900w&feature=youtu.be
Tutoriales: http://learn.h2o.ai Datos y secuencias de comandos: http://data.h2o.ai
Documentación: http://docs.h2o.ai GitBooks: http://gitbook.io/@h2o
fuente
Para agregar otra respuesta:
mxnet es increíble, y me encanta Es un poco difícil de instalar, pero admite GPU y múltiples CPU. Si va a hacer un aprendizaje profundo en R (particularmente en imágenes), le recomiendo que comience con mxnet.
fuente
Si bien no he encontrado una biblioteca de aprendizaje profundo dedicada para R, me he encontrado con una discusión similar en r-bloggers. La discusión se centra en el uso de RBM (Restricted Boltzman Machines). Echa un vistazo al siguiente enlace:
http://www.r-bloggers.com/restricted-boltzmann-machines-in-r/ (publicado de 'alandgraf.blogspot.com')
El autor realmente hace un buen trabajo encapsulando un algoritmo auto implementado en R. Hay que decir que aún no he investigado la validez del código, pero al menos hay un destello de aprendizaje profundo que comienza a mostrarse en R.
Espero que esto ayude.
fuente
gputools
y considere usar el truco de precarga en Linux para acelerar GEMM, aquí .Ahora también puede usar TensorFlow de R:
https://rstudio.github.io/tensorflow/
fuente