Open-Source-Tool zum Lernen / Experimentieren von KI zu Hause?

9

Ich würde gerne mit der neuronalen Netzentwicklung (NEAT) experimentieren. Ich habe in den 90er Jahren GA- und neuronalen Netzcode in C ++ geschrieben, um damit herumzuspielen, aber der DIY-Ansatz erwies sich als arbeitsintensiv genug, dass ich ihn schließlich fallen ließ.

Die Dinge haben sich seitdem sehr verändert, und es gibt viele sehr schöne Open-Source-Bibliotheken und -Tools für nahezu jedes Interesse. Ich habe verschiedene Open-Source-Bibliotheken (z. B. DEAP) gegoogelt, aber ich könnte Hilfe bei der Auswahl einer Bibliothek gebrauchen, die gut zu mir passt ...

  • Ich habe einen Großteil meiner Zeit damit verbracht, Code zu schreiben, um zu visualisieren, was vor sich ging (neuronaler Netzzustand, Bevölkerungsfitness) oder die Endergebnisse (Grafiken usw.).

    Möglicherweise müsste dies durch eine separate Open-Source-Bibliothek erfüllt werden, aber die Visualisierungsunterstützung würde es mir ermöglichen, mehr Zeit mit dem Problem / der Lösung und weniger mit Implementierungsdetails zu verbringen.
  • Ich kenne C / C ++, Java, C #, Python, Javascript und einige andere. Etwas, das einen guten Kompromiss zwischen einer höheren Sprache und einer guten Leistung auf Heimhardware darstellt, wäre eine gute Wahl.

Kann jemand mit Erfahrung eine gute Open Source-Bibliothek oder eine Reihe von Tools vorschlagen?

Scott Smith
quelle
Diese Frage gehört zu softwarerecs.stackexchange.com . Übrigens scheint mir Ihre Frage sehr weit gefasst zu sein und sollte daher sowieso geschlossen werden.
nbro
@nbro - Danke, ich vermutete, dass es einen besseren Ort dafür gibt, wusste aber nichts über Software.
Scott Smith
Können uns diejenigen, die diese Frage positiv bewertet haben, sagen, warum?
Quintumnia

Antworten:

3

Da dies in Javascript geschrieben ist und (noch) keine GPU-Unterstützung bietet, ist es ziemlich langsam. Es ist jedoch sehr schön, mit flexiblen Netzwerkarchitekturen herumzuspielen. Die einzige Visualisierung, die derzeit angeboten wird, ist eine Karte der Netzwerkarchitektur. Diagramme können jedoch problemlos implementiert werden.

https://github.com/wagenaartje/neataptic

Thomas W.
quelle
2

Wenn Sie sich für TensorfFlow entscheiden , erhalten Sie TensorBoard als Teil des Pakets. Das könnte etwas in der Nähe von dem sein, wonach Sie suchen.

Und mit TensorFlow können Sie in C ++, Python und einigen anderen Sprachen codieren (ich denke, es gibt sowohl Ruby- als auch Java-Bindungen, wahrscheinlich auch andere).

Geisteskriminalität
quelle
2

Es gibt auch DXNN, das, wie Sie beschrieben haben, ein neuroevolutionäres System ist, das in Erlang geschrieben ist. https://github.com/CorticalComputer/DXNN2

Ich habe einige Arbeiten daran durchgeführt, um es modular zu gestalten. Sie verwenden es also als Bibliothek und halten Ihren Code / Ihre Anwendung isoliert.

Hier ist ein Codebeispiel , das DXNN als Bibliothek herunterlädt. Außerdem werden Gnuplot-fähige Datendateien zur Visualisierung generiert.

Aus
quelle
2

Fann ( http://leenissen.dk/fann/wp/ ) ist eine kostenlose Open-Source-Bibliothek für neuronale Netze.

FANN-Funktionen:

  • Mehrschichtige Bibliothek für künstliche neuronale Netze in C.
  • Backpropagation-Training (RPROP, Quickprop, Batch, Incremental)
  • Weiterentwickeltes Topologietraining, das das ANN dynamisch aufbaut und trainiert (Cascade2)
  • Einfach zu bedienen (Erstellen, Trainieren und Ausführen eines ANN mit nur drei Funktionsaufrufen)
  • Schnell (bis zu 150-mal schnellere Ausführung als andere Bibliotheken)
  • Vielseitig (möglich, um viele Parameter und Funktionen im laufenden Betrieb anzupassen)
  • Gut dokumentiert (Ein leicht zu lesender Einführungsartikel, ein ausführliches Referenzhandbuch und ein über 50-seitiger Universitätsbericht, in dem die Überlegungen zur Implementierung usw. beschrieben werden.)
  • Plattformübergreifend (Skript für Linux und Unix konfigurieren, DLL-Dateien für Windows, Projektdateien für MSVC ++ und Borland-Compiler funktionieren ebenfalls)
  • Mehrere verschiedene Aktivierungsfunktionen implementiert (einschließlich schrittweiser linearer Funktionen für dieses zusätzliche Stück Geschwindigkeit)
  • Einfache Speicherung und Laden ganzer ANNs
  • Einige einfach zu verwendende Beispiele
  • Kann sowohl Gleitkomma- als auch Festkommazahlen verwenden (tatsächlich sind sowohl Float, Double als auch Int verfügbar)
  • Cache optimiert (für zusätzliche Geschwindigkeit)
  • Open Source, kann aber weiterhin in kommerziellen Anwendungen verwendet werden (lizenziert unter LGPL)
  • Framework für den einfachen Umgang mit Trainingsdatensätzen
  • Grafische Schnittstellen
  • Sprachbindungen zu einer Vielzahl unterschiedlicher Programmiersprachen
  • Weit verbreitet (ca. 100 Downloads pro Tag)
track3r
quelle
2

Für genetische Algorithmen habe ich GeneticSharp geschrieben .

Eine plattformübergreifende genetische Algorithmusbibliothek für .NET Core und .NET Framework. Die Bibliothek verfügt über verschiedene Implementierungen von GA-Operatoren, z. B.: Auswahl, Überkreuzung, Mutation, Wiedereinsetzung und Beendigung.

Giacomelli
quelle