Gibt es eine gute Möglichkeit, ein Neuron und die zugehörigen Verbindungen in/aus einem vollständig verbundenen PyBrain-Netzwerk hinzuzufügen/zu entfernen? Sagen, dass ich mit Start:PyBrain-Neuronenmanipulation
from pybrain.tools.shortcuts import buildNetwork
net = buildNetwork(2,3,1)
Wie würde ich über so dass es eine (2,4,1) oder (2,2,1) Netz gehen, während alle alten Gewichte beibehalten (und Initialisierung keine neuen zu zufällig sein, wie es bei der Initialisierung des Netzwerks getan wird)? Der Grund dafür ist, dass ich versuche, eine evolutionäre Lernstrategie zu verwenden, um die beste Architektur zu bestimmen, und der Schritt "Mutation" beinhaltet das Hinzufügen/Entfernen von Knoten mit einer gewissen Wahrscheinlichkeit. (Die Eingangs- und Ausgangsmodule sollten immer gleich bleiben.)
edit: Ich habe NeuronDecomposableNetwork gefunden, was dies vereinfachen sollte, aber es scheint immer noch, dass ich Neuronen und Verbindungen getrennt verfolgen muss.
Super, das hilft mir eine Tonne, danke! Ich mag die erste Idee. Hätte nie gedacht, Schichten als einzelne Neuronen zu verwenden. Und ja, nachdem ich ungefähr drei Tage versucht habe, würde ich die manuelle Verwaltung entweder nicht empfehlen lol (der andere Stack-overflow-Post war tatsächlich, wo ich die Idee hatte). Ich werde nach einigen Experimenten zurückkommen (und NEAT erforschen, da dies das erste Mal ist, dass ich davon erfahren habe, aber fast genau das ist, was ich erreichen wollte) und meinen Beitrag mit den Ergebnissen aktualisieren. – ubomb