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
Há 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.
fonte
Respostas:
Você conferiu o scikit-learn ? Totalmente não é meu domínio, mas ouvi algumas experiências muito positivas do usuário ...
fonte
Você já olhou para Theano ? parece bastante poderoso .
fonte
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.
fonte