Wie sich die Faktoren und Schwellenwerte mit der Zeit verändern, lässt sich i.a. nicht vorhersagen: Das Netz kann überraschende Ergebnisse liefern.
Im Unterricht konnten wir uns infolge der beschränkten Leistungsfähigkeit der Rechner nur mit einfachen Netzen beschäftigen: Vor beinahe 30 Jahren entwickelten wir ein Netz, das Buchstaben erkennen sollte. Die Buchstaben wurden dabei aus 5x5 Punkten zusammengesetzt. Damals mussten die Buchstaben dem Netz ca 500000-mal vorgegeben werden, bevor sie zuverlässig unterschieden werden konnten. Durch einen verbesserten Lernalgorithmus ließ sich diese Zahl auf ca. 3000 reduzieren mit einem Netz aus 30 Neuronen, angeordnet in zwei Ebenen zu 25 und 5 Neuronen.
Das optimierte Netzwerk inkl. Erläuterungen und Übungsmaterial kann man hier laden und für eigene Experimente nutzen: Die Neuronen lassen sich in Ebenen anordnen. Es können Rückkopplungen innerhalb der Ebenen und von der Ausgangs- zur Eingangsebene eingerichtet werden.
Ausblick auf die Tierwelt
Da die künstlichen Neuronen ein stark vereinfachtes Modell biologischer Neuronen sind, zeigt das Ergebnis, wie leistungsfähig biologische Neuronen sein müssen. Von der Ausstattung her
müsste jedes Insekt Buchstaben unterscheiden können, allerdings besteht dafür keine
Notwendigkeit, und so unterbleibt dies in der Natur. Es ist aber zu vermuten, dass Tiergehirne deutlich leistungsfähiger sind als bisher vermutet und viele Fähigkeiten besitzen, die wir
bisher nur den Menschen zugeschrieben haben.
Wie mag ein Tier tatsächlich seine Umwelt erleben? Auf jeden Fall sind Tiere nicht die Automaten, die auf Reize immer in der gleichen Weise reagieren.
Lernalgorithmus
Wie arbeitet das hier verwendete Netz?
Die Neuronen einer Ebene beeinflussen sich gegenseitig durch eine hemmende Rückkopplung: Ist die Ausgangszahl eines Neurons besonders groß, so bremst dieses die restlichen Neuronen der
Ebene aus. Dies ist ein gängiges Verfahren bei der Mustererkennung.
Beim Lernen werden die einzelnen Eingangsmuster (Buchstaben) nicht immer in der gleichen Reihenfolge eingespielt, sondern zufällig ausgewählt. Dies entspricht eher dem Verfahren, wie ein
Mensch lernt. Noch besser wäre es, den Lernerfolg für jedes Muster zu kontrollieren und die Muster mit geringerem Erfolg häufiger einzukoppeln.
Für jedes Ausgangsneuron und Muster wird festgestellt, wie weit die Ausgabe von dem entsprechenden Wert des Vorgabemusters abweicht. Diese Abweichung wird an das Neuron zurückgemeldet und entsprechend die Wichtungen angepasst. Die Abweichung wird für jedes Vorgängerneuron mit dessen Ausgangswert und Wichtung verrechnet und zur Korrektur an das VorgängerNeuron gesendet. Der berechnete Wert für die Abweichung begrenzt den Bereich, in dem die Wichtungen geändert werden. Die Wichtungsänderungen sind dabei zufällig und können in seltenen Fällen die Grenzen durchbrechen. Wie oft dies geschieht, hängt von dem Abweichungswert ab: Kleine Abweichungen lassen Ausreißer nur sehr selten zu. Initialisiert werden die Wichtungen mit Zufallszahlen.
Das Verfahren realisiert das aus der Mathematik bekannte Abkühlungsschema. Es soll dazu dienen, den Lernprozess auf die einzelnen Neuronen einzugrenzen, ohne dass übergeordnete Prozesse eingreifen. Vermutlich entspricht dies eher der Arbeitsweise von natürlichen Neuronen.
Ais Ergebnis gewinnt man Ausgangsmuster, die von den vorgegebenen Mustern deutlich abweichen können, die aber die Buchstaben klar unterscheiden. Verändert man die Buchstaben, indem men Punkte verschiebt, neu hinzufügt oder weglässt, so werden die Buchstaben in vielen Fällen immer noch richtig erkannt.
Erweiterungen
Zwischen Eingangs- und Ausgangsebene können weitere Ebenen eingeschoben werden, was allerdings bei dem vorliegenden Netz keine Funktionsverbesserung ergab, dafür aber längere Laufzeiten
pro Lerndurchlauf.
Wenn schon die Abweichungen von Neuron zu Neuron weiter gereicht werden, so könnten auf ähnliche Weise Daten schrittweise von der Ausgangs- zur Eingangsebene wandern, so vorgegebene oder
auch zufällige Muster. Jedes Neuron bestimmt aus diesen Daten und dem selbst produzierten Ausgang die Abweichung und variiert passend die Wichtungen. Die vom Ausgang eines Neurons
empfangenen Daten werden gewichtet über die Eingänge an die vorausgehenden Neuronen geschickt. Der Lernprozess wäre damit auf die einzelnen Neuronen lokalisiert, wie das wahrscheinlich
auch in der Natur ist.
Zufällige Signale an den Ausgängen könnten in der Eingangsebene Muster aktivieren, die früher gelernt wurden und nun wieder zu den Ausgangsneuronen zurück wandern. Das würde ermöglichen, dass
das Netz sich mit sich selbst beschäftigt, wie das bei Menschen in Träumen oder bei Denkprozessen der Fall ist, die nicht von einem äußeren Reiz ausgelöst werden. Ob sich diese Idee in
einem Programm umsetzen lässt, kann ich nicht sagen.
Was heute Realität ist: Bei leistungsfähigen Rechnersystemen kann man mehrere Netze hintereinander schalten. Es entsteht ein großes Netz, das komplexe Situationen verarbeiten und auf sie angemessen reagieren kann. Beispiele: ChatGPT, Spracherkenneung und -Erzeugung, Verhalten von Avataren.
[8.7.2023]