Alternatives Python OSS pour Matlab Neural Network Toolbox. Des comparaisons?

16

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.

gerrit
la source
Votre question est très intéressante, mais je pense que vous en demandez trop. Une évaluation complète des différents logiciels de réseau neuronal en python est trop large pour être répondue sur ce forum. Il peut être utile de limiter le champ de votre question à un critère et à un logiciel particuliers qui vous intéressent.
Paul
De plus, nous ne pouvons pas migrer votre question car elle est maintenant trop ancienne . Si vous pensez qu'un autre site SE est plus adapté à votre question, vous devrez supprimer celui-ci et le republier sur l'autre site. Même si vous republiez la question, je pense toujours qu'il est dans votre intérêt de restreindre la portée de votre question pour augmenter la probabilité d'obtenir une bonne réponse.
Paul
Pas Python, mais actuellement j'utilise caffe pour le réseau neuronal. Surtout pour un réseau neuronal convolutif, mais il est encore plus facile de configurer un NN conventionnel.
Siyuan Ren
Duplicata intersite
gerrit

Réponses:

1

Avez-vous vérifié scikit-learn ? Ce n'est absolument pas mon domaine mais j'ai entendu des expériences utilisateur très positives ...

GertVdE
la source
Tomberait dans la catégorie Il y en a probablement d'autres - l'ajout d'une autre bibliothèque à la liste ne résout pas mon problème, mais étend plutôt la portée d'une
comparaison
Eh bien, d'après ce que j'ai entendu et lu, l'avantage de scikit-learn est qu'il s'agit d'un cadre contenant une multitude de méthodes. Peut-être que cela facilitera votre travail lorsque vous effectuez une comparaison des méthodes appliquées à votre problème.
GertVdE
3
scikit-learn ne contient pas de méthodes de réseau neuronal, le modèle de réseau neuronal artificiel a été supprimé en 0.12, et ils recommandaient à l'époque que les utilisateurs qui avaient besoin de cette fonctionnalité passent à PyBrain.
Aron Ahmadia
1

Avez-vous regardé Theano ? cela semble assez puissant .

Alex
la source
1
En effet, Theano est très puissant. Mais c'est un compilateur (ou framework) qui permet d'écrire du code python qui est ensuite compilé et exécuté sur GPU. Theano peut être utilisé pour implémenter des NN, mais ce n'est pas une bibliothèque ML.
Artem Sobolev
1

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.

Diarmaid O Cualain
la source