Ich möchte für meine wissenschaftliche Arbeit unabhängig von kommerzieller Software sein. Ich finde eine Abhängigkeit von kommerziellen Paketen wie Matlab und seinen Toolboxen unbefriedigend, weil ich nicht weiß, ob ich in Zukunft Zugang zu Matlab haben werde und weil mir die Sprache nicht gefällt. Deshalb suche ich nach Alternativen.
Glücklicherweise spreche ich fließend Python (und ich liebe die Sprache) und mit den Lese- und Schreibroutinen NumPy, SciPy, Matplotlib, Basemap und NetCDF werden die meisten meiner Anforderungen erfüllt. Meistens - Ich kehre immer noch zu Matlab zurück, wenn ich Satelliten-Retrievals mit Feed-Forward-Multilayer-Perceptrons trainieren muss, z. B. mit künstlichen neuronalen Netzen.
Wie es bei Open-Source-Software nicht ungewöhnlich ist, gibt es mehr als ein Paket, das neuronale Netzwerke unterstützt. Beträchtlich mehr als eins:
Vor einiger Zeit habe ich PyBrain ausprobiert , das "Schweizer Taschenmesser für neuronale Netze", aber es ist mir nicht gelungen, in kurzer Zeit zufriedenstellende Ergebnisse zu erzielen (sowohl in der Entwicklungs- als auch in der Laufzeit). Vielleicht habe ich nicht genug versucht, oder vielleicht ist es nicht wirklich auf meine genauen Bedürfnisse ausgerichtet.
Gerade entdeckte ich, dass es ein Paket namens Neurolab gibt , das vielversprechend aussieht: eine einfache und leistungsstarke Neural Network Library für Python mit einer API wie Neural Network Toolbox (NNT) von MATLAB .
Es gibt FFnet , eine schnelle und benutzerfreundliche Feed-Forward-Lösung für neuronales Netzwerktraining für Python
Es ist einfach
Es gibt Peach , eine Bibliothek für Computer Intelligence und maschinelles Lernen
Es gibt Python-Bindungen zu FANN , der Fast Artificial Neural Network- Bibliothek, die in diesem StackOverflow-Beitrag als De-facto-Standard beschrieben wird .
Es gibt wahrscheinlich noch andere.
Hat sich jemand die Mühe gemacht, die verschiedenen Optionen anhand von Kriterien wie Benutzerfreundlichkeit, Geschwindigkeit usw. miteinander zu vergleichen? Mein eigener Anwendungsfall sind Satellitenabrufe, zB die Anpassung einer stark nichtlinearen Funktion vieler Variablen. Ich bin sehr ein Benutzer von neuronalen Netzen; Ich bin nicht daran interessiert, ihr inneres Funktionieren zu erforschen.
Diese Frage zu Stats.SE ist verwandt, aber mit einem anderen Fokus.
quelle
Antworten:
Hast du scikit-learn ausprobiert ? Es ist absolut nicht meine Domain, aber ich habe einige sehr positive Nutzererfahrungen gehört ...
quelle
Hast du dir Theano angesehen ? es scheint ziemlich mächtig .
quelle
Ich bin auch von der Verwendung neuronaler Netze in Matlab zu Python gekommen. Eine der mächtigsten Bibliotheken in Python ist "Pylearn2" http://deeplearning.net/software/pylearn2/ . Derzeit ist dies die aktivste Bibliothek und es gibt viele verschiedene Funktionen, mit denen Sie experimentieren können. Es basiert auf Theano und ist daher schnell und kann auf GPUs ausgeführt werden. Leider ist dies auch der Nachteil: Die API ändert sich ständig und weist eine hohe Lernkurve auf. Sie müssen Ihre neuronalen Netze auch mit YAML-Dateien konfigurieren. Ich habe PyBrain erfolgreicher für die Erstellung grundlegender neuronaler Netze eingesetzt. Ich brauchte eine Lösung für ein Regressionsproblem, bei dem ich die Auslastung eines Kraftwerks anhand von Wetterfaktoren prognostizieren musste. Die Anleitung hier: http://fastml.com/pybrain-a-simple-neural-networks-library-in-python/ gab mir 90% der Lösung, die ich brauchte.
Ein Problem, das ich bei PyBrain gefunden habe, war die Geschwindigkeit. Es ist nativ in Python geschrieben. Ich habe festgestellt, dass das Training eines neuronalen Netzwerks ~ 50x langsamer ist als Matlab. Einige andere haben es geschafft, den Schulungsprozess von PyBrain mit der arac-Bibliothek zu beschleunigen.
quelle