Die Forensoftware hat meinen letzten Beitrag auf der Seite 1 noch ungefragt um einen Nachtrag erweitert, in dem ich die Frage stellte, ob wir nicht mal Neuronen bzw. kleine Netze mit LTSpice basteln wollen?
Das wäre im Kapitel 2.6.8 "Synaptische Plastizität" unter dem genaueren Begriff "STDP Spike Time Dependent Plasticity" im Pulsneuronenbuch zu finden.Beim GI hab ich erkannt, dass die zeitliche Nähe eines Impulses an einer kurz vor dem Abfeuern stehenden hocherregten Zelle wichtig ist. So hat das Neuron eine Chance, sich an die Axone anzukoppeln, deren Impulse ihr bestmöglich "nützlich" sind.
Ich finde aber, dass es heutzutage etwas zu viel KI-Hype gibt. Wenn man immer nur die Frage stellt, wie kann ich möglichst viel Intelligenz in meine Maschine bekommen, übersieht man möglicherweise grundlegende Zusammenhänge.
Die Entwicklung der Computer entstand mathematischen Überlegungen mit den Zahlen 0 und 1. Man hat dann Schaltungen wie UND, ODER, NICHT gebaute und dann später alles daraus folgende.
Man könnte die Frage ja auch abändern und fragen: Brauche ich zum Bau von Computern eigentlich diese Art von Mathematik und den dazu gehörigen Schaltungen? Kann ich vielleicht auch in die Natur schauen, dort sehe ich Neuronen und könnte ich damit einen Taschenrechner bauen? Was wäre, wenn zum Beginn der Computerentwicklung die heutigen Erkenntnisse zur Funktion der Neuronen bekannt gewesen wäre? Hätte sich dann die Computertechnologie völlig anders entwickelt? Was brächte es für Vorteile?
Wer sich für diese Art der Fragestellung und deren Auflösung interessiert, ist mit dem SNN-Pulsneuronenbuch richtig ( ich schreibe den Titel hier immer aus, weil die Forensoftware sonst immer auf Amazon auf irgend ein anderes Werk verlinkt ).
Die Forensoftware hat meinen letzten Beitrag auf der Seite 1 noch ungefragt um einen Nachtrag erweitert, in dem ich die Frage stellte, ob wir nicht mal Neuronen bzw. kleine Netze mit LTSpice basteln wollen?
für mich persönlich nicht interessant:
Ich bleibe vorerst bei C++ und den BP Netzen, künftig eher auf ESP32 und Raspi, und hier fehlt zum Training und zum Erkennen von Mustern ein leistungsfähiges Userinterface/Dashboard samt "echter" Inputs wie z.B. über eine USB-Cam.
Ja, das Forum wird wohl über Werbeeinnahmen mit Links finanziert und so versucht es halt, überall einen Link zu setzen.Die Forensoftware hat meinen letzten Beitrag auf der Seite 1 noch ungefragt um einen Nachtrag erweitert, in dem ich die Frage stellte, ob wir nicht mal Neuronen bzw. kleine Netze mit LTSpice basteln wollen?
Was LtSpice betrifft: klar man die Neuronen auf ein Modellsymbol reduzieren. Das wird im B-u-c-h auch so gemacht, weils ein wenig umständlich ist, immer die ganze Schaltung für jedes einzelne Neuron zu zeichnen.
Hallo stochri,
die "archaischen" Quellen von LT-Spice können mehrdimensionale Polynome berechnen. Nichts anderes wird bei den KNN-Matrizenoperationen gerechnet. LTSpice müsste also Mustererkennung trainieren können.
Man kann aber auch das "Einlernen" einfach durch das Ziehen von Verbindungen durchführen, wenn man das ganze iterative Matrixrumgerechne umgehen will. Das geht in Spice natürlich viel eleganter als mit dem Lötkolben.
In Deiner Leseprobe kann ich kaum was entziffern. Aber Du sprachst von Timern und Triggern. Und offensichtlich hat der Autor damit irgendeine Kiste zusammengedröselt, die irgendwas tut. Auch das kann man mit Spice unschwer simulieren.
Ich halte LTSpice für geeignet, um damit KNN zu probieren. Ohne Programmierung und ohne Lötkolben und bei optimaler Überprüfbarkeit aller Signale.
Wie man das dann aufzeichnet und zu Modulen vereinigt, ist zweitrangig. Es geht einfach um ein kostenloses Lernsystem für KNN ganz unterschiedlicher Technologie. Ideal zum rumspielen und probieren. Eben "Neuronen basteln", wie im Thread angeregt.
So hatte ich mir das gedacht.
Viele Grüße
Wolfgang
Ich hatte mir auch lange überlegt, alles auf dem Mikrocontroller zu machen. Man ist dann sehr flexibel und kann die Programme schnell ändern, ohne das man löten muss ( Das war tatsächlich der Grund, warum ich mir als junger Elektronikbastler einen Computer gekauft habe: weniger löten ).für mich persönlich nicht interessant:
Ich bleibe vorerst bei C++ und den BP Netzen, künftig eher auf ESP32 und Raspi, und hier fehlt zum Training und zum Erkennen von Mustern ein leistungsfähiges Userinterface/Dashboard samt "echter" Inputs wie z.B. über eine USB-Cam.
Ich habe aber festgestellt, dass den Neuronen nachgebildeten Schaltungen auf dem Labortisch ganz andere Eigenschaften entwickeln, an die man vorher so nicht denkt. Mit Elektroniksimulationen wie LtSpice kommt man schon ein ganzes Stück weit, vor allem weil es einem auch zwingt, nicht in den gewohnten Strukturen der Programmiertechnik zu denken. Aber am Schluss kann man dann am realen Versuchsaufbau doch noch ganz unerwartete Eigenschaften entdecken. Klar, wenn man die dann hat, kann man die auch wieder in Softwaremodelle gießen, falls die Rechenleistung des Controllers dann noch reicht .
Hier der Link auf Wolfgangs Beitrag, in dem er intuitiv ein neuronales Netz aus Integrate-And-Fire Neuronen entworfen hat:
https://www.roboternetz.de/community...l=1#post656399
Hallo stochri,
vielen Dank für die Lorbeeren.
Das ist mir aber angesichts der nur 20 relevanten Zeilen und angesichts der Bugs und Eseleien, die ich auf diesen nur 20 Zeilen mittlerweile repariert hab, schon peinlich.
Wir sollten skeptisch bleiben, bis die Zeilen nachprüfbar funktionieren. Als Dekoder oder autonomes System oder sonstwas. Denn es wurde schon viel von Laien erdacht, was sich im Ansatz gut anhörte, sich dann aber letztlich als nur warme Luft herausstellte.
Aber zum Glück bin ich ja nicht allein sondern weiß Euch an meiner Seite. Die Chancen für das GI-Projekt stehen also bestens.
Viele Grüße
Wolfgang
Dein Vorgehen halte ich für ziemlich gut: Reduktion auf das Wesentliche.vielen Dank für die Lorbeeren.
Das ist mir aber angesichts der nur 20 relevanten Zeilen und angesichts der Bugs und Eseleien, die ich auf diesen nur 20 Zeilen mittlerweile repariert hab, schon peinlich.
Falls Du doch noch mal etwas Inspiration brauchst...
Gestern habe ich dieses Video gefunden:
https://www.youtube.com/watch?v=gX9NqDuwTnA
In Minute 12 wird das Lernen der Synapsen erklärt und ab Minute 21 sieht man, dass das "Zahl der Links" Problem auch dort vorhanden ist.
Spiking Neurons, the next step: https://www.roboternetz.de/community...en-Intelligenz
Moin stochri,
vielen Dank für Deine Anregungen und auch den Link.
Aber ich bin so voll von Kopfkino, dass ich erstmal mit eigenen Anregungen, Fragen und Faszinationen komplett ausgelastet bin.
Ich steh praktisch mit großen Kinderaugen inmitten eines Süßigkeitengeschäftes. Faszination pur. Da hab ich noch keinen Sinn für das Süßigkeitengeschäft auf der anderen Straßenseite. Erstmal wird hier alles weggefuttert, was ich bekommen kann.
Ich hab mir aber ein Lesezeichen gesetzt und gucks mir an, wenn ich meinen internen Stack abgearbeitet hab...
---------
Die Versuchung ist sehr groß, den Mini-Code mit kleinen Spezialitäten verwachsen zu lassen. Aber das würde nicht lange dauern und man hat ein Code-Monster erschaffen, das man nicht mehr pflegen kann. Lieber zehn Stunden nachdenken, damit man eine Codezeile weglassen kann als schnell eine Zeile hinzutippen und dann zehn Stunden lang zu analysieren, warum das System plötzlich Mist baut.
---------
Zur Zeit finde ich die Mutation der Undierung zur Oderierung faszinierend:
Ich hab z.B. eine Zelle mit zwei Links, die nur gemeinsam die Zelle zünden können. Aber dadurch werden die Links immer "nützlicher". Und so dauert es nicht lange, bis die Zelle von einem einzigen Link gezündet werden kann.
Ich weiß nicht, ob das ein prinzipielles Problem bei den KNN-Gewichtungs-Zündungsmechanismen ist. Aber zumindest bei Klatschi ist der bisherige Mechanismus Schrott.
Natürlich kann man dieser Mutation entgegenwirken. Durch variable Feuerschwellen-funktionen oder durch trickreichere Strategien bei der Gewichtung. Aber all diese Entgegenwirkungen werden nutzlos bleiben, wenn man nicht die Anzahl der aktiven Links am Zelleingang kennt.
Es fehlt mir also eine Mittelung. Die Zelle muss wissen, von wieviel Dendriten sie Signale bekommt.
Es geht also nicht darum, mit Gewichtungen einen Schwellwert zu überschreiten. Es geht eher darum, mit dem Mittelwert aller Gewichtungen einen Schwellwert zu überschreiten. Dann sollte es keine Verknüpfungsmutationen mehr geben.
Nun guck ich natürlich etwas dumm aus der Wäsche, denn dann müsste ich ja vor dem Zellfeuern einmal im ganzen Netz die Eingangslinks an dieser Zelle durchzählen. Nicht gerade elegant.
Viele Grüße
Wolfgang
Lesezeichen