suntzu hat geschrieben:Ja, es wäre sehr nett, wenn mir jemand einen Quelltext in Python, zusenden könnte, der ein neuronales Netz anlegt. Aus dem ich dann lernen könnte, da meine Erfahrungen in Python nicht sehr tief sind
Wenn ich dass Konstrukt des Programms habe, würde ich es gerne auf evolutionärer Basis weiterentwickeln !
Drei Punkte...
- Für eine Bestellarbeit nehme ich zwischen 20 bis 160 Euro + Märchensteuer pro Stunde und neuronale Netze zu beschreiben gehört vermutlich nicht in die 20 Euro Kategorie.
- Ich habe auch sehr wenige Erfahrung in Python, ich programmiere inzwischen nahezu ausschließlich in C++, ich brauche nur wenig Rapid Prototyping.
- Kann man neuronale Netze nicht evolutionär weiterentwickeln.
Neuronale Netze sind Arrays von Knoten, die [ab eines gewissen Eingabewertes] die Stärke ihrer Eingabe um einen Faktor abgewandt ein Signal feuern. Diese Neuronen liegen in Arrays hintereinander. Diese Arrays (Neuronenschicht) liegen in Schichten hintereinander. Du bestimmst erstmal nur die breite des Ein und Ausgabefeldes, sowie die Anzahl der Schichten zwischen dem Aus- und EIngabefeldern.
Die Vorderen haben ein Eingangssignal, die hinteren ein Ausgangssignal.
Das wäre ein neuronales Netz, was aber noch nichts kann.
Jetzt lässt Du es lernen, indem Du am Ein- und Ausgang Daten anlegst, und die Faktoren der einzelnen Neuronen so ausbalancierst, dass Eingabemuster und Ausgabemuster überein stimmen. Konditionierst Du es zu stark auf Deine Daten, ist es auf Deine Daten spezialisiert und versteht ähnliche Daten nicht mehr. Konditionierst Du es zu schwach, sind die Ergebnisse zufällig. Hast Du zuviele Neuronen, driften die Ergebnisse ins Zufällige ab, hast Du zuwenig Neuronen, so verlernen sie die erstgenannten Datensätze. Sind Deine Lehr-Daten schlecht ausgewählt - wenn das Netz in den Daten sich einen Zusammenhang konzentriert, den Du noch gar nicht gesehen hast - dann lernt es nicht, was Du eigentlich wolltest.
Neuronale Netze funktionieren. Sie zu programmieren ist nicht soo schwer. Es gibt im OpenSource-Bereich Software dafür, mit der Du spielen kannst (Frag mich jetzt nicht mehr, wie sie heißt).
Aber alle neuronalen Netze werden angelernt, nicht programmiert. Die Evolution findet erst statt, wenn der Programmierer seine Arbeit getan hat.
Und dann weiß man auch noch nicht, welche Netzgröße für die Aufgabe die richtige Größe hat, so dass man mehrere Netze willkürlich gegeneinander antreten lassen kann.
suntzu hat geschrieben:Leider habe ich nicht viel Zeit, deshalb wäre ich über postings sehr froh
Wenn Du nicht viel Zeit hast, sind neuronale Netze kein gutes Thema. Sie sind kaum verifizierbar, was eine Bewertung in Richtig oder Falsch erschwert. Ansonsten kenne ich wenig Leute, die zu Hause sitzen und auf Leute warten, die wenig Zeit haben und ihnen Aufgaben geben. Die meisten Leute können sich auch so ganz gut beschäftigen