Alternativas do OSS Python para o Matlab Neural Network Toolbox. Alguma intercomparação?

16

Eu gostaria de ser independente do software comercial para o meu trabalho científico. Acho que uma dependência de pacotes comerciais como o Matlab e suas caixas de ferramentas é insatisfatória, porque não sei se terei acesso ao Matlab no futuro e porque não gosto do idioma. Portanto, estou procurando alternativas.

Felizmente, sou bastante fluente em Python (e adoro a linguagem) e, com as rotinas de leitura e gravação NumPy, SciPy, Matplotlib, Basemap e NetCDF, ela atende a maioria das minhas necessidades. A maioria - ainda volto ao Matlab quando preciso treinar recuperações de satélite usando perceptrons de múltiplas camadas de feed-forward, por exemplo, para usar redes neurais artificiais.

Como não é incomum no software de código aberto, há mais de um pacote que faz redes neurais. Consideravelmente mais de um:

  • Há algum tempo, experimentei o PyBrain , "o canivete suíço para redes neurais", mas não consegui obter resultados satisfatórios em pouco tempo (tempo de desenvolvimento e tempo de execução). Talvez eu não tenha me esforçado o suficiente, ou talvez não esteja realmente voltado para a minha necessidade exata.

  • Agora eu descobri que existe um pacote chamado neurolab , que parece promissor: uma biblioteca de rede neural simples e poderosa para Python , com uma API como NNT (rede de ferramentas de rede neural) do MATLAB .

  • Existe o FFnet , uma solução de treinamento de rede neural feed-forward rápida e fácil de usar para python

  • simplenn

  • Existe o Peach , uma biblioteca para inteligência computacional e aprendizado de máquina

  • Existem ligações Python à FANN , a biblioteca Fast Artificial Neural Network , descrita como um padrão de fato nesta publicação do StackOverflow .

  • Provavelmente existem outros.

Alguém já passou pelo esforço de comparar as diferentes opções, com base em critérios como facilidade de uso, velocidade, etc.? Meu próprio caso de uso é a recuperação de satélites, por exemplo, ajustando uma função fortemente não linear de muitas variáveis. Eu sou muito usuário de redes neurais; Não estou interessado em pesquisar o funcionamento interno deles.

Esta pergunta no Stats.SE está relacionada, mas com um foco diferente.

gerrit
fonte
Sua pergunta é muito interessante, mas acho que você está pedindo demais. Uma avaliação abrangente de diferentes softwares de redes neurais em python é muito ampla para ser respondida neste fórum. Pode ser útil restringir o foco da sua pergunta a um critério e software específicos de seu interesse.
Paul
Além disso, não podemos migrar sua pergunta, pois agora ela é muito antiga . Se você achar que outro site do SE é mais adequado para sua pergunta, será necessário excluí-lo e repassá-lo no outro site. Mesmo se você repassar a pergunta, continuo achando que é do seu interesse restringir o escopo da pergunta e aumentar a probabilidade de obter uma boa resposta.
Paul
Não é Python, mas atualmente estou usando caffe para rede neural. Principalmente para redes neurais convolucionais, mas é ainda mais fácil configurar uma NN convencional.
Siyuan Ren
Duplicação entre sites: datascience.stackexchange.com/q/694/6
gerrit

Respostas:

1

Você conferiu o scikit-learn ? Totalmente não é meu domínio, mas ouvi algumas experiências muito positivas do usuário ...

GertVdE
fonte
Cairia na categoria Provavelmente existem outras - adicionar mais uma biblioteca à lista não resolve meu problema, mas estende o escopo de uma intercomparação que eu espero ver ...
gerrit
Bem, pelo que ouvi e li, a vantagem do scikit-learn é que é uma estrutura que contém uma infinidade de métodos. Talvez isso facilite seu trabalho quando você faz uma intercomparação de métodos aplicados ao seu problema.
GERVDE
3
O scikit-learn não contém métodos de rede neural, o modelo artificial de rede neural foi removido em 0,12 e eles recomendaram na época que os usuários que precisavam dessa funcionalidade mudassem para o PyBrain.
Aron Ahmadia 28/01
1

Você já olhou para Theano ? parece bastante poderoso .

Alex
fonte
11
De fato, Theano é muito poderoso. Mas é o compilador (ou estrutura) que permite escrever código python, que é compilado e executado na GPU. O Theano pode ser usado para implementar NNs, mas não é uma biblioteca de ML.
Artem Sobolev
1

Eu também vim usando redes neurais no Matlab para Python. Uma das bibliotecas mais poderosas do Python é "Pylearn2" http://deeplearning.net/software/pylearn2/ . Atualmente, esta é a biblioteca mais ativa e possui muitos recursos diferentes para experimentar. Ele é baseado no Theano e, como tal, é rápido e pode ser executado em GPUs. Infelizmente, essa também é sua desvantagem: a API está constantemente mudando e tem uma alta curva de aprendizado. Você também deve configurar suas redes neurais usando arquivos YAML. Eu tive mais sucesso usando o PyBrain para criar redes neurais básicas. Eu precisava de uma solução para um problema de regressão, onde tinha que prever a carga em uma usina com base em fatores climáticos. O guia aqui: http://fastml.com/pybrain-a-simple-neural-networks-library-in-python/ me deu 90% da solução que eu precisava.

Um problema que encontrei no PyBrain foi a velocidade. É escrito nativamente em Python. Eu descobri que o treinamento de uma rede neural é ~ 50x mais lento que o Matlab. Alguns outros obtiveram sucesso ao acelerar o processo de treinamento do PyBrain com a biblioteca arac.

Diarmaid O Cualain
fonte