J'aimerais être indépendant des logiciels commerciaux pour mon travail scientifique. Je trouve une dépendance à des packages commerciaux tels que Matlab et ses boîtes à outils insatisfaisante, car je ne sais pas si j'aurai accès à Matlab à l'avenir, et parce que je n'aime pas la langue. Par conséquent, je recherche des alternatives.
Heureusement, je parle assez bien Python (et j'aime le langage), et avec NumPy, SciPy, Matplotlib, Basemap et les routines de lecture et d'écriture NetCDF, il satisfait la plupart de mes besoins. La plupart - Je reviens toujours à Matlab lorsque j'ai besoin de former des recherches de satellites à l'aide de perceptrons multicouches à action directe, par exemple pour utiliser des réseaux de neurones artificiels.
Comme cela n'est pas inhabituel avec les logiciels open source, il existe plus d'un package qui fait des réseaux de neurones. Beaucoup plus d'un:
Il y a quelque temps, j'ai essayé PyBrain , "le couteau suisse pour le réseautage neuronal", mais je n'ai pas réussi à obtenir des résultats satisfaisants en peu de temps (à la fois au niveau du développement et de l'exécution). Peut-être que je n'ai pas essayé assez fort, ou peut-être que ce n'est pas vraiment adapté à mon besoin exact.
Tout à l'heure, j'ai découvert qu'il existe un package appelé neurolab , qui semble prometteur: une bibliothèque de réseau neuronal simple et puissante pour Python , avec une API comme Neural Network Toolbox (NNT) de MATLAB .
Il y a FFnet , une solution de formation rapide et facile à utiliser pour le réseau de neurones pour python
Il y a simplenn
Il y a Peach , une bibliothèque pour l'intelligence informatique et l'apprentissage automatique
Il existe des liaisons Python à FANN , la bibliothèque Fast Artificial Neural Network , décrite comme une norme de facto dans ce post StackOverflow .
Il y en a probablement d'autres.
Quelqu'un a-t-il fait l'effort d'intercomparer les différentes options, sur la base de critères tels que la facilité d'utilisation, la vitesse, etc.? Mon propre cas d'utilisation est la recherche par satellite, par exemple l'ajustement d'une fonction fortement non linéaire de nombreuses variables. Je suis vraiment un utilisateur de réseaux neuronaux; Je ne suis pas intéressé par des recherches sur leur fonctionnement interne.
Cette question sur Stats.SE est liée, mais avec un objectif différent.
la source
Réponses:
Avez-vous vérifié scikit-learn ? Ce n'est absolument pas mon domaine mais j'ai entendu des expériences utilisateur très positives ...
la source
Avez-vous regardé Theano ? cela semble assez puissant .
la source
Moi aussi, je suis venu d'utiliser des réseaux de neurones dans Matlab vers Python. L'une des bibliothèques les plus puissantes de Python est "Pylearn2" http://deeplearning.net/software/pylearn2/ . Actuellement, il s'agit de la bibliothèque la plus active et de nombreuses fonctionnalités différentes à expérimenter. Il est basé sur Theano et en tant que tel est rapide et peut être exécuté sur des GPU. Malheureusement, c'est aussi son inconvénient: l'API change constamment et a une courbe d'apprentissage élevée. Vous devez également configurer vos réseaux neuronaux à l'aide de fichiers YAML. J'ai eu plus de succès en utilisant PyBrain pour créer des réseaux neuronaux de base. J'avais besoin d'une solution à un problème de régression, où je devais prévoir la charge d'une centrale en fonction des facteurs météorologiques. Le guide ici: http://fastml.com/pybrain-a-simple-neural-networks-library-in-python/ m'a donné 90% de la solution dont j'avais besoin.
Un problème que j'ai trouvé avec PyBrain était la vitesse. Il est écrit nativement en Python. J'ai trouvé que la formation d'un réseau de neurones était environ 50 fois plus lente que Matlab. D'autres ont réussi à accélérer le processus de formation de PyBrain avec la bibliothèque arac.
la source