Ein Neuronales Beispielnetz
LIN 8080
Bei einem typischen Neuron wird eine Ausgabe erzeugt, wenn die Summe der Eingabereize einen gewissen Schwellwert übersteigt. Für jedes Eingabesignal xi mit (i = 1, 2, 3, ... ) gibt es eine Art Filter, eine Gewichtung wi. Diese Gewichtung bildet die synaptische neuronale Verbindung nach, sie verstärkt die Eingabesignale oder schwächt sie ab. Dafür verwendet man in der Regel reele Zahlen, positive für Verstärkung (exzitotische Eingabe) oder negative für Abschwächung (inhibitorische Eingabe). Es lassen sich aber auch binäre oder bipolare (+/-) Zahlen verwenden.
Ein Neuron verhält sich wie eine Abbildungs-Funktion, es erzeugt die Ausgabe nach vorgegebenen Gesetzen, das sind mathematische Formeln. y = f(neuron), wobei neuron die Summe aller Eingabereize darstellt und f normalerweise eine nichtlineare, monoton steigende Funktion (Gleichung) ist. Mit einem Gewicht in Beziehung gebracht wird neuron = xn * wn. Ein n zeigt hierbei, das es sich um viele Eingabesignale handelt.
Der Schwellwert wird häufig als Theta angegeben (Eingabe für eine Eingabeverknüpfung). Ebenfals häufig werden Matrizen und Vektoren als Schreibweise bevorzugt. Ein einzelnes Neuron kann mit verschiedenen Eingabereizen eine Klassen (Mengen) Unterscheidung berechnen. Es verhält sich dabei entsprechend der Gewichtungen und unterscheidet meist nach grösser Null, kleiner oder gleich Null. Normalerweise wird dabei ein konstanter Fehler x0 = +1 mit einer anpassbaren Gewichtung w0 berücksichtigt. Dieser Vorgang legt die Position der unterschiedenen Klassen (Mengen) Bereiche fest. Für mehrere Neuronen kann dies aber anders sein.
neuron = x1 * w1 + x2 * w2 + ... = Summe( xi * wi )
neuron* = w0 + x1 * w1 + x2 * w2 + ... = Summe( xi * wi ) + w0
Es ist ersichtlich, dass die Zugehörigkeit eines Bereiches zu einer Menge über die Gewichtung w festgelegt werden kann. Dies ist besonders wichtig, denn das stellt die Voraussetzung für lernfähige Netze dar. Man spricht von Gewichtungs-Anpassungen. Linear teilbare Bereiche, Mengen oder Klassen können aber auch aus Kurven bestehen, die sich teilweise überlappen oder ganz ineinander liegen. Zu deren Beschreibung werden dann nichtlineare Funktionen eingesetzt. In kaskadenartig angeordneten Netzarchitekturen lassen sich weitere Klassen-Unterscheidungen ermitteln. Es gibt verschiedene Konzeptionen, mehrere Neuronen miteinander zu verbinden. In erster Linie ist das von der gestellten Aufgabe abhängig.
Für das Ansteuern eines Robotermotors genügt ein Neuron, das für jeden Sensor eine Eingangsleitung mit einer vorgegebenen Gewichtung hat. Solche Schaltungen lassen sich fest verdrahten und in einem Chip unterbringen, wodurch sie entsprechend billig zu erwerben sind.
Wenn man will, kann man ein Neuron als einen Software-Transistor betrachten. Es funktioniert letzlich wie ein getriggerter Schalter. Allerdings sind bei dieser Softwarelösung der Hardware sehr viel mehr Variationen möglich, als bei fest verdrahteten Schaltungen. Dennoch gibt es bereits Chips, die speziell auf die Anforderungen von Neuronalen Netzten ausgelegt sind. Man darf gespannt sein, wie sich dies alles weiterentwickelt.