Python OSS alternative per Matlab Neural Network Toolbox. Qualche intercomunicazione?


16

Vorrei essere indipendente dal software commerciale per il mio lavoro scientifico. Trovo insoddisfacenti i pacchetti commerciali come Matlab e le sue cassette degli attrezzi, perché non so se avrò accesso a Matlab in futuro e perché non mi piace la lingua. Pertanto, sto cercando alternative.

Fortunatamente, sono abbastanza fluente in Python (e adoro la lingua), e con NumPy, SciPy, Matplotlib, Basemap e NetCDF routine di lettura e scrittura, soddisfa la maggior parte delle mie esigenze. La maggior parte - torno ancora a Matlab quando ho bisogno di addestrare i recuperi satellitari usando percetroni multistrato feed-forward, ad esempio usando reti neurali artificiali.

Come non è insolito con il software open source, esiste più di un pacchetto che esegue reti neurali. Molto più di uno:

  • Qualche tempo fa ho provato PyBrain , "il coltellino svizzero per le reti neurali", ma non sono riuscito a ottenere risultati soddisfacenti in breve tempo (sia in fase di sviluppo che in fase di esecuzione). Forse non ho provato abbastanza, o forse non è davvero orientato verso il mio preciso bisogno.

  • Proprio ora ho scoperto che esiste un pacchetto chiamato neurolab , che sembra promettente: una libreria di rete neurale semplice e potente per Python , con un'API come Neural Network Toolbox (NNT) di MATLAB .

  • Esiste FFnet , una soluzione di training della rete neurale feed-forward veloce e facile da usare per Python

  • C'è più semplice

  • C'è Peach , una biblioteca per l'intelligenza computazionale e l'apprendimento automatico

  • Esistono collegamenti Python a FANN , la libreria Fast Artificial Neural Network , descritta come standard di fatto in questo post StackOverflow .

  • Ce ne sono probabilmente altri.

Qualcuno ha attraversato lo sforzo di intercomparare le diverse opzioni, in base a criteri come facilità d'uso, velocità, ecc.? Il mio caso d'uso è il recupero di satelliti, ad esempio adattando una funzione fortemente non lineare di molte variabili. Sono un utente di reti neurali; Non mi interessa ricercare i loro meccanismi interni.

Questa domanda su Stats.SE è correlata, ma con un focus diverso.


La tua domanda è molto interessante, ma penso che tu stia chiedendo troppo. Una valutazione completa dei diversi software di rete neurale in Python è troppo ampia per essere risolta su questo forum. Potrebbe essere utile restringere il focus della tua domanda a un particolare criterio e software di tuo interesse.
Paolo

Inoltre, non possiamo migrare la tua domanda perché ora è troppo vecchia . Se ritieni che un altro sito SE sia più adatto alla tua domanda, dovrai eliminarlo e ripubblicarlo sull'altro sito. Anche se ripubblicate la domanda, ritengo comunque che sia nel vostro interesse restringere la portata della domanda per aumentare la probabilità di ottenere una buona risposta.
Paolo

Non Python, ma attualmente sto usando caffe per la rete neurale. Principalmente per la rete neurale convoluzionale, ma è ancora più semplice configurare un NN convenzionale.
Siyuan Ren,

Risposte:


1

Hai visto scikit-learn ? Non è assolutamente il mio dominio, ma ho sentito alcune esperienze utente molto positive ...


Sarebbe rientrato nella categoria Probabilmente ce ne sono altri - l'aggiunta di un'altra libreria all'elenco non risolve il mio problema, ma piuttosto estende l'ambito di un intercomparison che spero di vedere ...
Gerrit

Bene, da quello che ho sentito e letto, il vantaggio di scikit-learn è che è un framework che contiene una moltitudine di metodi. Forse questo faciliterà il tuo lavoro quando esegui un intercomparison di metodi applicati al tuo problema.
GertVdE,

3
scikit-learn non contiene metodi di rete neurale, il modello di rete neurale artificiale è stato rimosso in 0.12 e al momento hanno raccomandato agli utenti che necessitavano di tale funzionalità di passare a PyBrain.
Aron Ahmadia,

1

Hai visto Theano ? sembra abbastanza potente .


1
In effetti, Theano è molto potente. Ma è il compilatore (o framework) che consente di scrivere codice Python che viene quindi compilato ed eseguito su GPU. Theano può essere utilizzato per implementare NN, ma non è una libreria ML.
Artem Sobolev,

1

Anch'io vengo dall'uso di netowrks neurali in Matlab a Python. Una delle librerie più potenti in Python è "Pylearn2" http://deeplearning.net/software/pylearn2/ . Attualmente, questa è la libreria più attiva e ha molte funzionalità diverse da sperimentare. Si basa su Theano e come tale è veloce e può essere eseguito su GPU. Sfortunatamente, anche questo è uno svantaggio: l'API è in continua evoluzione e presenta un'alta curva di apprendimento. Devi configurare i tuoi netowrks neurali usando anche i file YAML. Ho avuto più successo usando PyBrain per creare reti neurali di base. Avevo bisogno di una soluzione a un problema di regressione, in cui dovevo prevedere il carico su una centrale elettrica in base a fattori meteorologici. La guida qui: http://fastml.com/pybrain-a-simple-neural-networks-library-in-python/ mi ha dato il 90% della soluzione di cui avevo bisogno.

Un problema che ho riscontrato con PyBrain era la velocità. È scritto nativamente in Python. Ho trovato che l'allenamento di una rete neurale è circa 50 volte più lento di Matlab. Alcuni altri hanno trovato successo accelerando il processo di allenamento di PyBrain con la libreria arac.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.