Eu queria saber se existem boas bibliotecas R por aí para redes neurais de aprendizado profundo? Eu sei que existe o nnet
,, neuralnet
e RSNNS
, mas nenhum deles parece implementar métodos de aprendizado profundo.
Estou especialmente interessado em não supervisionado, seguido de aprendizado supervisionado e no uso da evasão para impedir a co-adaptação .
/ edit: Após alguns anos, achei o pacote de aprendizado profundo h20 muito bem projetado e fácil de instalar. Também adoro o pacote mxnet , que é (um pouco) mais difícil de instalar, mas suporta coisas como covnets, roda em GPUs e é muito rápido.
Respostas:
OpenSource h2o.deepLearning () é um pacote para deeplearning em R de h2o.ai, aqui está um artigo http://www.r-bloggers.com/things-to-try-after-user-part-1-deep-learning- com-h2o /
E código: https://gist.github.com/woobe/3e728e02f6cc03ab86d8#file-link_data-r
fonte
Existe um pacote chamado "darch"
http://cran.um.ac.ir/web/packages/darch/index.html
Citação do CRAN:
fonte
Há outro novo pacote para redes profundas no R: deepnet
Ainda não tentei usá-lo, mas ele já foi incorporado ao pacote de intercalação .
fonte
Para responder à minha própria pergunta, escrevi um pequeno pacote no R para RBMs: https://github.com/zachmayer/rbm
Este pacote ainda está em desenvolvimento pesado, e eu sei muito pouco sobre RBMs, então gostaria de receber qualquer feedback (e solicitações de recebimento!) Que você tiver. Você pode instalar o pacote usando o devtools :
O código é semelhante à implementação de Andrew Landgraf na implementação de R e Edwin Chen em python , mas eu escrevi a função para ser semelhante à função pca na base R e incluir a funcionalidade de empilhamento. Eu acho que é um pouco mais amigável do que o pacote darch , que eu nunca consegui descobrir como usar (mesmo antes de ser removido do CRAN).
Se você tiver o pacote gputools instalado, poderá usar sua GPU para operações de matriz com a função rbm_gpu. Isso acelera bastante as coisas! Além disso, a maior parte do trabalho em um RBM é feita com operações de matriz, portanto, apenas a instalação de um bom BLAS, como o openBLAS , também acelerará bastante as coisas.
Aqui está o que acontece quando você executa o código no conjunto de dados de exemplo de Edwin:
fonte
propack.svd()
nosvd
pacote.?rbm
. Observe que as rbm não são supervisionadas.Você pode experimentar o módulo Deep Learning do H2O, que é distribuído e oferece muitas técnicas avançadas, como regularização de abandono e taxa de aprendizado adaptável.
Slides: http://www.slideshare.net/0xdata/h2o-deeplearning-nextml Vídeo: https://www.youtube.com/watch?v=gAKbAQu900w&feature=youtu.be
Tutoriais: http://learn.h2o.ai Dados e scripts: http://data.h2o.ai
Documentação: http://docs.h2o.ai GitBooks: http://gitbook.io/@h2o
fonte
Para adicionar outra resposta:
O mxnet é incrível e eu adoro É um pouco difícil de instalar, mas suporta GPUs e várias CPUs. Se você for aprender profundamente em R (principalmente em imagens), recomendo que você comece com mxnet.
fonte
Embora eu não tenha encontrado uma biblioteca dedicada de aprendizado profundo para o R, tive uma discussão semelhante sobre os r-blogueiros. A discussão se concentra no uso de RBM (Restricted Boltzman Machines). Dê uma olhada no seguinte link--
http://www.r-bloggers.com/restricted-boltzmann-machines-in-r/ (publicado em 'alandgraf.blogspot.com')
O autor realmente faz um bom trabalho de encapsular um algoritmo auto-implementado em R. Deve-se dizer que ainda não examinei a validade do código, mas pelo menos há um vislumbre de aprendizado profundo começando a aparecer em R.
Eu espero que isso ajude.
fonte
gputools
e considere usar o truque de pré-carregamento no Linux para acelerar o GEMM, aqui .Agora você também pode usar o TensorFlow da R:
https://rstudio.github.io/tensorflow/
fonte